PA-18 Track Linear Actuator to nasz największy siłownik o stałej długości i jest powszechnie używany w meblach na zamówienie, automatyce domowej i robotyce. Siłownikiem można łatwo sterować za pomocą płytki Arduino, a ten artykuł pokaże, jak zbudować i zaprogramować siłownik liniowy sterowany przez Arduino, który można łatwo dostosować do swojego zastosowania!
Wymagany sprzęt
Następujące elementy są wymagane do siłownika liniowego sterowanego przez Arduino; wszystkie można kupić w Progressive Automations:
- 1x PA-18 Track Linear Actuator
- 1x Arduino Uno
- 1x MegaMoto Plus H-bridge
- 1x zasilacz 12 V DC
- 2x przyciski chwilowe
- Przewody połączeniowe (jumpery)
Okablowanie systemu
Siłownik użyty w tym układzie wymaga napięcia wejściowego 12 V DC i do 8 A prądu przy pełnym obciążeniu. Wartości te są znacznie wyższe niż to, co mikrokontroler Arduino jest w stanie dostarczyć, i mogą spowodować pojawienie się „magicznego dymu” z Arduino. Aby uniknąć uszkodzenia Arduino, zastosowano mostek H MegaMoto Plus. Mostek H poradzi sobie z wymaganiami zasilania i może być łatwo użyty do sterowania siłownikiem za pomocą Arduino.
W tym systemie są połączenia z Arduino do mostka H MegaMoto Plus oraz do dwóch przycisków. Każdy przycisk wymaga jednego wejścia, wybranego z dostępnych pinów GPIO Arduino. Mostek H ma cztery połączenia z Arduino: trzy wyjścia i jedno wejście. Piny używane przez mostek H są wstępnie przypisane i nie można ich zmienić.
Schemat blokowy
Poniższy schemat blokowy krótko wyjaśnia wymagania zasilania i połączenia. Arduino działa z zasilania 5 V, a mostek H z 12 V. Jeśli używasz dwóch oddzielnych zasilaczy, ważne jest, aby miały wspólną masę, aby uniknąć sytuacji „pływającej” masy.

Polecenia Arduino
Musisz zainstalować Arduino IDE na komputerze stacjonarnym lub laptopie. Pamiętaj, że okablowanie systemu będzie miało wpływ na kod Arduino. Dlatego ważne jest, aby dokładnie sprawdzić połączenia i porównać je z wprowadzonym kodem.
Polecenie pinMode w Arduino służy do definiowania pinów jako wejść lub wyjść. Aby zmienić sygnał wysyłany przez Arduino na konkretny pin, używa się poleceń digitalWrite i analogWrite. Dodatkowo polecenia digitalRead i analogRead są używane, gdy Arduino musi sprawdzić sygnał na określonym pinie.
W programie poniżej polecenie digitalWrite służy do włączania lub wyłączania mostka H oraz do konfiguracji pinów używanych dla przycisków. Polecenie analogWrite służy do ustawienia wartości sygnału PWM w zakresie od 0 do 255 podawanego na mostek H. Polecenie digitalRead jest używane do sprawdzenia, czy przyciski zostały wciśnięte lub zwolnione. Polecenie analogRead służy do pomiaru poboru prądu przez silnik siłownika, co potwierdzi, kiedy siłownik znajduje się na końcu swojego skoku.
Kod Arduino
Poniższa sekcja prowadzi przez definicje programu, konfigurację (setup), pętlę główną (main loop) oraz funkcje obsługi przycisków dla siłownika liniowego sterowanego przez Arduino. Ważne jest, aby przejść przez kod linia po linii, aby zrozumieć, jak działa. To zrozumienie pozwoli ci wprowadzać modyfikacje zależnie od twojego zastosowania.
Definicje programu
Ta część kodu to konfiguracja połączeń pinów. Dokładnie sprawdź, czy twoje połączenia z płytką Arduino odpowiadają podanym numerom. Wartości te można zmienić, jeśli do Arduino podłączasz dodatkowe komponenty, co może wymagać przesunięcia połączeń pinów.

Konfiguracja programu
Ta część kodu konfiguruje podłączone piny jako wejścia lub wyjścia. Dwa przyciski mogą być ustawione na HIGH lub LOW w zależności od tego, jak zostały podłączone (pull-up lub pull-down). Chociaż Arduino ma wewnętrzne rezystory podciągające, możesz dodać zewnętrzny rezystor do eliminacji drgań styków (debounce), aby zapobiec fałszywemu wyzwalaniu.

Pętla główna
Pętla główna stale sprawdza, czy przyciski zostały wciśnięte, i uruchamia odpowiednią część kodu w zależności od wyniku funkcji obsługi przycisków. Uwzględniono sekcję automatu stanów, aby określić, co robi siłownik liniowy sterowany przez Arduino i jak powinien reagować na wejścia (np. przyciski).


Funkcje obsługi przycisków
Te funkcje cyfrowo odczytują stan przycisków, aby sterować siłownikiem za pomocą Arduino. Każda funkcja obsługi przycisków ma pętlę eliminującą drgania styków w głównym warunku if, aby zapobiec fałszywemu wyzwalaniu i wysyłaniu błędnego sygnału do Arduino. Wynikiem działania tych funkcji jest wartość boolowska (Boolean). Na przykład, jeśli naciśnięto przycisk start, wartość startButton zmieni się na true. Ta wartość boolowska jest następnie używana w pętli głównej do podejmowania dalszych decyzji.

Na zakończenie
Możliwości tego systemu wykraczają poza to, co pokazano w tym artykule. Mikrokontroler Arduino i mostek H MegaMoto Plus można wykorzystać do implementacji znacznie bardziej złożonych algorytmów sterowania. Ten układ umożliwia regulację prędkości, korzystając z polecenia analogWrite do ustawiania sygnału PWM. Można monitorować prąd silnika siłownika i wykorzystać go do wykrywania obciążenia, aby wyzwalać dodatkowe polecenia.
Co więcej, można dodać dodatkowe czujniki, aby rozbudować siłownik liniowy sterowany przez Arduino. Na przykład, czujnik ultradźwiękowy może uruchamiać/zatrzymywać silnik, gdy znajdziesz się w określonej odległości, lub może służyć do wyzwalania wielu innych ciekawych funkcji. Możliwości są nieograniczone. Jeśli jednak zaczyna brakować dostępnych pinów w Arduino, możesz wybrać inny model Arduino. Alternatywnie, wiele płytek Arduino można połączyć łańcuchowo (daisy-chain), aby komunikowały się ze sobą i z różnymi komponentami. Ta ścieżka wymaga jednak niemałego doświadczenia programistycznego.
Po więcej informacji napisz do nas na sales@progressiveautomations.com lub zadzwoń pod numer 1-800-676-6123.