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). 

25-1_1.png

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. 

25-2_1.png

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. 

25-2_2.png

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 över 2 miljoner andra och ta del av erbjudanden samt förmåner när du handlar!

Som medlem får du:

  • 100 dagars öppet köp
  • Digitala butikskvitton med Kivra
  • Extra bra medlemspriser
  • Exklusiva medlemserbjudanden
  • Poäng på allt du handlar
  • Bonuscheckar
  • 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 från 499:-

Fria fraktalternativ vid köp från 499:-

Öppet köp i 100 dagar

Som medlem! Även fri retur i alla butiker

Snabba leveranser

1-2 arbetsdagar leveranstid på lagervaror

Hämta i butik, GRATIS!

Reservera online, redo att hämtas ut efter 15 minuter. Kostnadsfritt!

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.