Metainformationen zur Seite
Zusammenbau des Messgerätes
Nun geht's ans Eingemachte: Wir bauen die Komponenten Arduino, Leuchtdiode, Taster und Servomotor zusammen, um damit die Reaktionszeit messen zu können.
Was du schon weißt
- Wie man eine Leuchtdiode an den Arduino anschließt und einen Widestand verwendet.
- Wie man einen Quelltext bzw. ein Programm auf den Arduino hochlädt.
- Wie man eine Leuchtdiode zum Blinken bringt.
- Wie man eine Leuchtdiode auf Tastendruck ein- bzw. ausschaltet.
- Wie man mit dem Arduino abfragt, ob ein Taster gedrückt wurde.
- Wie man mit dem Arduino einen Servomotor ansteuert.
Was kommt jetzt?
Wie gesagt: nun muss eigentlich alles nur noch geeignet zusammengebaut werden. Außerdem basteln wir uns aus der mitgerbachten Pappe eine Skala, an der mn schließlich die Reationszeit ablesen können soll.
Aufbau auf dem Steckbrett
das Programm
Zunächst sei darauf hingewiesen, dass der gesamte Code zum Kopieren und ohne Erläuterungen weiter unten zu finden ist.
Das Programm besteht - wie immer - aus den beiden Teilen setup und loop.
Im setup-Teil legen wir z.b. fest, dass der Kontakt zur Leuchtdiode ein Ausgang ist, der Kontakt zum Taster dagegen ein Eingang. Außerdem teilen wir dem Arduino mit, dass der Kontakt zur Servomotor tatsächlich einen Servomotor betreuen soll. Außerdem wird der Zufallszahlengenerator eingeschaltet:
#include <Servo.h> Servo myservo; int ledPin = 2; int buttonPin = 3; int servoPin = 5; int pos; void setup() { myservo.attach(servoPin); pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); randomSeed(analogRead(A0)); }
Im loop-Teil wird es nun spannend. Was soll das Programm denn tun?
- Auf einen Startbefehl warten. In unserem Fall darauf, dass der Taster betätigt wird.
- Den Motor in die Ausgangsposition bewegen.
- Die Leuchtdiode einschalten.
- Den Motor solange langsam bewegen, bis erneut der Taster betätigt wird.
- Die Leuchtdiode ausschalten.
- Wieder von vorne beginnen!
Der 1. Schritt wäre ganz zu Beginn nicht notwendig. Erst, wenn man mehrfach hintereinander die Reaktionszeit messen möchte, muss nach der ersten Messung oder halt vor der Messung sichergestellt werden, dass der Motor wieder in der Ausgangsposition steht.
void loop() { //-------------------------------------- // Warten auf Tastendruck while (digitalRead(buttonPin) && pos<181) {} pos=0; //-------------------------------------- Motor auf Null myservo.write(pos); delay(random(1500,3000)); //-------------------------------------- LED einschalten digitalWrite(ledPin, HIGH); //-------------------------------------- warten, bis Tastendruck //-------------------------------------- derweil Motor immer weiter fahren pos=0; while (digitalRead(buttonPin)) { pos++; myservo.write(pos); delay(5); } //-------------------------------------- LED ausschalten digitalWrite(ledPin, LOW); delay(250); }
Quellcode
#include <Servo.h> Servo myservo; int ledPin = 2; int buttonPin = 3; int servoPin = 5; int pos; void setup() { myservo.attach(servoPin); pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); randomSeed(analogRead(A0)); } void loop() { while (digitalRead(buttonPin)) {delay(100);} pos=0; myservo.write(pos); delay(random(1500,3000)); digitalWrite(ledPin, HIGH); pos=0; while (digitalRead(buttonPin) && pos<181) { pos++; myservo.write(pos); delay(5); } digitalWrite(ledPin, LOW); delay(250); }
Messskala und Halterung
Zu guter Letzt kann noch eine Skala gebaut werden, sodass man darauf ablesen kann, wieviel Zeit bis zur Reaktion nun vergangen ist. Ein Beispiel dazu kannst du bei Hern. Lange sehen.
Ziel erreicht
Herzlichen Glückwunsch! Du weißt nun, wie man mithilfe des Microcomputers Arduino, einer Leuchtdiode, eines Tasters, eines Servomotors und diverser Kleinteile ein kleines Projekt bastelt und programmiert.
Und wie geht es jetzt weiter?
Unser Projekt ist nun zuende. Zunächst hoffen wir, dass es euch gefallen hat. Wenn du nach Möglichkeiten suchst, weiterhin mit dem Arduino kleine Projekte zu bauen, dann gibt es mehrere Möglichkeiten:
- Du kommst ans Ratse. Dort gibt es immer wieder Angebote in diesem Bereich.
- Wenn du nicht ans Ratse kommst, kannst natürlich auf eigene Faust Projekte in Angriff nehmen. Ideen dazu gibt es im Internet zuhauf. Alles, was du benötigst, ist ein internetfähiger Computer, damit du dir für zuhause die Arduino-IDE, die Programmieroberfläche herunterladen kannst. Dann brauchst du lediglich ein paar Kleinteile und den Arduino und schon geht's los.
- Eventuell gibt es auch als Nichtratseschüler die Möglichkeit, an unseren Angeboten teilzunehmen. Sprich uns einfach darauf an und verpasse nicht, wenn auf unserer Homepage ein solches angeboten wird.