Arduino Tutorial Bundle.: Arduino experimenterande Kit:. (ARDX) (6 / 13 steg)
Steg 6:.: en enda Servo:. (Servon) - CIRC04
Vad vi gör:
Spinning en motor är kul men när det gäller projekt där rörelsekontroll krävs de tenderar att lämna oss mersmak. Svaret? Hobby servon. De är massproducerade, allmänt tillgängliga och kosta allt från ett par dollar till hundratals. Inuti är en liten växellåda (att göra rörelsen mer kraftfull) och vissa elektronik (att göra det lättare att kontrollera). En standard servo är placerbara från 0 till 180 grader. Placering styrs genom en tidsinställd puls, mellan 1,25 millisekunder (0 grader) och 1,75 millisekunder (180 grader) (1.5 millisekunder för 90 grader). Tidpunkten varierar mellan tillverkare. Om puls skickas var 25-50 millisekunder kommer att servo löpa smidigt. En av de stora dragen i Arduino är det har ett mjukvarubibliotek som låter dig styra två servon (ansluten till pin 9 eller 10) med hjälp av en enda rad kod.
(du kan också hämta bladet bakbord layout från botten av detta steg)
Delarna:
- CIRC-04 bakbord blad
- 2 stift huvud (x4)
- 3 stift huvud (x1)
- Mini Servo (x1)
- Wire
Kretsen och ansluta allt:
En liten Video av allt att vara inkopplad
Koden: - Fil > Sketchbook > exempel > bibliotek-Servo > sopa
Sopa / / av BARRAGAN < http://barraganstudio.com> #include < Servo.h > Servo myservo; skapa servo objekt att styra en servoint pos = 0; variabel att lagra servo position void setup() {myservo.attach(9); / / tillmäter objektet servo servo på stift 9} void loop() {för (pos = 0; pos < 180; pos + = 1) / / går från 0 grader till 180 grader {/ / i steg om 1 grad myservo.write(pos); / / tala servo gå till position i variabel "pos' delay(15); / / väntar 15 MS för servo att nå ställning} för (pos = 180, pos > = 1; pos-= 1) / / går från 180 grader till 0 grader {myservo.write () POS); berätta servo gå till position i variabel "pos' delay(15); Waits 15 MS för servo att nå ställning}}
Inte fungerar?
- Servo inte vrida? -Även med färgade trådar är det fortfarande chockerande lätt att koppla ett servo bakåt. Detta kan vara fallet.
- Fortfarande inte fungerar - ett misstag som vi gjort en gång eller två helt enkelt glömde att ansluta strömmen (röda och bruna kablar) till + 5 volt och marken.
- Frustration? -Skjuta oss ett e-postmeddelande, denna krets är både enkla och komplexa samtidigt. Vi vill höra om problem du har så att vi kan hantera dem i framtida utgåvor.
Hjälp
Att göra det bättre:
Potentiometer kontroll:
Vi har ännu inte experimentera med ingångar men om du vill läsa vidare, det finns ett exempel program Fil > Sketchbook > exempel > bibliotek-Servo > knopp ###. Detta används en potentiometer (CIRC08) för att styra servo. Du hittar instruktioner online här: http://tinyurl.com/dymsk2
Själv Timing:
Medan det är lätt att styra ett servo med Arduinos medföljande biblioteket ibland är det roligt att klura ut hur man programmerar något själv. Prova det. Vi styr pulsen direkt så att du kan använda denna metod för att kontrollera servon på någon av den Arduino 20 tillgängliga stift (du behöver för att optimera mycket här koden innan du gör det).
int servoPin = 9; void setup() {pinMode(servoPin,OUTPUT);} void loop() {int pulseTime = 2100; //(the number of microseconds //to pause for (1500 90 degrees // 900 0 degrees 2100 180 degrees) digitalWrite (servoPin, hög), delayMicroseconds(pulseTime), digitalWrite (servoPin, låg), delay(25);}
Bra idéer:
Servon kan användas för att göra alla möjliga stora saker, här är några av våra favoriter.
Xmas besöksräknare
http://tinyurl.com/37djhq
Öppen källkod robotarm (använder en servo controller samt Arduino)
http://tinyurl.com/ckm3wd
Servo Walker
http://tinyurl.com/da5jfe