Hvordan kontrollere servomotor med Arduino

Hvordan kontrollere servomotor med Arduino
Servomotorer er en type elektrisk enhet som kan endre eller rotere plassering av et objekt med stor presisjon. Ved start ble de brukt til å kontrollere RC -flyvinger øyeblikk senere de tok seg til robotikk, humanoide roboter og mange automatiseringsprosjekter. I motsetning til steppermotorer er bevegelsen deres begrenset mellom 0 til 180o.

Vanligvis har servomotorer armer som kan kontrolleres ved hjelp av Arduino. Servomotorer består av et kontrollsystem som gir Tilbakemelding Om den nåværende posisjonen til motorakselen Denne tilbakemeldingen gjør det mulig å bevege seg med stor presisjon.

Servo Motor Pinout

Vanligvis har de fleste servomotorer tre pinner:

  • VCC -pinne (normalt rød 5v)
  • GND -pinne (normalt svart 0v)
  • Inngangssignal PIN (motta PWM -signal fra Arduino)

Arbeid av servomotor

Vi kan kontrollere servomotoren ved å koble VCC -pinnen til 5V og GND -pinnen til 0v. På den gule fargeterminalen gir vi en PWM signal som kontrollerer den roterende vinkelen til servomotoren. PWM -signalets bredde gir oss vinkelen som motoren vil rotere armen.

Hvis vi ser på databladet til Servo Motors, får vi følgende parametere:

  • PWM signalperiode
  • Minimumsbredde for PWM
  • Maksimal bredde for PWM

Alle disse parametrene er forhåndsdefinert i Arduino Servo Library.

Servo motorer med Arduino

Servomotorer er superenkle å kontrollere med Arduino, takket være Servo bibliotek Noe som hjelper oss å tilpasse koden vår etter behov og lar oss rotere servoarmen i vår ønskede vinkel.

Alle de tre parametrene som er nevnt ovenfor, er fikset i Servo -biblioteket. Ved å bruke disse parametrene kan vi kontrollere vinkelen på servomotor på følgende måte:

  • Hvis PWM signalbredde = bredde_max, vil servo rotere til 180O
  • Hvis PWM signalbredde = bredde_miin, vil servo rotere til 0O
  • Hvis PWM -signalbredde ligger i mellom Bredde_max og width_min, Servomotoren vil rotere mellom 0o og 180o

Vi kan generere et ønsket PWM -signal på noen av Arduino -pinnene. PWM -signal vil bli gitt ved inngangssignalpinnen til servomotoren. Koble gjenværende to pinner med servo til 5V og GND av Arduino.

Hvordan kontrollere servomotor ved hjelp av Arduino

Her vil jeg forklare hvordan vi kan koble til og programmere servomotoren vår ved hjelp av Arduino. Alt du trenger er:

  • Arduino Uno
  • USB B -kabel
  • Servo motor
  • Jumper ledninger

Hvordan programmere servo med Arduino

Følgende er noen enkle trinn:

Trinn 1: Inkluder forhåndsdefinert servo -bibliotek:

#inkludere

Steg 2: Lag servoobjekt:

Servo myservo;

Tips: Hvis du kontrollerer mer enn en servomotorer, må du lage flere servoobjekter:

Servo myservo1;
Servo myservo2;

Trinn 3: Sett kontrollpinne (9) på Arduino Uno som sender PWM -signal til inngangssignalporten til servo:

myservo.fest (9);

Trinn 4: Roter servomotorisk vinkel til ønsket verdi for eksempel 90O:

myservo.skriv (pos);

Arduino -kode

Åpne Servo Motor -eksempelprogram fra Fil> Eksempel> Servo> Sveip, Et nytt vindu åpner og viser oss vår servo -skisse:

#inkludere
Servo myservo; // Servo -objekt opprettes for å kontrollere servomotor
int pos = 0; // For å lagre servo -stilling opprettes en ny variabel
void setup ()
myservo.fest (9); // dette vil angi Arduino PIN 9 for PWM -utgang

