Arduino - Ereignis mit mehreren Tasten und LCD-Schild

Ich möchte erkennen, dass zwei Tasten zusammen mit dem Arduino LCD-Schild gedrückt werden. Hat jemand Beispielcode für die Behandlung mehrerer Schaltflächenereignisse? Ich brauche ein Ereignis, wenn die Auf- und Ab-Tasten gleichzeitig 2 Sekunden lang gedrückt werden.

Das LCD-Schild ist das 16 * 2 HD44780-kompatible LCD mit WEISSEN Zeichen und BLAUER Hintergrundbeleuchtung, das über 6 Tasten verfügt. Ich habe es von www.hotsolder.co.uk .

Antworten (2)

Es sieht so aus, als hätte diese Abschirmung 5 Tasten, die an Widerständen mit unterschiedlichen Werten an einem einzigen analogen Pin angeschlossen sind. Die sechste Taste ist zum Zurücksetzen fest verdrahtet. Hier ist der Schaltplan .

Alternativtext http://www.nuelectronics.com/estore/images/nustore/projects/lcd_schematics.jpg

Der Beispielcode hat eine Nachschlagetabelle, um die ADC-Werte in Schlüssel umzuwandeln:

int  adc_key_val[5] ={30, 150, 360, 535, 760 };

Wenn Sie Glück haben, können Sie möglicherweise zwei gleichzeitig gedrückte Tasten als eindeutigen ADC-Messwert erkennen.

Versuchen Sie, eine kurze Skizze zu schreiben, um den ADC-Wert an die serielle Schnittstelle zu drucken, und experimentieren Sie dann. Sehen Sie, ob Sie eindeutige Bereiche von ADC-Werten finden können, die die Tastenkombinationen darstellen, an denen Sie interessiert sind.

Um ein langes Drücken zu erkennen, verwenden Sie die Arduino-Funktion millis(), um die Zeit aufzuzeichnen und dann zu vergleichen. Dies ist dem Entprellen einer Taste sehr ähnlich .

Hängt davon ab, wie die Tasten verdrahtet sind, ist es in einer Matrix oder ist jede Taste einzeln lesbar? Wenn es individuell ist, sehe ich nicht, was das Problem ist, lesen Sie einfach beide Tasten, warten Sie, bis sie beide gedrückt werden, und warten Sie dann zwei Sekunden, um sicherzustellen, dass sie während dieser Zeit nicht gedrückt werden.

Wenn sie in einer Matrix verdrahtet sind, kann sie möglicherweise nicht beide gleichzeitig lesen.