Servo: hoe de servomotor te gebruiken met Arduino

servo, servomotor

Als je een servomotor of servomet Arduino, in dit artikel leer je wat je nodig hebt om aan de slag te gaan. We hebben al in andere artikelen gezien wat er nodig is om te gebruiken elektrische motoren, stappenmotoren, en ook andere concepten die nodig zijn om de werking van dit type apparaat te begrijpen, zoals het artikel over PWM.

Nu kunt u nog een nieuwe elektronische component toevoegen aan de apparatenlijst geanalyseerd en dat u kunt gaan het integreren van uw doe-het-zelf-projecten om nieuwe functionaliteit toe te voegen.

Wat is een servo?

servo-

Un servomotor, of gewoon servo, is een elektronische motor met gelijkenissen met conventionele gelijkstroommotoren, maar met enkele elementen die ze speciaal maken. In dit geval heeft het de mogelijkheid om een ​​aangegeven positie vast te houden, iets wat elektrische motoren niet toestaan.

Aan de andere kant kan de servo ook precies controle de rotatiesnelheid, dankzij een reeks interne tandwielen en een systeem dat een veel betere controle mogelijk maakt dan bij andere typen motoren.

Deze eigenschappen maken het vooral interessant voor toepassingen robotica, of voor andere apparaten waarbij het nodig is om beweging en positie te besturen, zoals een printer of een op afstand bestuurbare auto. In dit type radiografisch bestuurbare auto zit een conventionele motor om de auto aan te drijven, en een servo voor de besturing, waarmee de bocht nauwkeurig kan worden bestuurd.

Verschil tussen stappenmotor en servomotor

Nema 17

Als je het vraagt het verschil tussen een servomotor en een stappenmotor, de waarheid is dat ze kunnen worden verward, omdat in de stappenmotor of stepper de rotatie ook vrij nauwkeurig kan worden geregeld en de toepassingen sterk lijken op de servo. In plaats daarvan zijn er enkele verschillen.

En het is dat de servomotoren meestal gebruiken zeldzame aardmagneten, terwijl stappenmotoren goedkopere en meer conventionele magneten gebruiken. Daarom kan een servo een hogere koppelontwikkeling bereiken, ondanks dat hij compact blijft. Daarom zal de draaikracht erg hoog zijn.

technische kenmerken

Wanneer u een servo koopt, dient u de technische fiche of datasheet te raadplegen. Op die manier zorgt u ervoor dat de technische kenmerken het heeft, maar ook de limieten waaraan je het kunt onderwerpen, zoals spanning, intensiteit, maximale belasting, koppel, etc. Onthoud dat elk model behoorlijk verschillend kan zijn.

Als je bijvoorbeeld kijkt naar een van de meest populaire, de Micro Servo 9G SG90 van de bekende firma Tower Pro, dan heb je een aantal zeer eigenaardige kenmerken, hoewel de programmering en aansluiting van de modellen min of meer hetzelfde zijn en alles wat hier wordt gezegd, voor iedereen nuttig is.

In het geval van dit model is het een motor van hoge kwaliteit, met een draaihoek die een sweep tussen -90 en 90º, dat wil zeggen een totale draai van 180º. De resolutie die u kunt bereiken is erg hoog, dus u kunt heel beetje bij beetje vooruitgaan. Bijvoorbeeld met de PWM-signaalbeperkingen van Arduino UNO, je zou zelfs een voorschot kunnen krijgen van leerjaar tot leerjaar.

Evenzo zal het PWM-signaal ook een andere limiet opleggen, en dit is het aantal keren dat elke positie per tijdseenheid kan veranderen. Omdat de pulsen bijvoorbeeld werken met tussen 1 en 2 ms en met 20 ms periodes (50Hz), dan kan de servo eens per 20 ms bewegen.

Bovendien zal het een gewicht hebben van 9 gram en ondanks dat gewicht en compacte formaat een koppel of koppel van 1.8 kg / cm met 4.8v. Dat is te danken aan de POM-versnellingsset.

Ten slotte weet u al dat u, afhankelijk van wat u wilt bereiken, een of ander model moet kiezen, zodat het de functies die nodig zijn voor uw project. Dat wil zeggen, het is niet hetzelfde dat u wilt dat een motor een belasting X verplaatst, dan een voor XX ...

Waar een servo kopen

servomotor

Als je dit type servomotor wilt gaan gebruiken, kun je het goedkoop vinden in veel gespecialiseerde winkels en je kunt het ook online krijgen bij Amazon. Hier zijn bijvoorbeeld enkele voorbeelden van aangeraden producten die u wellicht interesseren:

Ze hebben allemaal een redelijk goede draaihoek, maar het verschilt fundamenteel in het koppel dat iedereen kan verdragen. Ik heb opgenomen drie verschillende modellen. Het eerste, en goedkopere, kan voor de meeste toepassingen voldoende zijn. Maar als je er een nodig hebt met een grotere sterkte voor andere toepassingen, dan heb je de 25 en 35, die al behoorlijk opmerkelijk zijn ...

Integratie met Arduino

arduino servo
Zoals je kunt zien in de afbeelding hierboven, de servo sluit heel gemakkelijk aan naar Arduino. Hij heeft maar drie kabels, die je op deze manier kunt aansluiten:

  • Rood met 5V
  • Zwart met GND
  • Geel met een Arduino PWM-pin, in dit geval met -9.

Om een ​​sketch te programmeren om dit soort engines te gaan gebruiken, heb je verschillende opties. Maar allereerst moet je om te beginnen Arduino IDE-bibliotheek toevoegen om dit type servomotoren aan te drijven:

  1. Open Arduino IDE.
  2. Ga naar Programma.
  3. Voeg vervolgens Bibliotheek toe.
  4. Servo-

Wat betreft schetscode, het zou zo simpel kunnen zijn dat de servo door zijn posities gaat en stopt bij 0º, 90º en 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);
}

Nu als je wilt verplaats het van graad naar graad, dan zou het zo zijn:

// 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);
  }
}


De inhoud van het artikel voldoet aan onze principes van redactionele ethiek. Klik op om een ​​fout te melden hier.

Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.