Stap 13: Codering deel 2
Om de controle op de klok hand gemakkelijker wij gaan voor het programmeren van de Arduino op het etiket van de mogelijke posities op de klok (ex: werk, reizen etc.) met getallen van 0 tot 6. Met de opdracht Serial.parseInt() maakt korte metten met het begrijpen van de nummers die we aan de Arduino sturen. Vergeet niet het onzichtbare "\n" om te activeren de werkelijke beweging van de hand die we controleren om te zien als de enter-toets is getroffen, die wordt verzonden, zijn we nu gaan controleren van het einde van onze boodschap en als haar gevonden we een nieuwe positie aan de servo schrijven zullen.
if (Serial.available()>0){ int clockPos = Serial.parseInt(); if (Serial.read() == '\n'){ myservo.write(clockPos*25+((clockPos+1)*3)); delay(200); } }
De wiskunde die ik gebruikte om aan de slag de klok positie hoeken nam een heleboel tweaken, maar het komt neer op het aantal vermenigvuldigen we (clockPos) ingevoerd door 25 en vervolgens uitzoeken op de juiste verschuiving om de pijl wees dicht bij het centrum van het positie-logo op de wijzerplaat. Voor mij ik voegde een en vervolgens vermenigvuldigd met drie om een goed uitziende offset. Laat doorlopen van de wiskunde met sommige reële getallen om u te tonen hoe dit werkt.
Servo positie Math
Met behulp van mijn posities van klok laat veronderstellen dat ik wil zo tonen dat ik "Traveling". Dit zou worden vertegenwoordigd door de nummer 2, waar 1 was "Levensgevaar" en 0 was "Werk".
Dus onze clockPos = 2 Daarom:
Servo-hoek (2*25)+((2+1)*3) =
Servo hoek = 59 graden
Aan de Arduino zodra het lost de wiskunde de servo schrijven lijn ziet er als dit nu, dat is precies dat we willen.
myservo.write(59);