Servomotor aansturen | Sketch | Motor | Licht | Uitdagingen |
Servomotor aansturen: seek-the-light |
seek-the-light: alleen de motorSchema seek-the-light motor deel. Klik op het schema voor de bekabeling op het breadboard Let op! Zorg ervoor dat de aansluiting bij gebruik van batterijen goed is. Foute aansluiting hebben al geleid tot het verbranden van motoren en het Arduino bordjes.
In dit derde project "seek-the-light" laat je de arduino lichtmetingen uitvoeren met een sensor gemonteerd op
een servomotor. De servo moet uiteindelijk een positie innemen waar de sensor de hoogste waarde heeft en dus het meeste licht ontvangt.
In dit project gebruiken we lichtsensoren en een servomotor. Er zijn twee verschillende servomotoren aanwezig:
|
||||||||||||
Sketch | Sketch seek-the-lightDe onderstaande sketch kun je in de IDE laden. In deze sketch wordt getracht de motor over 120 graden te draaien. /* See-the-light 1: Servomotor laten draaien. Voor schema zie https://johnval.nl/school/informatica/arduino/index.htm Voor informatie over het aansturen van een servomotor zie https://arduino.cc/en/Reference/Servo Taken from Arduino Projects Book project 3 modified 2 Jan 2014 By John Val This example code is in the public domain. */ #include "Servo.h" // Laad de servo library Servo myServo; // Maak een servo object int servoPin = 9; // uitvoer pin voor de servomotor hoek int angle =0; // huidige hoek int stepsize=1; // stapgrootte hoek /* De setup routine van de sketch zorgt voor de koppeling van de servmotor aan een pin en initialiseerd communicatie met de computer */ void setup() { myServo.attach(servoPin); // Wijs de servoPin toe aan het myServo object Serial.begin(9600); // Start serial communicatie } /* De eindeloze loop procedure */ void loop() { // Schrijf de hoek naar de computer Serial.print("Hoek: "); Serial.println(angle); // Pas de hoek aan op servomotor myServo.write(angle); // Verander de hoek angle+=stepsize; // Verander de richting van verandering de angle moet tussen 0 en 180 graden bliven. if(angle>=120 || angle <= 0 ) { stepsize*=-1; } // Wacht een tijdje delay(100); } |
Opdracht |
|
||||||||||
Uitdaging |
Uitdaging
|