Hallo an alle!
Ich möchte gerne eine Uhr bauen, die mit zwei kleinen Schrittmotoren und einem Arduino Uno gesteuert wird.
Dazu habe ich mir zwei 28BYJ-48 Schrittmotoren gekauft ( die für ein paar Euro).
Folgendes Problem:
Ein Motor soll sich konstant mit einer Geschwindigkeit drehen (z.b. eine Umdrehung pro 60 Minuten)
der andere Motor soll still stehen und sich jede Stunde um X Schritte drehen. Der eine Motor zeigt die aktuelle Stunde an, der andere läuft mit den Minuten. Schonmal vorweg, es brauch nicht super genau sein.
Der Motor der sich konstant drehen soll ist bereits am laufen. Aber wie bekomme ich den zweiten zeitgleich zum laufen?! Habe es mit Delay() versucht aber dann steht ja das Programm still. Auch das mit dem Blinken ohne Delay funktioniert nicht so richtig.
Ich würde mich freuen wenn mir jemand helfen kann.
int motorPin1 = 8; // Blue - In 1
int motorPin2 = 9; // Pink - In 2
int motorPin3 = 10; // Yellow - In 3
int motorPin4 = 11; // Orange - In 4
int motorSpeed = 100;
void setup() {
pinMode(motorPin1, OUTPUT);
pinMode(motorPin2, OUTPUT);
pinMode(motorPin3, OUTPUT);
pinMode(motorPin4, OUTPUT);
}
void loop()
{ // 1
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delay(motorSpeed);
// 2
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delay(motorSpeed);
// 3
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, LOW);
delay(motorSpeed);
// 4
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, HIGH);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delay(motorSpeed);
// 5
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, LOW);
delay(motorSpeed);
// 6
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, HIGH);
digitalWrite(motorPin1, HIGH);
delay(motorSpeed);
// 7
digitalWrite(motorPin4, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delay(motorSpeed);
// 8
digitalWrite(motorPin4, HIGH);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin1, HIGH);
delay(motorSpeed);
}