Serwo: jak używać serwomotoru z Arduino

serwo, silnik serwo

Jeśli chcesz użyć silnik serwo lub serwo, Z Arduino, w tym artykule dowiesz się, czego potrzebujesz, aby rozpocząć. W innych artykułach widzieliśmy już, co jest konieczne do użycia silniki elektryczne, silniki krokowe, a także inne pojęcia niezbędne do zrozumienia działania tego typu urządzenia, takie jak artykuł na temat PWM.

Teraz możesz dodać kolejny nowy komponent elektroniczny do listę urządzeń przeanalizowane i że możesz iść integrując swoje projekty DIY aby dodać nową funkcjonalność.

Co to jest serwo?

serwo

Un siłowniklub po prostu serwo, to silnik elektroniczny, który jest podobny do konwencjonalnych silników prądu stałego, ale zawiera pewne elementy, które czynią je wyjątkowymi. W tym przypadku ma możliwość utrzymania wskazanej pozycji, na co nie pozwalają silniki elektryczne.

Z drugiej strony serwomechanizm również może precyzyjna kontrola prędkość obrotowa, dzięki szeregowi przekładni wewnętrznych i systemowi, który pozwala na znacznie lepszą kontrolę niż w innych typach silników.

Te cechy sprawiają, że jest on szczególnie interesujący dla aplikacje robotyka lub inne urządzenia, w których konieczne jest sterowanie ruchem i pozycją, takie jak drukarka lub zdalnie sterowany samochód. W tego typu samochodach sterowanych radiowo jest konwencjonalny silnik do napędu samochodu oraz serwo do układu kierowniczego, za pomocą którego precyzyjnie steruje się zakrętem.

Różnica między silnikiem krokowym a serwomotorem

Nema 17

Jeśli zastanawiasz różnica między silnikiem serwo a silnikiem krokowym, prawda jest taka, że ​​można je pomylić, skoro w silniku krokowym, czy w stepperze można też dość precyzyjnie sterować obrotami, a aplikacje są bardzo podobne do serwomechanizmu. Zamiast tego są pewne różnice.

I to jest typowe dla serwomotorów magnesy ziem rzadkichpodczas gdy silniki krokowe wykorzystują tańsze i bardziej konwencjonalne magnesy. Dlatego serwo może osiągnąć wyższy moment obrotowy, pomimo zachowania zwartości. Dlatego siła skrętu będzie bardzo duża.

cechy techniczne

Kupując serwo, należy zapoznać się z jego arkuszem technicznym lub arkuszem danych. W ten sposób zapewnisz plik parametry techniczne ma, ale też ograniczenia, którym można go poddać, takie jak napięcie, natężenie, maksymalne obciążenie, moment obrotowy itp. Pamiętaj, że każdy model może być zupełnie inny.

Na przykład, jeśli spojrzysz na jeden z najpopularniejszych, Micro Servo 9G SG90 od znanej firmy Tower Pro, będziesz miał kilka bardzo osobliwych cech, chociaż programowanie i podłączanie modeli są mniej więcej takie same, a wszystko, co tutaj zostało powiedziane, jest przydatne dla każdego.

W przypadku tego modelu jest to wysokiej jakości silnik o kącie skrętu pozwalającym na omiatać między -90 a 90ºczyli całkowity obrót o 180º. Rozdzielczość, którą możesz osiągnąć, jest bardzo wysoka, więc będziesz w stanie stopniowo przesuwać się do przodu. Na przykład z ograniczeniami sygnału PWM wynoszącymi Arduino UNO, możesz nawet uzyskać awans z klasy do klasy.

Podobnie sygnał PWM nakłada również inne ograniczenie, a jest to liczba przypadków, w których każda pozycja może się zmienić w jednostce czasu. Na przykład, ponieważ impulsy działają od 1 do 2 ms i z Okresy 20 ms (50 Hz), to serwo może się poruszać raz na 20 ms.

Ponadto będzie ważył 9 gramów i pomimo tej wagi i kompaktowych rozmiarów może rozwinąć moment obrotowy lub moment 1.8 kg / cmz 4.8 V. To dzięki zestawowi kół zębatych POM.

W końcu już wiesz, że w zależności od tego, co chcesz osiągnąć, będziesz musiał wybrać taki lub inny model, aby miał funkcje potrzebne do Twojego projektu. Oznacza to, że to nie to samo, co chcesz, aby silnik przenosił obciążenie X, niż jeden przez XX ...

Gdzie kupić serwo

siłownik

Jeśli chcesz zacząć korzystać z tego typu serwomotoru, możesz go tanio znaleźć w wielu wyspecjalizowanych sklepach, a także możesz go kupić online w Amazon. Na przykład oto kilka przykładów rekomendowane produkty które mogą Cię zainteresować:

Wszystkie mają całkiem niezły kąt skrętu, ale zasadniczo różni się momentem obrotowym, który każdy może tolerować. Włączyłem trzy różne modele. Ta pierwsza i tańsza może być wystarczająca dla większości zastosowań. Ale jeśli potrzebujesz jednego o większej wytrzymałości do innych zastosowań, masz 25 i 35, które są już dość niezwykłe ...

Integracja z Arduino

serwo arduino
Jak widać na powyższym obrazku, serwo łączy się bardzo łatwo do Arduino. Ma tylko trzy kable, które można podłączyć w ten sposób:

  • Czerwony z 5 V.
  • Czarny z GND
  • Żółty z pinem Arduino PWM, w tym przypadku z -9.

Aby zaprogramować szkic, aby rozpocząć korzystanie z tego typu silników, masz kilka opcji. Ale przede wszystkim, aby zacząć, musisz dodaj bibliotekę Arduino IDE do napędzania tego typu serwomotorów:

  1. Otwórz Arduino IDE.
  2. Przejdź do programu.
  3. Następnie dołącz bibliotekę.
  4. Servo

Jeśli chodzi kod szkicumogłoby być tak proste, w którym serwo przechodzi przez swoje pozycje zatrzymując się na 0º, 90º i 180º:

//Incluir la biblioteca del servo
#include <Servo.h>
 
//Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar el monitor serie
  Serial.begin(9600);
 
  // Iniciar el servo para que use el pin 9 al que conectamos
  servoMotor.attach(9);
}
 
void loop() {
  
  // Desplazar a la posición 0º
  servoMotor.write(0);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazar a la posición 90º
  servoMotor.write(90);
  // Esperar 1 segundo
  delay(1000);
  
  // Desplazamos a la posición 180º
  servoMotor.write(180);
  // Esperar 1 segundo
  delay(1000);
}

Teraz jeśli chcesz przesuwaj go ze stopnia na stopień, to wyglądałoby tak:

// Incluir la biblioteca servo
#include <Servo.h>
 
// Declarar la variable para el servo
Servo servoMotor;
 
void setup() {
  // Iniciar la velocidad de serie
  Serial.begin(9600);
 
  // Poner el servo en el pin 9
  servoMotor.attach(9);
 
  // Iniciar el servo en 0º
  servoMotor.write(0);
}
 
void loop() {
 
  // Los bucles serán positivos o negativos, en función el sentido del giro
  // Positivo
  for (int i = 0; i <= 180; i++)
  {
    // Desplazar ángulo correspondiente
    servoMotor.write(i);
    // Pausa de 25 ms
    delay(25);
  }
 
  // Negativo
  for (int i = 179; i > 0; i--)
  {
    // Desplazar el ángulo correspondiente
    servoMotor.write(i);
    // Pausa e 25 ms
    delay(25);
  }
}


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.