Animatronic Talking julgran - del 1 (9 / 15 steg)
Steg 9: Bestämma utbud av rörelse
Nu måste vi fastställa vår rörlighet för våra servon. Samtidigt kommer jag visa dig några snabba kod som kommer att fungera en servo utan med servo-biblioteket.Servo grunderna
För att flytta, väntar en servo en puls. Vi kan generera som puls varv en digital pin på och av snabbt med korrekt förseningen.
Närmare bestämt väntar en servo en på puls i spänna av 500-2500 mikrosekunder med en off period 20 millisekunder mellan.
Lyckligtvis, Arduino gör detta verkligen lätt att göra.
Skriv följande kod i din Arduino miljö, och vi kommer att använda denna snabb skiss för att räkna ut vår högsta och lägsta värden för animering vårt träd. (eller du kan klippa och klistra från den medföljande textfilen)
int servoPin = 8; //this är stiftet där ansluts servo, förändring för alla digitala pinint servoPos = 2500; Detta värde kommer att vara att ange servo position
värden varierar från 500 till 2500, och representerar från 0 - 180 grader.
är faktiskt tiden i mikro-bestämma storleken på puls för servo
void setup() {
Ange PIN-koden som en utgång
pinMode(servoPin,OUTPUT);
}
void loop() {
i det här fallet använder vi en for-loop att se till att vi slog den ståndpunkt som vi vill nå med servo snabbt
en puls kommer att flytta servo bara en bit mot sin slutdestination, så vi gör 20 pulser i rad
för (int jag = 0; jag < 20; i ++) {
digitalWrite(servoPin,HIGH); slå på servo stift, dvs skicka 5V
delayMicroseconds(servoPos); fördröjning för puls längd i deklarationer
digitalWrite(servoPin,LOW); Inaktivera servo pin tillbaka till slut pulsen
Delay(20); Du måste vänta 15-20 millisekunder mellan pulser, inte mer, inte mindre.
}
}
Prova ett värde, ladda upp den. Prova en annan, ladda upp den. En omständlig väg, men det garanterar att du hittar ett optimalt behaglig rörelse. Dessutom ville jag visa dig en snabb och smutsig servo kontrollmetod.
När du hittar ett bra värde för varje extreme, ta en märka, något liknande; Munnen öppen = 1100, munnen är stängd = 500.
Gör detta för båda din servon, och vi kan gå till något lite mer intressant.