Moin zusammen,
bin gerade an einem meiner ersten Arduino Projekte und hab ein Problem mit den millis.
Die Schaltung funktioniert soweit, die Relais schalten abwechselnd bleiben dann aber an und gehen nicht nach den vorgegeben 2000 millisekunden aus.
Ich hoffe der Sketch ist verständlich erklärt und logisch geschrieben.
Vielen Dank im Vorraus
Simon
int Relais = 13;
int Relais1 = 12;
int button = 4; // Variable Taster
int buttonStatus = 1; // Hier wird die Information gespeichert, ob Taster gedrückt oder nicht.
int buttonStatusAlt = 1; // Hier ist die vorherige Information gespeichert
int zaehler = 0; // Zählt wie oft Taster gedrückt wurde
unsigned long lastMillis;
unsigned long lastMillis1;
void setup() {
pinMode(Relais, OUTPUT);
pinMode(Relais1, OUTPUT);
pinMode(button, INPUT_PULLUP);
lastMillis = millis();
lastMillis1 = millis();
}
void loop() {
Serial.begin(9600);
buttonStatus = digitalRead(button); // Prüfe, ob Taster gedrückt oder nicht
if (buttonStatusAlt != buttonStatus) // Wenn der alte Status nicht dem neuen Status entspricht
{
if (buttonStatus == LOW) // Und der Taster gedrückt wurde
{
if (zaehler == 2) // Und der Zähler gleich 2 ist
{
zaehler = 0; // Setze den Zähler zurück auf 0
}
else
{
zaehler++; // Wenn der Zähler nicht 2 ist, erhöhe den Zähler um 1
}
}
}
buttonStatusAlt = buttonStatus; // Setze den alten Status = den neuen Status
if (zaehler == 1 && millis() - lastMillis <= 2000) {
digitalWrite(Relais, HIGH);
}
else {
digitalWrite(Relais, LOW);
}
if (zaehler == 2 && millis() - lastMillis1 <= 2000) {
digitalWrite(Relais1, HIGH);
}
else {
digitalWrite(Relais1, LOW);
}
}
Relais_Schaltung_Forum.ino (1.63 KB)