für mein Projekt benutzer ich einen Taster. Dieser Taster incrementiert eine Integer-Variable. Derzeit ist es so, dass wenn mam einmal drückt, dann wird diese Zahl um +1 erhöht. Damit beim Drücken der Taste nicht gleich +24 (usw.) addiert wird, habe ich ein delay(200) eingesetzt. Auch beim längerem Drücken der Taste wird in der gleichen Geschwindigkeit addiert. Wie könnte ich, beim langem Drücken der Taste, die Delay-Zeit verkürzen damit man auch mal auf 30.000 und mehr kommen kann, ohne dass der Finger abstirbt. Ich denke, Eine Erkennung, wie lange man die Taste Drückt sollte sein.
void loop()
{
buttonGedrueckt1 = digitalRead(buttonPin1); //Status des Buttons 1 wird eingelesen
if (buttonGedrueckt1 == HIGH)
{
EndZaehler += 1;
lcd.setCursor(11, 0);
lcd.print(" ");
lcd.setCursor(11, 0);
lcd.print(EndZaehler);
delay(200);
}
Luckner:
Das mit der Variablen habe ich mir auch schon überlegt. Aber wie stelle ich fest, wie lange die Taste gedrückt worden ist?
Du nimmst eine zusätzliche Zählvariable z.B. i. Wenn i z.B. 20 erreicht, wird die Delay Zeit (Variable) drastisch verkürzt. i sollte einen nicht zu kleinen Zahlenbereich haben. Es würde sich vielleicht unsigned long anbieten.
Die Zahlvariable i wird in einer zweiten if-Abfrage auf Null gesetzt, wenn die Taste losgelassen wird.
guntherb:
je nach Größe der zu inkrementierenden Zahl
Und wie willst du da z.B. eine "1987" einstellen ?
Man sollte schon, nach loslassen und neu drücken, wieder langsam und mit +1 anfangen.
(Und mit einem zweiten Taster auch rückwärts korrigieren können, wo wir schonmal dabei sind).
Mit 3 bis 4 Tastern kann man auch einzelne Dezimalziffern auswählen (links rechts) und diese jeweils einzeln hochsetzen (rauf mit 8->9->0 oder rauf/runter mit 2 Tasten) .
michael_x:
Und wie willst du da z.B. eine "1987" einstellen ?
Mit meiner Methode?
Garnicht.
Es kommt, wie so oft, auf die Anforderungen an.
Wenn nur irgendwelche Faktoren einstellen will (z.B. ki-Parameter) die sich über einen größeren Einstellbereich erstrecken, reicht das. Auch bei Zeiten reicht es oft. (Ob das Ei 5 min oder 6 min kocht ist wichtig.
Ob der Braten 120min oder 121min im Ofen ist, ist egal.
Ich habe eine von vielen Möglichkeiten skizziert, die Aufgrund der sehr offenen Aufgabenstellung durchaus hätte die Lösung sein können.