Wird der Taster gedrückt, startet der 360°-Servomotor für eine zufällige Anzahl von Millisekunden eine Bewegung im Uhrzeigersinn oder gegen den Uhrzeigersinn. Der Zeiger bleibt auf einem der farbigen Felder stehen Die Drehrichtung wird zufällig bestimmt.
Der 360°-Servomotor erlaubt eine kontinuierliche Bewegung: Wird keine
Zeit für die Dauer der Drehung vorgegeben, dreht sich der Motor.
Er muss zwingend an einem Pin mit Pulsweitenmodulation angeschlossen werden.
Er kann sich im Uhrzeigersinn und gegen den Uhrzeigersinn drehen. Außerdem kann die Geschwindigkeit der Drehung bestimmt werden.
0 = maximale Geschwindigkeit im Uhrzeigersinn
90 = Motor anhalten
180 = maximale Geschwindigkeit gegen den Uhrzeigersinn
Die Zwischenwerte regulieren die Drehrichtung und die Geschwindigkeit.
// eingebaute Bibliothek einbinden
# include
// Name des Motors
Servo Motor;
// Minimum und Maximum der "Laufzeit" des Motors
int Minimum = 300;
int Maximum = 1500;
// Pin des Tasters
int Taster = 7;
// Variable für die Drehrichtung
int Drehrichtung;
void setup()
{
// Motor an Pin 9
Motor.attach(9);
// Motor anhalten
Motor.write(90);
// Zufallsgenerator starten
randomSeed(analogRead(0));
// INPUT_PULLUP: Taster als Eingang definieren, Eingang auf HIGH setzen
pinMode(Taster, INPUT_PULLUP);
}
void loop()
{
// Status des Tasters abfragen
int TasterLesen = digitalRead(Taster);
// Taster wurde gedrückt
if (TasterLesen == LOW)
{
// Drehrichtung zufällig bestimmen
Drehrichtung = random(0, 2);
// Motor im Uhrzeigersinn drehen
if (Drehrichtung == 0) Motor.write(80);
// Motor gegen den Uhrzeigersinn drehen
else Motor.write(100);
// zufällige Anzahl von Millisekunden drehen
delay(random(Minimum, Maximum));
// Motor anhalten
Motor.write(90);
}
}