so jetzt habe ich beide LedBlinen und BuzzAlert als funktionen fertig. puhh aber.... wenn ich beide im LOOP aufrufe Blinkt die LED schon mein Buzzer macht aber keinen wechsel... wo habe ich den denkfehler? einzeln angesprochen gehen beide....
//### Starte Setup ###
void setup() {
Serial.begin(9600); //kann man immer brauchen!
}
//### Starte Loop ###
void loop() {
BuzzAlert(8,200); //func wird aufgerufen
LedBlinken(4,10,200);
}
void LedBlinken (byte LedPin, long anzahl, long intervalLB){ //function diese lässt an #LedPin pin der LED #anzhal der blinkens #interval lange der Pause
//Variablem deklaration
static unsigned long previousMillisLB = 0; // speichert wie viele Sekunden seit derletzten Änderung vergangen sind
static byte valueLB = HIGH; // schalter für an aus.
pinMode(LedPin, OUTPUT); // LED Pin zum Ausgang machen
//Strat code
for (int i=0; i <= ((anzahl*2)+1);){ //die led muss immer an und aus deswegen *2 und +1 damit immer auf low steht (start ist HIGH)
if (millis() - previousMillisLB > intervalLB) { //wenn millis() Minus das Letztemalmillies größer als das Interval ist schleife durchlaufen
previousMillisLB = millis(); // aktuelle Zeit abspeichern für die nächste abfrage
digitalWrite(LedPin, valueLB); // pin mit LOW/HIGH belegen
valueLB = !valueLB; // wechsel von valueLB für die nächste runde
i++; // schleife eines höher zählen
}
}
}
//### Starte function ###
void BuzzAlert(byte BuzzPin,unsigned long interval) // function #BuzzPin = Ausgabe ping für lautsprecher #Interval Zeit zwischen den wecheln
{
// Variablen statisch nur in der func
static boolean value = LOW; // Buzzer an aus schalter
static boolean value2 = HIGH; // buzzer hoch tief schalter
static unsigned long previousMillis = 0; // speichert wie viele Sekunden seit derletzten Änderung vergangen sind
static long frq = 500; // frequenz des buzze Start 500
if (millis() - previousMillis > interval) { //wenn millis() Minus das Letztemalmillies größer als das Interval ist schleife durchlaufen
previousMillis = millis(); // aktuelle Zeit abspeichern für die nächste abfrage
value = !value; //der Wert wird gedreht damit bei jeder Loop anders ist
Serial.println(value);
if (LOW == value){ // wenn value Low dann ton ein
if (LOW == value2){ // Abfrage für den frequenz wechsel 500/700
frq = 500;
}else{
frq = 700;
}
value2 = !value2; // dreht den schalter für frequenz wechsel
tone(BuzzPin,frq); // buzz on
}else{
noTone(BuzzPin); // buzz of
}
}
}
danke euch