void loop ()
for (pos = 0; pos = 0; pos -= 1) // går fra 180 til 0 grader
myservo.skriv (pos); // be Servo om å gå til 'pos' stilling
forsinkelse (5); // venter på 5 ms slik at servo kan nå til posisjon

Når programmet er samlet og lastet opp, vil servomotoren begynne å rotere sakte fra startposisjon 0 grader til 180 grader, en grad om gangen akkurat som trinn. Når motoren har fullført 180-graders rotasjon, vil den starte rotasjonen i motsatt retning mot utgangspunkt I.e., 0 grad.

Skjemaer

Hvordan kontrollere servomotor ved hjelp av potensiometer

Vi kan også kontrollere Servo Motor Position for Hand. For å gjøre dette trenger vi en Potensiometer. Potentiometer har tre pinner. Koble de to utvendige pinnene til 5V VCC og GND av Arduino og Middle One til A0 -pinnen på Arduino Board.

Hvordan programmere servo med potensiometer

Det meste av skissen for potensiometer er det samme som forrige eksempel. Den eneste forskjellen er en ny variabel Val og Potpin er definert før konfigurasjons- og sløyfedelen av koden.

int potpin = A0;
int val;

I sløyfeseksjon brukes analog pinne A0 til å lese verdier for potensiometer med funksjon Analogread (). Arduino-tavler inneholder 10-bit ADC (analog til digital omformer) som gir oss verdier mellom 0 og 1023 avhengig av hvilken posisjonspotensiometer er:

val = analogread (potpin);

Til slutt har vi brukt kart() Funksjon for å kartlegge tallene fra 0 til 1023 i henhold til servievinkelen som vi vet at servomotorer bare kan rotere mellom 00 og 1800.

val = kart (val, 0, 1023, 0, 180);

Arduino -kode

Åpen knottskisse tilgjengelig i Arduino IDE, gå til Filer> Eksempler> Servo> Knott. Et nytt vindu åpnes som viser oss vår knottskisse for Servo:

#inkludere
Servo myservo; // Opprette et servo -objektnavn Myservo
int potpin = A0; // Definere analog pinne for potensiometer
int val; // variabel som vil lese analoge pin -verdier for potensiometer
void setup ()
myservo.fest (9); // definert pinne 9 for PWM -inngangssignal for servo på Arduino

void loop ()
val = analogread (potpin); // leser verdi fra potensiometer (verdi mellom 0 og 1023)
val = kart (val, 0, 1023, 0, 180); // skala verdien som skal brukes med servo (verdi mellom 0 og 180)
myservo.skriv (val); // setter servo -stilling med skalert verdi
forsinkelse (15); // venter på at servoen kommer til posisjon

Over -koden vil hjelpe oss med å kontrollere Servo Motor -akselen ved hjelp av potensiometer, skaftet vil rotere mellom 0 og 180 grader. Vi kan også opprettholde hastigheten sammen med retningen på servo ved å bruke den.

Kretsdiagram

Hvor mange servomotorer kan jeg få kontakt med Arduino?

Maksimalt antall servomotorer Arduino Uno kan håndtere er opptil 12 med Arduino -biblioteket for servo, og maksimum av 48 SERVOS kan kobles til tavler som mega.

Tips: Vi kan direkte kjøre Servo ved hjelp av Arduino -strøm, men husk om Servos Motors tegner mer enn 500mA Da kan Arduino -styret ditt automatisk tilbakestilles og miste strømmen. Det anbefales å alltid bruke en dedikert strømforsyning for servomotorer.

Konklusjon

I denne opplæringen har vi dekket kontrollmekanismen til servomotorer med Arduino. Vi dekket det grunnleggende om å kontrollere servo -stilling og hastighet ved hjelp av potensiometer. Nå har du en ide om servo og muligheter for robotikken din, RC -prosjekter og automatisering ved bruk av Servo er uendelige.