Servo: hur man använder servomotorn med Arduino

servo, servomotor

Om du vill använda en servomotor eller servomotor, Med Arduino, i den här artikeln lär du dig vad du behöver för att komma igång. Vi har redan sett i andra artiklar vad som är nödvändigt att använda elmotorer, stegmotorer, och även andra begrepp som är nödvändiga för att förstå hur denna typ av enhet fungerar, såsom artikeln om PWM.

Nu kan du lägga till ytterligare en ny elektronisk komponent i enhetslistan analyserat och att du kan gå integrera dina DIY-projekt för att lägga till ny funktionalitet.

Vad är en servo?

servo

Un servomotor, eller helt enkelt servo, är en elektronisk motor som liknar konventionella likströmsmotorer, men med några element som gör dem speciella. I det här fallet har den förmågan att hålla en position som indikeras, något som elmotorer inte tillåter.

Å andra sidan kan servo också exakt kontroll rotationshastigheten tack vare en serie interna växlar och ett system som möjliggör en mycket bättre kontroll än vad som kunde göras i andra typer av motorer.

Dessa funktioner gör det särskilt intressant för tillämpningar robotik, eller för andra enheter där rörelse och position behöver kontrolleras, såsom en skrivare eller en fjärrkontrollbil. I denna typ av radiostyrd bil finns en konventionell motor för att köra bilen, och en servo för styrningen, med vilken man kan styra svängen exakt.

Skillnad mellan stegmotor och servomotor

Nema 17

Om du undrar skillnaden mellan en servomotor och en stegmotorsanningen är att de kan förväxlas, eftersom i stegmotorn eller stegmotorn kan rotationen också kontrolleras ganska exakt, och applikationerna liknar servon. Istället finns det några skillnader.

Och det är som servomotorerna vanligtvis använder sällsynta jordartsmagneter, medan stegmotorer använder billigare och mer konventionella magneter. Därför kan en servo uppnå högre vridmomentutveckling, trots att den är kompakt. Därför kommer vridkraften att vara mycket hög.

tekniska egenskaper

När du köper en servo bör du läsa dess tekniska datablad eller datablad. På det sättet kommer du att se till att tekniska egenskaper den har, men också de gränser som du kan utsätta den för, såsom spänning, intensitet, maximal belastning, vridmoment etc. Kom ihåg att varje modell kan vara helt annorlunda.

Till exempel, om du tittar på en av de mest populära, Micro Servo 9G SG90 från det välkända Tower Pro-företaget, då kommer du att ha några mycket märkliga egenskaper, även om programmeringen och anslutningen av modellerna är mer eller mindre desamma och allt som sägs här är användbart för alla.

För den här modellen är det en högkvalitativ motor med en vridningsvinkel som tillåter en svep mellan -90 och 90º, det vill säga en total sväng på 180º. Den upplösning du kan uppnå är mycket hög, så att du kan gå framåt lite efter lite. Till exempel med PWM-signalbegränsningarna på Arduino UNO, du kan till och med få ett förskott från klass till klass.

På samma sätt kommer PWM-signalen också att införa en annan gräns, och det är antalet gånger varje position kan ändras per tidsenhet. Till exempel eftersom pulserna arbetar med mellan 1 och 2 ms och med 20 ms perioder (50Hz), då kan servon röra sig var 20: e ms.

Dessutom har den en vikt på 9 gram och trots den vikt och kompakta storlek kan den utveckla en vridmoment eller vridmoment på 1.8 kg / cm med 4.8 v. Det är tack vare POM-redskapet.

Slutligen vet du redan att, beroende på vad du vill uppnå, måste du välja en eller annan modell så att den har funktioner som behövs för ditt projekt. Det vill säga, det är inte samma sak som du vill att en motor ska flytta en last X, än en för XX ...

Var man kan köpa en servo

servomotor

Om du vill börja använda denna typ av servomotor kan du hitta den billig i många specialbutiker, och du kan också få den online på Amazon. Här är till exempel några exempel på rekommenderade produkter som kan intressera dig:

De har alla en ganska bra svängvinkel, men det skiljer sig i grunden i vridmomentet som alla kan tåla. Jag har inkluderat tre olika modeller. Det förra och billigare kan vara tillräckligt för de flesta applikationer. Men om du behöver en med större styrka för andra applikationer, har du 25 och 35, som redan är ganska anmärkningsvärda ...

Integration med Arduino

arduino servo

Som du kan se på bilden ovan, servo ansluter mycket enkelt till Arduino. Den har bara tre kablar som du kan ansluta på detta sätt:

  • Röd med 5V
  • Svart med GND
  • Gul med en Arduino PWM-stift, i detta fall med -9.

För att programmera en skiss för att börja använda dessa typer av motorer har du flera alternativ. Men först och främst måste du göra det lägg till Arduino IDE-bibliotek för att köra denna typ av servomotorer:

  1. Öppna Arduino IDE.
  2. Gå till programmet.
  3. Inkludera sedan bibliotek.
  4. Servo

Beträffande skisskod, det kan vara så enkelt att servon går igenom sina positioner och stannar vid 0 °, 90 ° och 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 om du vill flytta den från grad till grad, då skulle det vara så här:

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


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.