Arduino Magic klockan (13 / 16 steg)
Steg 13: Kodning del 2
Att göra kontrollera klocka hand lättare vi programmera Arduino att märka möjliga lägen på klockan (ex: arbete, resor etc.) med nummer från 0 till 6. Med kommandot Serial.parseInt() gör processen kort för att förstå de siffror som vi sänder till Arduino. För att utlösa den faktiska rörelse av handen vi kontrollera om på Enter har drabbats, kom ihåg osynligt "\n" som får skickas, vi är nu ska kolla i slutet av vårt budskap och om dess finns vi kommer att skriva en ny position till servo.
om (Serial.available() > 0) {
int clockPos = Serial.parseInt();
om (Serial.read() == "\n") {
myservo.write(clockPos*25+((clockPos+1)*3));
Delay(200);
}
}
Matten jag brukade få klockan position vinklar tog en hel del tweaking men det kommer till att antalet vi in (clockPos) av 25 och sedan räkna ut rätt offset till få pilen pekade nära stadens position logotyp på urtavlan. För mig jag lagt till en och sedan multipliceras med tre för att få en snygg offset. Kan köra igenom matten med några riktiga siffror att visa dig hur det fungerar.
Servo Position matematik
Med min klocka positioner kan antar jag vill så Visa att jag är "Resande". Detta representeras med nummer 2, där 1 var "Livsfara" och 0 var "Arbete".
Så våra clockPos = 2 därför:
Servo vinkel = (2*25)+((2+1)*3)
Servo vinkel = 59 grader
Till Arduino när det löser matten servo skriva linjen ser ut så här nu, vilket är precis som vi vill.
myservo.write(59);