Spisu treści:

Arduino 2-w-1 kontroler modelu pociągu: 4 kroki
Arduino 2-w-1 kontroler modelu pociągu: 4 kroki

Wideo: Arduino 2-w-1 kontroler modelu pociągu: 4 kroki

Wideo: Arduino 2-w-1 kontroler modelu pociągu: 4 kroki
Wideo: Arduino changing Train switch 2024, Lipiec
Anonim
Arduino 2-w-1 kontroler modelu pociągu
Arduino 2-w-1 kontroler modelu pociągu

Czterdzieści lat temu zaprojektowałem dla paru przyjaciół przepustnicę pociągu opartą na wzmacniaczu operacyjnym, a następnie około cztery lata temu odtworzyłem ją za pomocą mikrokontrolera PIC. Ten projekt Arduino odtwarza wersję PIC, ale dodaje również możliwość korzystania z połączenia Bluetooth zamiast ręcznych przełączników do sterowania przepustnicą, hamulcem i kierunkiem. Chociaż projekt, który tutaj przedstawiam, jest przeznaczony dla 12-woltowego silnika kolejowego, można go łatwo zmodyfikować do różnych innych zastosowań sterowania silnikiem prądu stałego.

Krok 1: Modulacja szerokości impulsu (PWM)

Modulacja szerokości impulsu (PWM)
Modulacja szerokości impulsu (PWM)

Dla tych z was, którzy nie są zaznajomieni z PWM, nie jest to tak przerażające, jak się wydaje. Wszystko, co naprawdę oznacza dla naszej prostej aplikacji do sterowania silnikiem, to to, że generujemy falę prostokątną o pewnej częstotliwości, a następnie zmieniamy cykl pracy. Cykl pracy jest definiowany jako stosunek czasu, w którym wyjście jest logicznie wysokie w porównaniu z okresem przebiegu. Widać to dość wyraźnie na powyższym schemacie z górnym przebiegiem przy 10% cyklu pracy, środkowym przebiegiem przy 50% cyklu pracy i dolnym przebiegiem przy 90% cyklu pracy. Linia przerywana nałożona na każdy przebieg reprezentuje równoważne napięcie DC widziane przez silnik. Biorąc pod uwagę, że Arduino ma wbudowaną funkcję PWM, bardzo łatwo jest wygenerować ten rodzaj sterowania silnikiem prądu stałego. Inną zaletą korzystania z PWM jest to, że pomaga powstrzymać silnik przed szarpnięciem, które może się zdarzyć przy użyciu prostego prądu stałego. Jedną z wad PWM jest to, że czasami słychać słyszalny hałas silnika o częstotliwości PWM.

Krok 2: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Pierwsze zdjęcie przedstawia połączenia Arduino dla przełączników i modułu sterownika silnika LM298. Wewnątrz Arduino są słabe rezystory podciągające, więc przełączniki nie są potrzebne. Przełącznik kierunku to prosty przełącznik SPST (jednobiegunowy jednokierunkowy). Przełączniki przepustnicy i hamulca są pokazane jako normalnie otwarte przyciski z chwilowym kontaktem.

Drugie zdjęcie przedstawia połączenia Arduino dla modułu Bluetooth i modułu sterownika silnika LM298. Wyjście Bluetooth TXD łączy się bezpośrednio z wejściem szeregowym Arduino RX.

Trzecie zdjęcie to podwójny moduł mostka H L298N. Moduł LM298 ma wbudowany regulator 5 V, który można włączyć za pomocą zworki. Potrzebujemy +5 V dla Arduino i Bluetooth, ale chcemy +12 V do napędzania silnika. W takim przypadku podłączamy +12 woltów do wejścia „+12 V zasilania” L298N i zostawiamy zworkę „włącz 5 V” na swoim miejscu. Pozwala to regulatorowi 5 V na wyjście do złącza „+5 zasilania” w module. Podłącz to do Arduino i Bluetooth. Nie zapomnij podłączyć przewodów uziemiających wejścia +12 i wyjścia +5 do modułu „power GND”.

Chcemy, aby napięcie wyjściowe silnika różniło się w zależności od PWM generowanego przez Arduino, zamiast po prostu być całkowicie włączone lub całkowicie wyłączone. Aby to zrobić, usuwamy zworki z „ENA” i „ENB” i podłączamy nasze wyjście Arduino PWM do „ENA” na module. Należy pamiętać, że rzeczywisty pin zezwalający znajduje się najbliżej krawędzi płytki (obok pinów „wejściowych”). Tylny pin dla każdego włączenia wynosi +5 woltów, więc chcemy się upewnić, że się z tym nie łączymy.

Piny „IN1” i „IN2” na module są podłączone do odpowiednich pinów Arduino. Te piny kontrolują kierunek silnika i tak, jest dobry powód, aby pozwolić Arduino sterować nimi, zamiast po prostu podłączyć przełącznik do modułu. Zobaczymy dlaczego w dyskusji na temat oprogramowania.

Krok 3: Moduł Bluetooth

Moduł Bluetooth
Moduł Bluetooth

