- Wymagany materiał
- Schemat obwodu
- Co to jest silnik serwo?
- Objaśnienie kodu Arduino
- Sterowanie wieloma serwami za pomocą Arduino - praca:
Używanie jednego lub dwóch serwonapędów z Arduino jest łatwe, ale co jeśli chcemy użyć więcej niż jednego serwomotoru?
Tutaj pokażemy, jak kontrolować wiele serwomotorów za pomocą Arduino. Łączenie wielu serwonapędów z Arduino wydaje się być łatwe, ale jeśli podłączymy wszystkie serwa do pinów zasilających Arduino, nie będą one działać poprawnie z powodu braku wystarczającego prądu do napędzania wszystkich silników. Musisz więc użyć osobnego zasilania dla silników, albo z niektórych adapterów (5v 2A), albo z dobrej jakości baterii 9v.
Wymagany materiał
- Arduino UNO
- Siłownik
- Zasilacz
- Płytka prototypowa
- Podłączanie przewodów
Schemat obwodu
Co to jest silnik serwo?
Zanim przejdziemy do szczegółów, najpierw powinniśmy wiedzieć o silnikach serwo.
Serwomotory są dostępne w różnych kształtach i rozmiarach. Serwomotor będzie miał głównie przewody, jeden jest przeznaczony do napięcia dodatniego, drugi do masy, a ostatni do ustawiania położenia. Przewód CZERWONY jest podłączony do zasilania, przewód czarny jest podłączony do masy, a przewód ŻÓŁTY jest podłączony do sygnału.
Silnik serwo to połączenie silnika prądu stałego, systemu kontroli położenia, przekładni. Położenie wału silnika prądu stałego jest regulowane przez elektronikę sterującą serwomechanizmu na podstawie współczynnika wypełnienia sygnału PWM pinu SIGNAL.
Mówiąc najprościej, elektronika sterująca reguluje położenie wału, sterując silnikiem prądu stałego. Dane dotyczące położenia wału przesyłane są poprzez pin SIGNAL. Dane o położeniu do sterowania należy przesłać w postaci sygnału PWM poprzez pin Signal serwomotoru.
Częstotliwość sygnału PWM (modulowana szerokością impulsu) może się różnić w zależności od typu serwomotoru. Ważną rzeczą jest tutaj DUTY RATIO sygnału PWM. Na podstawie tego CŁA elektronika sterująca reguluje wał.
Jak pokazano na poniższym rysunku, aby przesunąć wał na 9o zegar, WSPÓŁCZYNNIK WŁĄCZENIA musi wynosić 1/18. 1 ms czasu włączenia i 17 ms czasu wyłączenia w sygnale 18 ms.
Aby przesunąć wał na zegar 12o, czas załączenia sygnału musi wynosić 1,5 ms, a czas wyłączenia 16,5 ms. Współczynnik ten jest dekodowany przez układ sterowania w serwomechanizmach i na jego podstawie dostosowuje położenie. Ten PWM tutaj jest generowany przy użyciu ARDUINO UNO.
Przed podłączeniem serwomechanizmów do Arduino możesz przetestować swoje serwo za pomocą tego obwodu testera serwomotoru. Sprawdź również nasze poniższe projekty Servo:
- Sterowanie serwomotorem za pomocą czujnika Flex
Objaśnienie kodu Arduino
Pełny kod Arduino dla Multiple Servo Control znajduje się na końcu.
Arduino ma bibliotekę dla serwomotorów i obsługuje wszystkie rzeczy związane z PWM, aby obrócić serwo, wystarczy wpisać kąt, do którego chcesz się obrócić i jest funkcja servo1.write (angle); który obróci serwo pod żądany kąt.
Więc tutaj zaczynamy od zdefiniowania biblioteki dla silnika Servo.
#zawierać
W poniższym kodzie inicjalizujemy wszystkie cztery serwomechanizmy jako Servo1, Servo2, Servo3 i Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Następnie ustawiamy pin wejściowy całego serwa za pomocą Arduino. Jak pokazano na poniższym kodzie, Servo1 jest podłączone do trzeciego pinu Arduino. Możesz zmienić piny według siebie, ale pamiętaj, że powinien to być pin PWM. Używanie serwa z cyfrowymi pinami Arduino nie jest niezawodne.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Teraz w funkcji void loop () po prostu obracamy całe serwo od 0 do 180 stopni, a następnie o 180 do 0 stopni. Opóźnienie użyte w poniższym kodzie służy do zwiększania lub zmniejszania prędkości serwomechanizmu, ponieważ wpływa na zwiększanie lub zmniejszanie prędkości zmiennej „i”.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); opóźnienie (10); } for (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); opóźnienie (10); } }
Sterowanie wieloma serwami za pomocą Arduino - praca:
Wszyscy napotykamy obecny problem podczas używania więcej niż dwóch serw z jednym Arduino. Jedynym rozwiązaniem jest podłączenie zewnętrznego zasilacza o odpowiedniej wartości prądu znamionowego (w tym projekcie użyłem 2A z zasilaniem 9v). Do zewnętrznego zasilania można użyć adapterów, RPS (regulowany instrument zasilający) lub dobrej jakości baterii 9 V, a nawet port USB laptopa do zasilania małego serwa. Aby użyć zewnętrznego zasilania, wystarczy zewrzeć uziemienie Arduino do zewnętrznego uziemienia zasilania.
Użyj kodu Arduino podanego poniżej, aby zaprogramować Arduino i podłączyć wszystkie serwomotory, jak pokazano na schemacie obwodu, z odpowiednim zasilaniem silników. Dlatego wszystkie serwa będą działać razem bez żadnych przerw.