Servomotorer kan brukes til mye. I Bygge en terning brukes en slik motor til å slå en terning. I roboten på bildet brukes to servomotorer per ben til å styre hvordan roboten skal gå (eller vinke).
En servomotor er en liten motor som kan vris et gitt antall grader. Servomotorer skilles fra hverandre når det gjelder hvor mange grader de kan vris, og hvor mye de orker å dra. Servomotoren som er inkludert i bokens medfølgende komponentpakke, kan dra opptil 800 g og kan vris opptil 180°.
I følgende eksempel skal vi styre hvordan en servomotor skal vris, ved hjelp av et potensiometer. Vi kobler servomotoren til GPIO-pinne 9 og potensiometeret til analog inngang 0.
Obs! Vi må bryte av tre pinner fra pinnelisten for å kunne koble servomotoren til koblingsbrettet (i og med at både koblingsbrettet og servomotoren har hunnkoblinger).
I selve skissen begynner vi med å inkludere biblioteket for servomotorer. I motsetning til Button-biblioteket er Servo-biblioteket forhåndsinstallert i utviklingsmiljøet. Det er derfor nok å skrive følgende kodesnutt (der vi også lager et nytt servoprosjekt som vi kaller pointer).
// Include the servo library #include <Servo.h> // Create a new servo object Servo pointer;
Avhengig av hvordan vi vrir potensiometeret får vi en verdi mellom 0 og 1023 fra den analoge inngangen. Vi må regne om den skalaen slik at den tilsvarer vridningen av servomotoren, dvs. 0 til 180. Heldigvis finnes det en praktisk funksjon kalt map som vi kan bruke til dette. Ved å kalle den opp kan vi tilpasse skalaen 0–1023 til 0–180.
Map-funksjonen brukes på følgende måte:
map(värde, ursprungs-min, ursprungs-max, nytt min, nytt max);
Den ferdige skissen ser slik ut:
ServoReadPot.ino
Bli medlem og få ekstra bra medlemspriser, poeng på alt du handler og 100 dagers åpent kjøp. Medlemskapet ditt er helt digitalt – praktisk og kortløst!
Les mer