waarde = analogRead(pin);
In dit voorbeeld wordt een potmeter uitgelezen. Een potmeter is een spanningsdeler. Over de twee buitenste pootjes staat een spanning van 5 volt. Wanneer je het middelste pootje uitleest heeft dit een waarde tussen de 0 en de 5 volt. Door te draaien aan de knop wordt deze uitgangsspanning veranderd.
Het uitlezen van een potmeter is analoog. De middelste pin van de potmeter moet dus aangesloten worden op een ANALOG IN pin. De ingelezen waarde ligt tussen de 0 en de 1023. De waarde 0 komt overeen met 0 volt en de waarde 1023 met 5 volt. De waarde 100 komt dus overeen met 0,48 volt. Ga dit na!
waarde = map(waarde, vanLaag, vanHoog, naarLaag, naarHoog)
De waarde van de potmeter wordt naar de servo gestuurd. Een servo kan over een hoek van 180 graden draaien. De outputwaarde moet daarom tussen de 0 en de 180 liggen. Daarom moet de analoge waarde van de potmeter geschaald worden naar een digitale waarde die geschikt is voor de input van de servo. De 0 tot 5 volt werd eerst verdeeld over 1023 schaaldelen en nu over 180 schaaldelen.
De servo heeft drie aansluitingen. De rode draad is voor de 5V. De zwarte is voor de verbinding met de ground. De gele is voor de aansturing en komt vanaf een DIGITAL pin die geschikt is voor PWM.
Arduino heeft een variëteit aan ingebouwde bibliotheken voor het aansturen van motoren, servo's, LCD schermen en veel andere externe apparaten. In dit geval importeer je de bibliotheek voor de servo. Dit doe je altijd voor de void setup().
De servo moet een naam krijgen. In dit geval krijgt het de naam myservo. Dit doe je altijd voor de void setup().
myservo.attach(pin);
Je moet aan geven vanuit welke pin de servo wordt aangestuurd. In dit geval is dit pin 9. Dit doe je in void setup().
myservo.write(waarde);
De arduino moet een waarde naar de servo schrijven om deze van positie te laten veranderen. Een servo kan over een hoek van 180 graden draaien. De waarde moet daarom tussen de 0 en de 180 liggen (de uiterste waarden).
______________________________________________________________________________________________
Je moet de code zo aanpassen dat de hoek die de servo kan maken nog maar 45 graden is. Experimenteer ook met de snelheid van de hoekverdraaiing. Hoe snel kan een servo draaien?