ich möchte ein Keypad dauerhaft nutzbar machen, die Delays können nicht entfernt oder geändert werden weil sonst nur noch der Zahlenwert auf dem Display flackert bzw. sich laufend ändert. Also der Arduino soll jeder Zeit auf die Eingabe vom Keypad reagieren.
Sagst du, ich sehe das ganz anders als du und würde genau da ansetzen. Suche nach einer Möglichkeit ohne delays zu programmieren. Als einstieg in die Sache, lege ich dir das "blink without delay" Beispiel aus der Arduino IDE ans Herz.
Das ist richtig.
Der analogRead gibt Dir einen pendelnden Wert zurück. Steht im Datenblatt.
Also musst Du versuchen, dieses Pendeln mit in Deinen Code einzubinden.
Dazu gibt es mehrere Methoden.
Ich schlage mal einige vor:
a) Das Display nur alle xxx ms aktuallisieren
b) einen Mittelwert bilden und diesen ausgeben
c) die Wertänderung nur anzeigen, wenn die Abweichung über die Hysterese des analogwertes hinaus geht
d) Eine Mischung aus allen ist in unterschiedlichen Konstellationen möglich.
Warum willst du alle 2 Sekunden den Wert auf das Display schreiben? Der richtige Ansatz wäre es, nur dann auf das Display zu schreiben, wenn der Wert sich ändert. Dann braucht es auch das Delay nicht.
Am Besten, du vergisst einfach, daß es "Delay()" überhaupt gibt. Es gibt (fast) immer einen besseren Weg als Delay.
Wie das geht, steht in den Beispielen (blinkWithoutDelay)