Wenn der Taster gedrückt wird, soll der Servomotor auf eine zufällige Position fahren. Der Zeiger bleibt dann auf einem der farbigen Felder stehen.
So sieht es aus:
Lege den Motor auf die Seite und befestige das ⇒Glücksrad und den Zeiger am Motor.
Benötigte Bauteile:
- Servomotor
- Taster
- Leitungsdrähte
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliothek
Binde die Bibliothek Servo.h ein und definiere die Variablen.
#include "Servo.h"
// Bezeichnung des Motors
Servo Motor;
int Position;
int TASTER = 7;
int TasterLesen;
Im setup-Teil wird neben der Definition des Tasters und und dem Start des Zufallsgenerator auch der Motor auf die 180°-Position (nach links) gefahren. Du musst den Motor und das Glücksrad so positionieren, dass der Zeiger links steht.
void setup()
{
/*
pinMode des Tasters setzen
INPUT = Modus Eingabe
INPUT_PULLUP = Modus Eingabe und Eingangspegel auf HIGH setzen
*/
pinMode(TASTER, INPUT_PULLUP);
// Pin 9 dem Motor zuordnen
Motor.attach(9);
// Zufallsgenerator starten
randomSeed(A0);
// Motor nach links fahren
Motor.write(180);
}
Im loop-Teil wird auf Tasterdruck eine Zufallszahl zwischen 5 und 175 bestimmt und der Motor wird zu dieser Position gefahren.
void loop()
{
TasterLesen = digitalRead(TASTER);
if (TasterLesen == LOW)
{
delay(500);
int Minimum = 5;
int Maximum = 175;
// Zufallszahl ermitteln
int Position = random(Minimum, Maximum);
// Motor zur Zufallsposition fahren
Motor.write(Position);
delay(500);
}
}
Schließe einen Lautsprecher an und ergänze das Programm:
Wenn der Zeiger im blauen Feld stehen bleibt, soll eine Tonfolge wiedergegeben werden.
Ergänze im Kopf des Programms:
int LAUTSPRECHER = 6;
Füge im loop-Teil hinzu:
void loop()
{
TasterLesen = digitalRead(TASTER);
if (TasterLesen == LOW)
{
delay(500);
int Minimum = 5;
int Maximum = 175;
int Position = random(Minimum, Maximum);
Motor.write(Position);
delay(500);
<strong>// diesen Teil einfügen
if (Position > 45 && Position < 90)
{
// Frequenzbereich 1000 bis 2000
for (int i = 1000; i <= 2000; i += 100)
{
tone(LAUTSPRECHER, i);
delay(100);
noTone(LAUTSPRECHER);
}
for (int i = 2000; i > 1000; i -= 100)
{
tone(LAUTSPRECHER, i);
delay(100);
noTone(LAUTSPRECHER);
}
}
// Ende des eingefügten Teils</strong>
}
}
Du kannst auch andere Frequenzbereiche verwenden.
Verwandte Anleitungen:
- Automatische Tür mit Hall-Sensoren
- Glücksrad mit 360°-Servomotor
- Glücksrad mit Schrittmotor
- Servomotor mit einem Potentiometer steuern
- Türöffner mit einem RFID-Modul und Servomotor
- Wahrsagerin
Letzte Aktualisierung: