hi, ich hab zwar schon gesucht aber leider nichts passendens gefunden.
Ich habe eine funktion
1 | void dimmenlinks() {
|
2 | if (statTFL_L==100&&statTFL_R==100&&digitalRead(Bl_L)==HIGH) {
|
3 | for (int fadeValue = 255 ; fadeValue >= 50; fadeValue -= 5) {
|
4 | analogWrite(TFL_L, fadeValue);delay(10);
|
5 | statTFL_L = 60;}
|
6 | }}
|
7 | void aufhellenlinks() {
|
8 | if (statTFL_L==60&&statTFL_R==100&&digitalRead(Bl_L)==LOW) {
|
9 | for (int fadeValue = 50 ; fadeValue <= 255; fadeValue += 5) {
|
10 | analogWrite(TFL_L, fadeValue);delay(10);
|
11 | statTFL_L = 100;}
|
12 | }}
|
die funktion startet wenn TFL_R=100&TFL_L=100&&Eingang "BL_L" "HIGH"
ist.
jedoch liefer mein Eingang "BL_L" kein permanentes Signal sondern
"HIGH/LOW/HIGH/LOW" usw. jeweils o,5sec im wechsel
dadurch wird "aufhellenlinks" sofort durchlaufen und dann gleich wieder
"dimmenlinks"
Wie kann ich prüfen ob "digitalRead(Bl_L)==LOW" schon 3sec. lang LOW ist
und das in die Fuktion einbinden?
anders gesagt, bleibe im "statTFL_L = 60;" bis digitalRead(Bl_L)==LOW
(länger als 3sec.)
ich danke euch schon mal