Styr ett servo

Servomotor

Servomotorer kan användas till mycket. I Bygg en tärning används en sådan motor för att slå en tärning. I roboten på bilden används två servomotorer per ben för att styra hur roboten ska gå (eller vinka). 

html_image

Arduino-baserad robot med två servomotorer per ben.

En servomotor är en liten motor som kan vridas ett bestämt antal grader. Servomotorer skiljer sig från varandra när det gäller hur många grader de kan vridas och hur mycket de orkar dra. Servomotorn som följer med i bokens tillhörande komponentkit orkar dra upp till 800 g och kan vridas upp till 180°.

Styrning av servomotor

I följande exempel vill vi styra hur en servomotor ska vridas med hjälp av en potentiometer. Vi kopplar servomotorn till GPIO-stift 9 och potentiometern till analog ingång nummer 0. 

html_image

Illustration gjord med komponenter från Fritzing (fritzing.org). CC BY-SA 3.0

Obs! Vi måste bryta av tre stift från stiftlisten för att kunna koppla servomotorn till kopplingsplattan (i och med att både kopplingsplattan och servomotorn har honkopplingar).

I själva sketchen börjar vi med att inkludera biblioteket för servomotorer. Till skillnad från Button-biblioteket är Servo-biblioteket förinstallerat i utvecklingsmiljön. Det räcker därför med att skriva följande kodsnutt (där vi också skapar ett nytt servoobjekt vid namn pointer).

// Include the servo library
#include <Servo.h>

// Create a new servo object
Servo pointer;  

Beroende på hur vi vrider potentiometern kommer vi att få ett värde mellan 0 och 1023 från den analoga ingången. Vi måste räkna om den skalan så att den motsvarar vridningen av servomotorn, det vill säga 0 till 180. Lyckligtvis finns det en smidig funktion vid namn map som vi kan använda för detta. Genom att anropa den kan vi anpassa skalan 0-1023 till 0-180. 

html_image

Map-funktionen anpassar skalan.

Map-funktionen används på följande sätt. 

map(värde, ursprungs-min, ursprungs-max, nytt min, nytt max);

Den färdiga sketchen ser ut på följande vis. 

ServoReadPot.ino

Senast ändrad: 2017-01-24
ServomotorStyrning av servomotor
Bli medlem i dagGör som nästan 2 miljoner andra och ta del av erbjudanden samt förmåner när du handlar!

Som medlem får du:

  • Exklusiva medlemserbjudanden
  • Poäng på allt du handlar
  • 100 dagars öppet köp
  • Se dina köp på kjell.com
Som medlem hos Kjell & Company kan du köpa utvalda medlemsvaror till extra bra priser, samla poäng och få bonuscheckar, samt ta del av unika medlemserbjudanden. Du får även förtur till vår kundservice, utökat öppet köp och förlängd garanti på utvalda varumärken.Läs mer om medlemskapet
Alltid tryggt att handla hos Kjell
Fri frakt

Vi bjuder på frakten när du handlar för mer än 300:-

Fri retur

Fria returer i alla våra butiker.

Snabba leveranser

1-2 arbetsdagar leveranstid

Hämta i butik

Reservera online och hämta ut i butik samma dag

Medlem i

Medlem i trygg e-handel

Du betalar enkelt

Får din beställning levererad med

Du kan handla från både

Det verkar som att du använder en gammal webbläsare, det kan göra att allt inte fungerar eller ser ut som det borde.