Jak kontrolować silnik DC za pomocą Arduino

Jak kontrolować silnik DC za pomocą Arduino
Arduino to elektroniczna tablica programistyczna oparta zarówno na sprzęcie, jak i oprogramowaniu. Arduino daje użytkownikom swobodę projektowania projektów wielopoziomowych na podstawie różnych modułów, sprzętu i silników. Z czasem zapotrzebowanie Arduino na projekty robotyki rośnie. Kiedy mówimy o projektach robotycznych, pierwszą rzeczą, która przychodzi mi na myśl, są silniki i kontrolery. DC Motors odgrywają istotną rolę w budowaniu projektów robotyki. Tutaj omówimy, w jaki sposób silniki DC można używać z Arduino.

Kontrola silnika DC z Arduino

Silnik DC jest jednym z szeroko stosowanych rodzajów silnika. Jest wyposażony w dwa leady, jeden pozytywny i drugi negatywny. Jeśli połączymy te dwa przewody z baterią lub źródłem zasilania, silnik zacznie się obracać; Jeśli jednak odwrócimy polaryzację silnika zaciskowego, zacznie się obracać w przeciwnym kierunku.

Korzystając z Arduino, możemy kontrolować prędkość i kierunek silnika w bardziej elastyczny sposób. Aby kontrolować silnik za pomocą Arduino, używamy modułu sterownika silnika. Moduł sterownika silnika to obwód zewnętrzny, który może połączyć Arduino z dowolnym silnikiem DC.

Tutaj użyjemy LN293D Moduł sterownika silnika IC do sterowania kierunkiem i prędkością silnika DC. LN293D to 16-pinowy moduł sterownika, który może jednocześnie kontrolować dwa silniki DC. Może napędzać silnik o prądu do 600 mA na kanał i zakres napięcia, rozpocząć się od 4.5 do 36 V (przy pinie 8). Za pomocą tego modułu sterownika możemy kontrolować wiele małych silników prądu stałego.

Schemat obwodu
Aby kontrolować silnik DC, zaprojektuj obwód zgodnie z wspomnianym schematem. Podłącz PIN 2 i 7 sclenia sterownika odpowiednio za pomocą cyfrowego styku D10 i D9 Arduino UNO. Korzystając z cyfrowych pinów, będziemy kontrolować kierunek i prędkość naszego silnika. Pin 1 i 8 otrzymuje logikę wysokiego poziomu za pomocą napięcia poziomu logicznego Arduino 5V. Silnik DC jest podłączony do pin 3 i 6 modułu sterownika. Pin 4 i 5 są krótkie z powodu wspólnej płaszczyzny w module sterownika silnika.

Za pomocą PIN 9 i 10 możemy kontrolować kierunek silnika. Gdy pin 10 jest wysoki, a pin 9 jest niskim silnikiem, obraca się w jednym kierunku i obracanie się w przeciwnym kierunku, będzie zastosowane warunki odwrotne.

Schematy

Kod

const int dcmotorsignal1 = 9; /*pin 9 dla silnika pierwszego wejścia*/
const int dcmotorsignal2 = 10; /*pin 10 dla drugiego wejścia silnika*/
void Setup ()

pinmode (dcmotorsignal1, wyjście); /*Zainicjuj pin DCMOTORSIGNAL1 jako wyjście*/
pinmode (dcmotorsignal2, wyjście); /*Zainicjuj pin DCMOTORSIGNAL2 jako wyjście*/

Void Loop ()

Zgodnie z ruchem wskazówek zegara (200); /*obracaj się w kierunku zgodnie z ruchem wskazówek zegara*/
opóźnienie (1000); /*opóźnienie 1 sekundy*/
przeciwnie do ruchu przeciwnego (200); /*obracaj się w kierunku przeciwnym do przeciwnego*/
opóźnienie (1000); /*opóźnienie dla 1 sekundy*/

pustka wskazuje zgodnie z ruchem wskazówek zegara (int rotationalSpeed) /*Ta funkcja będzie napędzać i obrócić silnik w kierunku zgodnie z ruchem wskazówek zegara* /

Analogwrite (DCMotorsignal1, RotationalSpeed); /*Ustaw prędkość silnika*/
Analogwrite (dcmotorsignal2, niski); /*Zatrzymaj szpilkę DCMotorsignal2 silnika*/

void antyClocke (int cotationalSpeed) /*Funkcja będzie napędzać i obrócić silnik w kierunku przeciwnym do przeciwnego* /

Analogwrite (dcmotorsignal1, niski); /*Zatrzymaj szpilkę DCMotorsignal1 silnika*/
Analogwrite (dcmotorsignal2, rotationalSpeed); /*Ustaw prędkość silnika*/

Tutaj, w powyższym kodzie inicjalizujemy dwa cyfrowe piny do sterowania silnikiem DC. Cyfrowy pin 9 jest ustawiany jako wejście dla pierwszego pinu, a D10 jest ustawiony jako wejście dla drugiego pinu silnika prądu stałego. Następnie za pomocą Pinmode funkcja inicjujemy oba te cyfrowe piny jako wyjście.

w pętla Sekcja kodu dwie funkcje o nazwie zgodnie z ruchem wskazówek zegara i przeciwnie do ruchu wskazówek zegara są inicjowane z prędkością obrotową 200. Następnie używając dwóch funkcji pustki zgodnie z ruchem wskazówek zegara i przeciwnie do ruchu wskazówek przeciwnych.

Dlaczego użyliśmy modułu sterownika silnika z Arduino?

Sterowniki silnikowe mogą pobierać niski sygnał prądu z Arduino lub dowolnego innego mikrokontrolera i zwiększyć go w sygnał o wysokim prądu, który może łatwo napędzać dowolny silnik prądu stałego. Zwykle Arduino i inne mikrokontrolery pracują na niskim prądu, podczas gdy do silników DC zasilania wymagają wysokiego stałego prądu wejścia, którego Arduino nie może zapewnić. Arduino może dostarczyć nam maksymalnie 40 mA prądu na szpilkę, co jest tylko ułamkiem tego, czego potrzebuje silnik prądu stałego. Moduły sterownika silnika, takie jak L293D, mogą kontrolować dwa silniki i zapewnić użytkownikom wolną rękę do sterowania prędkością i kierunkiem zgodnie z ich łatwością.

Notatka: Podczas korzystania z wielu silników z Arduino zaleca się stosowanie zewnętrznego oddzielnego zasilania silników DC wraz z modułem sterownika silnika, ponieważ Arduino nie może wstrzymać prądu 20ma i zwykle silniki zajmują dużo więcej niż to. Innym problemem jest odrzut, Silniki krokowe mają komponenty magnetyczne; Będą nadal tworzyć energię elektryczną, nawet po odcięciu zasilania, co może prowadzić do wystarczającego napięcia ujemnego, które może uszkodzić tablicę Arduino. Krótko mówiąc, kierowca silnika i oddzielna zasilacz jest niezbędny do uruchomienia silnika DC.

Wniosek

DC Motors są ważnym elementem projektowania projektów robotyki opartych na Arduino. Korzystanie z silników DC Arduino może kontrolować ruch i kierunek peryferyjnych projektu. Aby płynnie kontrolować te silniki, potrzebujemy modułu sterownika, który nie tylko zapisuje tablicę Arduino z ekstremalnych skoków prądu, ale także zapewnia użytkownikowi pełną kontrolę. W tym artykule poprowadzi Cię do projektowania i interfejsu silników prądu stałego w dowolnym projekcie Arduino.