Zwykle silniki serwo mają ramiona, które można kontrolować za pomocą Arduino. Silniki serwo składają się z systemu sterowania, który zapewnia informacja zwrotna O bieżącej pozycji wału silnikowego To sprzężenie zwrotne pozwala poruszać się z doskonałą precyzją.
Servo Motor Pinout
Zazwyczaj większość silników serwo ma trzy szpilki:
Działanie silnika serwo
Możemy kontrolować silnik serwosowy, podłączając pin VCC do 5 V i GND Pin do 0 V. Na terminalu żółtym kolorów zapewniamy PWM sygnał, który kontroluje kąt obrotowy silnika serwosła. Szerokość sygnału PWM daje nam kąt, pod którym silnik obróci ramię.
Jeśli spojrzymy na arkusz danych silników serwo, otrzymujemy następujące parametry:
Wszystkie te parametry są wstępnie zdefiniowane w bibliotece serwomechanizmu Arduino.
Servo Motors z Arduino
Servo Motors są bardzo łatwe do kontrolowania z Arduino, dzięki Biblioteka serwomena co pomaga nam dostosować nasz kod zgodnie z potrzebą i pozwala nam obrócić ramię serwos pod naszym pożądanym kątem.
Wszystkie trzy parametry wymienione powyżej są ustalone w bibliotece serwomechanizmu. Korzystając z tych parametrów, możemy kontrolować kąt silnika serwo w następujący sposób:
Możemy wygenerować pożądany sygnał PWM na niektórych szpilkach Arduino. Sygnał PWM zostanie podany na styku sygnału wejściowego silnika serwa. Łączenie pozostałych dwóch pinów serwomechanizmu do 5 V i GND Arduino.
Jak kontrolować silnik serwo za pomocą Arduino
Tutaj wyjaśnię, w jaki sposób możemy podłączyć i zaprogramować nasz silnik serwo za pomocą Arduino. Wszystko czego potrzebujesz to:
Jak programować serwo z Arduino
Poniżej przedstawiono kilka prostych kroków:
Krok 1: Dołącz predefiniowaną bibliotekę serwomechanizmu:
#włączać
Krok 2: Utwórz obiekt serwo:
Servo Myservo;
Wskazówka: W przypadku, gdy kontrolujesz więcej niż jeden silniki serwomechanizmu, musisz utworzyć więcej obiektów serwomechanizmu:
Servo Myservo1;
Servo Myservo2;
Krok 3: Ustaw kod sterowania (9) na Arduino Uno, który wysyła sygnał PWM do portu sygnału wejściowego serwomechanizmu:
Myservo.dołączyć (9);
Krok 4: Obróć kąt silnika serwomechanizmu do pożądanej wartości, na przykład 90o:
Myservo.Napisz (POS);
Kod Arduino
Otwórz przykładowy program silnikowy od serwomechanizmu od Plik> Przykład> Servo> Sweep, Nowe okno otworzy się, pokazując nam nasz szkic serwo:
#włączać
Servo Myservo; // obiekt serwomechanizmu jest tworzony do kontrolowania silnika serwomechanizmu
int pos = 0; // Aby przechowywać pozycję serwomechanizmu, tworzona jest nowa zmienna
void setup ()
Myservo.dołączyć (9); // To ustawi pin Arduino 9 dla wyjścia PWM
void Loop ()
dla (pos = 0; pos = 0; pos -= 1) // przechodzi od 180 do 0 stopni
Myservo.Napisz (POS); // Powiedz serwo, aby poszedł na pozycję „POS”
opóźnienie (5); // czeka na 5 ms, więc serwo może dotrzeć do pozycji
Po skompilowaniu i przesłaniu programu silnik serwo zacznie obracać się powoli od pozycji wyjściowej 0 stopni do 180 stopni, o jeden stopień na raz, podobnie jak kroki. Po zakończeniu rotacji silnika o 180 stopni rozpocznie obrót w przeciwnym kierunku w kierunku punktu początkowego I.mi., 0 stopnia.
Schematy
Jak kontrolować silnik serwo za pomocą potencjometru
Możemy również ręcznie kontrolować pozycję silnika serwo. Aby to zrobić, potrzebujemy Potencjometr. Potencjometr ma trzy szpilki. Podłącz dwa zewnętrzne szpilki do 5 V VCC i GND Arduino i środkowego do pinu A0 na tablicy Arduino.
Jak programować serwo z potencjometrem
Większość szkicu do potencjometru jest taka sama jak poprzedni przykład. Jedyną różnicą jest nowa zmienna val I potpin jest zdefiniowane przed sekcją konfiguracji i pętli kodu.
int potpin = a0;
int val;
W sekcji pętli analogowy pin A0 służy do odczytu wartości potencjometru z funkcją analogread (). Tablice Arduino zawierają 10-bitowe ADC (analog do cyfrowego konwertera), dając nam wartości między 0 a 1023 w zależności od potencjometru położenia:
val = analogread (potpin);
Na koniec użyliśmy mapa() Funkcja do ponownego mapowania liczb od 0 do 1023 zgodnie z kątem serwomechanizmu, jak wiemy, że silniki serwomechanizmu mogą obracać się tylko między 00 a 1800.
val = mapa (val, 0, 1023, 0, 180);
Kod Arduino
Otwórz szkic pokrętła dostępny w Arduino IDE, idź do Pliki> Przykłady> serwo> pokrętło. Otworzy się nowe okno, które pokazuje nam nasz szkic gałki dla serwomechanizmu:
#włączać
Servo Myservo; // Tworzenie nazwy obiektu serwomechanizmu myServo
int potpin = a0; // definiowanie analogowego szpilki do potencjometru
int val; // Zmienna, która odczytuje analogowe wartości pinów dla potencjometru
void setup ()
Myservo.dołączyć (9); // zdefiniowany pin 9 dla sygnału wejściowego PWM serwomechanizmu na Arduino
void Loop ()
val = analogread (potpin); // odczytuje wartość z potencjometru (wartość od 0 do 1023)
val = mapa (val, 0, 1023, 0, 180); // skal wartość do użycia z serwozytorą (wartość od 0 do 180)
Myservo.napisz (val); // ustawia pozycję serwomechanizmu o skalowanej wartości
opóźnienie (15); // czeka, aż serwo dostanie się do pozycji
Powyższy kod pomoże nam kontrolować wał silnikowy za pomocą potencjometru, wałk obróci się od 0 do 180 stopni. Możemy również utrzymać prędkość wraz z kierunkiem serwomechanizmu.
Schemat obwodu
Ile silników serwo mogę połączyć się z Arduino?
Maksymalna liczba silników serwo Arduino Uno może obsłużyć do 12 z biblioteką Arduino dla serwomenalnego i maksymalnie 48 Servos można połączyć z płytami takimi jak Mega.
Wskazówka: Możemy bezpośrednio uruchamiać serwo za pomocą prądu Arduino, ale pamiętaj, czy silniki serwomotów rysują więcej niż 500MA Wtedy płyta Arduino może automatycznie zresetować i stracić energię. Zaleca się, aby zawsze używać dedykowanego zasilania dla silników serwo.
Wniosek
W tym samouczku omówiliśmy mechanizm kontrolujący silniki serwo za pomocą Arduino. Podstawy kontrolowania pozycji i prędkości serwomechanizmu za pomocą potencjometru. Teraz masz pomysł na serwo i możliwości dla swojej robotyki, projektów RC i automatyzacji za pomocą serwomechanizmu są nieograniczone.