Arduino Spielplatz - Keypad-Bibliothek

Arduino Spielplatz - Keypad-Bibliothek

Tastatur ist eine Bibliothek für die Verwendung von Matrix-Stil Tastaturen mit dem Arduino. Ab der Version 3.0 unterstützt jetzt mulitple Drücken von Tasten.







Diese Bibliothek basiert auf der Tastatur Tutorial.

Es wurde geschaffen, Hardware Abstraction zu fördern. Es verbessert die Lesbarkeit des Codes durch die pinMode und digitalRead Anrufe für den Benutzer versteckt.

Sie werden keine externen Widerstände oder Dioden müssen, weil die Bibliothek die internen Pull-up-Widerstände verwendet und dazu gibts stellt sicher, dass alle nicht verwendeten Spaltenpins hochohmige sind.

Diese Bibliothek ist jetzt über die Arduino IDE Library Manager zur Verfügung. Wenn Sie eine moderne IDE (1.6.2 oder höher) verwenden, können Sie einfach über das Menü:

Einmal gefunden, klicken Sie auf den Eintrag und die Schaltfläche installieren angezeigt. Die Zip-Datei unten ist für die Retro-IDE (nicht empfohlen, ein Upgrade!).

Legen Sie die Tastatur-Ordner in „Arduino \ Bibliotheken“.
In der Arduino IDE, erstellen Sie eine neue Skizze (oder öffnen Sie ein), und wählen Sie in der Menüleiste „Sketch -> Import-Bibliothek -> Tastatur“.
Sobald die Bibliothek importiert wird, ein „# include "Linie wird an der Spitze Ihrer Skizze erscheinen.

  1. Tastatur (makeKeymap (userKeymap), Zeile [] col [], Zeilen cols)

Instanziert ein Objekt, das Keypad Stift 5, 4, 3, 2, wie Zeilenpins und 8, 7, 6 als Spaltenpins verwendet.
Das Tastenfeld besteht aus 4 Reihen und 3 Spalten, in 12 Tasten resultieren.

Leere beginnen (makeKeymap (userKeymap))

Initialisiert die interne keymap, um gleich userKeymap
[Siehe Datei -> Beispiele -> Tastatur -> Beispiele -> CustomKeypad]

char WAITFORKEY ()

Diese Funktion wird immer warten, bis jemand eine Taste drückt. Achtung: Es blockiert alle anderen Code, bis eine Taste gedrückt wird. Das heißt, keine blinkende LEDs, keine LCD-Bildschirm-Updates, kein nichts, mit Ausnahme von Interrupt-Routinen.







char getKey ()

Gibt den Schlüssel, der gedrückt wird, wenn überhaupt. Diese Funktion ist nicht blockierend.

KeyState getState ()

Gibt den aktuellen Status jeder der Tasten.
Die vier Zustände sind IDLE, Press-, FREIGEGEBEN und HOLD.

boolean keyStateChanged ()

Neu in Version 2.0: Lassen Sie uns wissen Sie, wenn der Schlüssel von einem Zustand in einen anderen geändert hat. Zum Beispiel, anstatt die Prüfung nur für einen gültigen Schlüssel Sie, wenn eine Taste testen gedrückt wurde.

setHoldTime (unsigned int time)

Stellen Sie den Betrag von Millisekunden wird der Benutzer eine Taste gedrückt halten, bis die HOLD-Zustand ausgelöst wird.

setDebounceTime (unsigned int time)

Stellen Sie die Anzahl von Millisekunden, die Tastatur wartet, bis er eine neue keypress / keyEvent akzeptiert. Dies ist die „Zeitverzögerung“ debounce Methode.

addEventListener (keypadEvent)

Ein Ereignis auslösen, wenn die Tastatur verwendet wird. Sie können ein Beispiel in der Arduino IDE laden.
[Siehe Datei -> Beispiele -> Tastatur -> Beispiele -> EventSerialKeypad] oder KeypadEvent Beispiel-Code sehen.

Hier ist die Liste von Multi-keypress Funktionen und Schlüsselliste Definition. Ich werde ihre Beschreibungen an diesem Wochenende abzuschließen.

  • Key-Taste [LIST_MAX]
  • bool getKeys ()
  • bool IsPressed (char keyChar)
  • int findInList (char keyChar)

const Byte rows = 4; // vier Reihen
const Byte cols = 3; // drei Spalten
char Tasten # 91; REIHEN # 93; # 91; COLS # 93; = # 123;
# 123; '1'. '2'. '3' # 125 ;.
# 123; '4'. '5'. '6' # 125 ;.
# 123; '7'. '8'. '9' # 125 ;.
# 123; '#'. '0'. '*' # 125;
# 125; ;
Byte rowPins # 91; REIHEN # 93; = # 123; 5. 4. 3. 2 # 125; ; // an die Zeilen pinouts der Tastatur anschließen
Byte colPins # 91; COLS # 93; = # 123; 8. 7. 6 # 125; ; // auf die Spalte pinouts der Tastatur verbinden

Tastatur Tastatur = Keypad # 40; makeKeymap # 40; Schlüssel # 41 ;. rowPins. colPins. REIHEN. COLS # 41; ;

Leere Setup # 40; # 41; # 123;
Serien. Start # 40; 9600 # 41; ;
# 125;

Leere Schleife # 40; # 41; # 123;
char key = Tastatur. getKey # 40; # 41; ;

ob # 40; Schlüssel! = NO_KEY # 41; # 123;
Serien. println # 40; Schlüssel # 41; ;
# 125;
# 125;

Tastatur ist eine Klasse. Daher mehrere Tastatur zu verwenden, müssen Sie eine Instanz für jeden von ihnen erstellen. In dem obigen Beispiel wurde die Keypad Beispiel Tastatur), gebunden an den digitalen Pins 2, 3, 4, 5, 6, 7 und 8.

Um ein Tastenfeld hinzuzufügen gebunden digitale Stifte 9, 10, 11, 12, 13, 14, 15 und 16, könnte man das folgende Beispiel KeyPad2 erstellen.

Und jetzt ist es nur eine Frage der Verwendung von was auch immer Funktion auf jeder Tastatur gesucht:

In Arduino folgen dem Hauptmenü von File-> Examples-> Keypad-> Examples-> DynamicKeypad. Sobald die Skizze geöffnet Fund Setup ist (), und es werden Sie sehen:

Dies zeigt, dass die Entprellzeit einem Tastendruck alle 250 Millisekunden ermöglicht. Wenn mehrere Tastendrücke innerhalb dieses Zeitrahmens auftreten (wie würde passieren, wenn eine Taste Prellen) dann diese zusätzlichen Pressen werden einfach ignoriert.

Ein Teil der Alpha Bibliotheken.







In Verbindung stehende Artikel