Hi Leute,
bin neu hier und leider war bei den Suchergebnissen nicht die passende Antwort dabei.
Ich hab ein Arduino Uno SMD Edition.Dort habe ich jetzt einen Button auf DigiPin 2 angeschlossen.
Ich habe eine Variable i diese wird immer inkrementiert sobald man einmal auf den Button drückt.
Jetzt will ich, wenn man 3 Sekunden lang den Button drückt das er dekrementiert.
Frage 1: Wie kann ich messen ob der Button 3 Sekunden lang gedrückt wurde?
mit der Funktion millis?
ein kleiner Codeausschnitt wie es jetzt daweil aussieht:
if(Btn == 1)
{
digitalWrite(ledPin, HIGH);
i++;
delay(500);
Serial.println(i,DEC);
}
else
{
digitalWrite(ledPin, LOW);
}
Meine theoretische Lösung :
Man startet einen Timer wenn Btn == 1 und wenn Btn == 0 wieviel Zeit ist zwischen Button gedrückt und nicht gedrückt vergangen
wenn die Zeit höher oder gleich 3 ist dann Variable i dekrementieren. Soweit die Theorie wie setze ich das programmiertechnisch um?
Frage 2: Ich habe noch eine Abfrage z.B Variable a und Variable b. Nun möchte ich wenn Variable a größer b und 2 unterschied hat das er eine Anweisung ausführt. Ich weiß wie die IF-Abfrage lautet wenn a größer b ist , aber leider nicht wie die Abfrage funktioniert wenn noch 2 unterschied sein muss.
BeispielCode für a größer b:
if (a < b)
{
Anweisung;
}
aber wie muss der Code aussehen wenn es auch noch 2 Unterschied haben soll?
Eigentlich was einfaches aber hab gerade eine Hirnblockade.
MFG prophet