Hallo
Ich bin noch neu in dem ganzem Thema habe aber schon einige einfache bis mittelschwere Programme geschrieben.
Ich versuche gerade ein LED Panel mit einem ESP8266 anzusteuern.
Mit einem Taster und dem Switch Case Befehl steuere ich jede Anzeige des Panels einzeln an.
Bis dahin hat auch alles gut geklappt.
Jetzt möchte ich noch ein Aktiven Buzzer ansteuern der bei jeder Anzeige eine eigene Tonfolge abspielt.
Habe dort auch schnell bemerkt das ich dort mit einem delay nicht weiterkomme, da der Taster dadurch blockiert wird.
Habe es auch schon mit dem Blink without delay Tutorial probiert, leider bin ich mit dem Ergebnis nicht so ganz zufrieden.
void loop() {
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(10);
digitalWrite(1, LOW);
delay(10);
digitalWrite(1, HIGH);
delay(500);
digitalWrite(1, LOW);
delay(100);
}
So sollte eine Tonfolge aussehen nur darf später kein delay mehr drinnen sein.
Das ist der ganze Code....
#define Stall 16
#define Door 5
#define Flap 4
#define Gear 0
#define Alternator2 2
#define Alternator1 14
#define Master 12
#define CabinPress 13
#define StallHeat 15
#define WindsHeat 3
#define buzzer 1
const int button = 10;
int i = 0;
int buttonState;
int lastState = 0;
void setup() {
pinMode(Stall, OUTPUT);
pinMode(Door, OUTPUT);
pinMode(Flap, OUTPUT);
pinMode(Gear, OUTPUT);
pinMode(Alternator2, OUTPUT);
pinMode(Alternator1, OUTPUT);
pinMode(Master, OUTPUT);
pinMode(CabinPress, OUTPUT);
pinMode(StallHeat, OUTPUT);
pinMode(WindsHeat, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(button,INPUT_PULLUP);
}
void loop() {
buttonState = digitalRead(button);
if (lastState == HIGH && buttonState == LOW) {
i ++;
if (i > 10) {
i = 0;
}
lowSetzen();
}
switch(i) {
case 0:
lowSetzen();
break;
case 1:
digitalWrite(Master, HIGH);
//Hier sollte die Buzzer Tonfolge rein.
break;
case 2:
digitalWrite(Gear, HIGH);
break;
case 3:
digitalWrite(Stall, HIGH);
break;
case 4:
digitalWrite(StallHeat, HIGH);
break;
case 5:
digitalWrite(Alternator1, HIGH);
break;
case 6:
digitalWrite(Flap, HIGH);
break;
case 7:
digitalWrite(CabinPress, HIGH);
break;
case 8:
digitalWrite(WindsHeat, HIGH);
break;
case 9:
digitalWrite(Alternator2, HIGH);
break;
case 10:
digitalWrite(Door, HIGH);
break;
}
lastState = buttonState;
}
void lowSetzen() {
digitalWrite(Master, LOW);
digitalWrite(Gear, LOW);
digitalWrite(Stall, LOW);
digitalWrite(StallHeat, LOW);
digitalWrite(Alternator1, LOW);
digitalWrite(Flap, LOW);
digitalWrite(CabinPress, LOW);
digitalWrite(WindsHeat, LOW);
digitalWrite(Alternator2, LOW);
digitalWrite(Door, LOW);
digitalWrite(buzzer, HIGH);
}
Gibt es eine Möglichkeit das umzusetzen?
Wenn ja wie?
Danke schonmal im voraus.
Gruß
Maurice