Servo: hvordan du bruker servomotoren med Arduino

servo, servomotor

Hvis du vil bruke en servomotor, eller servomotor, Med Arduino, i denne artikkelen vil du lære hva du trenger for å komme i gang. Vi har allerede sett i andre artikler hva som er nødvendig å bruke elektriske motorer, trinnmotorer, og også andre konsepter som er nødvendige for å forstå driften av denne typen enheter, for eksempel artikkelen på PWM.

Nå kan du legge til en ny ny elektronisk komponent i enhetslisten analysert og at du kan gå integrering av DIY-prosjekter for å legge til ny funksjonalitet.

Hva er en servo?

servo

Un Servo motor, eller bare servo, er en elektronisk motor som har likheter med konvensjonelle DC-motorer, men med noen elementer som gjør dem spesielle. I dette tilfellet har den muligheten til å holde en posisjon som er indikert, noe som elektriske motorer ikke tillater.

På den annen side kan servoen også nøyaktig kontroll rotasjonshastigheten, takket være en rekke interne gir og et system som gir en mye bedre kontroll enn det som kan gjøres i andre typer motorer.

Disse funksjonene gjør det spesielt interessant for programmer robotikk, eller for andre enheter der det er nødvendig å kontrollere bevegelse og posisjon, for eksempel en skriver eller en fjernstyrt bil. I denne typen radiostyrt bil er det en konvensjonell motor for å kjøre bilen, og en servo for styringen, som du kan kontrollere svingen nøyaktig med.

Forskjellen mellom trinnmotor og servomotor

Nema 17

Hvis du lurer på det forskjellen mellom en servomotor og en trinnmotor, sannheten er at de kan forveksles, siden i trinnmotoren eller trinnmotoren kan rotasjonen også styres ganske presist, og applikasjonene ligner veldig på servoen. I stedet er det noen forskjeller.

Og det er at servomotorene vanligvis bruker sjeldne jordsmagneter, mens trinnmotorer bruker billigere og mer konvensjonelle magneter. Derfor kan en servo oppnå høyere dreiemomentutvikling, til tross for at den er kompakt. Derfor vil svingkraften være veldig høy.

Spesifikasjoner

Når du kjøper en servo, bør du gå til teknisk ark eller datablad. På den måten vil du sikre tekniske egenskaper den har, men også grensene du kan utsette den for, for eksempel spenning, intensitet, maksimal belastning, dreiemoment osv. Husk at hver modell kan være ganske forskjellige.

For eksempel, hvis du ser på en av de mest populære, Micro Servo 9G SG90 fra det velkjente Tower Pro-firmaet, så vil du ha noen veldig særegne egenskaper, selv om programmering og tilkobling av modellene er mer eller mindre de samme, og alt som er sagt her er nyttig for alle.

I tilfelle av denne modellen er det en motor av høy kvalitet, med en svingvinkel som tillater en feie mellom -90 og 90ºdet vil si en total sving på 180º. Oppløsningen du kan oppnå er veldig høy, så du vil kunne komme videre litt etter litt. For eksempel med PWM-signalbegrensningene på Arduino UNO, du kan til og med få et forskudd fra karakter til karakter.

På samme måte vil PWM-signalet også innføre en annen grense, og det er antall ganger hver posisjon kan endres per tidsenhet. For eksempel, siden pulser fungerer med mellom 1 og 2 ms og med 20 ms perioder (50Hz), så kan servoen bevege seg hver 20. ms.

I tillegg vil den ha en vekt på 9 gram, og til tross for den vekten og den kompakte størrelsen kan den utvikle en dreiemoment eller dreiemoment på 1.8 kg / cm med 4.8v. Det er takket være POM-girsettet.

Til slutt vet du allerede at, avhengig av hva du vil oppnå, må du velge en eller annen modell, slik at den har funksjonene som trengs for prosjektet ditt. Det vil si at det ikke er det samme at du vil at en motor skal flytte en last X, enn en for XX ...

Hvor å kjøpe en servo

Servo motor

Hvis du vil begynne å bruke denne typen servomotor, kan du finne den billig i mange spesialforretninger, og du kan også få den online på Amazon. Her er for eksempel noen eksempler på anbefalte produkter som kan interessere deg:

Alle har en ganske god vridningsvinkel, men det skiller seg i utgangspunktet i dreiemomentet hver enkelt tåler. Jeg har tatt med tre forskjellige modeller. Førstnevnte, og billigere, kan være tilstrekkelig for de fleste applikasjoner. Men hvis du trenger en med større styrke for andre applikasjoner, har du 25 og 35, som allerede er ganske bemerkelsesverdige ...

Integrasjon med Arduino

arduino servo

Som du kan se på bildet ovenfor, servoen kobles veldig lett til Arduino. Den har bare tre kabler, som du kan koble til på denne måten:

  • Rød med 5V
  • Svart med GND
  • Gul med en Arduino PWM-pinne, i dette tilfellet med -9.

For å programmere en skisse for å begynne å bruke denne typen motorer, har du flere alternativer. Men først og fremst må du begynne legg til Arduino IDE-bibliotek for å kjøre denne typen servomotorer:

  1. Åpne Arduino IDE.
  2. Gå til Program.
  3. Inkluder deretter bibliotek.
  4. Servo

Som til skisse kode, det kan være så enkelt at servoen vil gå gjennom sine posisjoner og stoppe ved 0 °, 90 ° og 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);
}

Nå hvis du vil flytte den fra grad til grad, så ville det være slik:

// 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 den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.