Przedstawiony tutaj obraz jest typowy dla dostępnych modułów Bluetooth. Szukając jednego do kupienia, możesz wyszukać hasła „HC-05” i HC-06”. Różnice między nimi dotyczą oprogramowania układowego i zwykle liczby pinów na płycie. Powyższe zdjęcie przedstawia moduł HC-06 i jest dostarczany z uproszczonym oprogramowaniem układowym, które pozwala tylko na bardzo podstawową konfigurację. Jest również ustawione jako urządzenie Bluetooth tylko „Slave”. W uproszczeniu oznacza to, że może odpowiadać tylko na polecenia z urządzenia „Master” i nie może samodzielnie wydawać poleceń. Moduł HC-05 ma więcej możliwości konfiguracyjnych i może być ustawiony jako urządzenie „Master” lub „Slave”. HC-05 zwykle ma sześć pinów zamiast czterech pokazanych powyżej dla HC-06. Pin stanu nie jest tak naprawdę ważny, ale pin klucza (czasami ma inne nazwy, takie jak „EN”) jest wymagany, jeśli chcesz wykonać jakąkolwiek konfigurację. Ogólnie rzecz biorąc, moduły nie wymagają żadnej konfiguracji, jeśli jesteś w porządku z domyślną szybkością transmisji 9600 i nie chcesz nadać modułowi konkretnej nazwy. Mam kilka projektów, w których ich używam, więc lubię je odpowiednio nazywać.

Konfiguracja modułów Bluetooth wymaga zakupu lub zbudowania interfejsu do portu szeregowego RS-232 lub do portu USB. W tym poście nie opiszę, jak je zbudować, ale powinieneś być w stanie znaleźć informacje w Internecie. Lub po prostu kup interfejs. Polecenia konfiguracyjne używają poleceń AT, podobnie jak w dawnych czasach z modemami telefonicznymi. Załączam tutaj instrukcję obsługi, która zawiera polecenia AT dla każdego typu modułu. Należy zauważyć, że HC-06 wymaga poleceń WIELKIMI LITERAMI, a ciąg poleceń musi zakończyć się w ciągu 1 sekundy. Oznacza to, że niektóre z dłuższych ciągów dla rzeczy takich jak zmiana szybkości transmisji będą musiały zostać wycięte i wklejone do programu terminala lub będziesz musiał skonfigurować pliki tekstowe do wysłania. WIELKIE LITERY są wymagane tylko wtedy, gdy próbujesz wysłać polecenia konfiguracyjne. Zwykły tryb komunikacji może akceptować dowolne 8-bitowe dane.

Krok 4: Oprogramowanie

Oprogramowanie jest dość proste zarówno w wersji ręcznej, jak i wersji Bluetooth. Aby wybrać wersję Bluetooth, wystarczy odkomentować instrukcję „#define BT_Ctrl”.

Kiedy pisałem kod PIC, eksperymentowałem z częstotliwością PWM i ostatecznie zdecydowałem się na 500 Hz. Odkryłem, że jeśli częstotliwość była zbyt wysoka, moduł LM298N nie był w stanie wystarczająco szybko reagować na impulsy. Oznaczało to, że napięcie wyjściowe nie było liniowe i mogło przyjmować duże skoki. Arduino ma wbudowane polecenia PWM, ale pozwalają one tylko na zmianę cyklu pracy, a nie częstotliwości. Na szczęście częstotliwość wynosi około 490 Hz, więc jest wystarczająco bliska 500 Hz, której użyłem na PIC.

Jedną z „cech” przepustnic pociągów jest wyczucie pędu przyspieszania i hamowania w celu symulacji działania prawdziwego pociągu. Aby to osiągnąć, do pętli ręcznej wersji oprogramowania wstawiane jest proste opóźnienie czasowe. Przy pokazanej wartości potrzeba około 13 sekund, aby przejść od 0 do 12 woltów lub z 12 woltów z powrotem do zera. Opóźnienie można łatwo modyfikować na dłuższe lub krótsze czasy. Jedynym przypadkiem, w którym pęd nie działa, jest zmiana przełącznika kierunku. Dla celów ochrony cykl pracy PWM jest natychmiast ustawiany na 0% po każdej zmianie tego przełącznika. To w efekcie sprawia, że przełącznik kierunku pełni również funkcję hamulca awaryjnego.

Aby zapewnić natychmiastową obsługę przełącznika kierunku, umieściłem jego kod w obsłudze przerwań. Pozwala nam to również użyć funkcji „przerwania przy zmianie”, więc nie ma znaczenia, czy zmiana jest z niskiego na wysoki, czy z wysokiego na niski.

Wersja oprogramowania Bluetooth używa poleceń składających się z pojedynczych liter do inicjowania funkcji do przodu, do tyłu, hamulca i przepustnicy. W efekcie otrzymane polecenia zastępują przełączniki ręczne, ale powodują takie same reakcje. Aplikacja, której używam do sterowania Bluetooth, nazywa się „Bluetooth Serial Controller” firmy Next Prototypes. Pozwala skonfigurować wirtualną klawiaturę i ustawić własne ciągi poleceń i nazwy dla każdego klawisza. Pozwala również ustawić częstotliwość powtarzania, więc ustawiam przyciski Brake i Throttle na 50 ms, aby dać około 14 sekund rozpędu. Wyłączyłem funkcję powtarzania dla przycisków do przodu i do tyłu.

To tyle w tym poście. Sprawdź moje inne instrukcje. Jeśli jesteś zainteresowany projektami mikrokontrolerów PIC, zajrzyj na moją stronę internetową www.boomerrules.wordpress.com

Zalecana: