Configurazione keypad con la mia libreria.

Ciao a tutti.

Volevo presentarvi la mia libreria che ho creato per configurare un qualsiasi keypad che abbia massimo 3 colonne e massimo 3 righe.
In fondo alla pagina è situato il link per il download il cui contiene la libreria in formato zip, delle istruzioni, un progetto di prova e delle foto in cui indico il numero dei pin delle righe e delle colonne di 2 keypad per Arduino.

E’ molto semplice da utilizzare, dopo averla aggiunta come libreria su Arduino per usarla è necessario scrivere:

#include <maKeypad.h>

Per configurare un nuovo keypad invece dobbiamo scrivere:

maKeypad NOME(C1, C2, C3, \
              R1, R2, R3, R4, \
              uscitaBeep, durataBeep, clockInterno, \
              "1", "2", "3", \
              "4", "5", "6", \
              "7", "8", "9", \
              "*", "0", "#");

NOME = Sarà il nome del nostro keypad.
C1, C2 e C3 = Colonne del keypad (dalla prima alla terza).
R1, R2, R3 ed R4 = Righe del keypad (dalla prima alla quarta).
uscitaBeep = PIN al quale è collegato il buzzer che emetterà il suono ogni volta che verrà premuto un tasto.
durataBeep = Indica la durata del beep.
clockInterno = E’ solo un delay che ho inserito nel codice per evitare alcuni errori (consiglio 5).
Mentre i caratteri sotto corrispondono ai tasti del keypad (che è possibile modificare).

Esempio.
Se ho collegato un keypad al mio Arduino e:
Voglio chiamarlo prova.
La prima colonna è collegata al pin numero 2.
La seconda colonna è collegata al pin numero 3.
La terza colonna è collegata al pin numero 4.

La prima riga è collegata al pin numero 5.
La seconda riga è collegata al pin numero 6.
La terza riga è collegata al pin numero 7.
La quarta riga è collegata al pin numero 8.

Il buzzer è collegato al pin 9.
Voglio che la durata del beep sia di 50 millisecondi.
Voglio che il delay interno sia di 5 millisecondi.

La configurazione sarà:

maKeypad prova(2, 3, 4, \
               5, 6, 7, 8, \
               9, 50, 5, \
               "1", "2", "3", \
               "4", "5", "6", \
               "7", "8", "9", \
               "*", "0", "#");

Aggiungiamo una variabile di tipo String, ad esempio:

String tasto = "";

Come utilizzarlo nel progetto? [d’ora in poi utilizzerò il keypad ‘prova’].

Nella funzione void setup() del nostro progetto dobbiamo scrivere:

void setup(){

Serial.begin(9600);
prova.enable(true); 

}

Ciò vuol dire che il nostro keypad è abilitato e funzionerà.

Nella funzione void loop() del nostro progetto dobbiamo scrivere:

void loop(){

delay(50);

tasto = prova.recKey();
while (tasto != "") {
Serial.print("Hai premuto il tasto " + tasto);
tasto = "";
}

}

Il tasto premuto verrà memorizzato nella variabile ‘tasto’ e dopo di ché, se abbiamo premuto un qualsiasi tasto, verranno eseguite le istruzioni inserite nel while.

Nel download troverete, come già detto, un esempio molto più completo di questo (il cui sarà spiegato molto meglio).

LINK: maKeypad

Ma c'è già una libreria Keypad. Quello che non ho notato la possibilità di associare delle callback ad ogni tasto.
Poi se uno intende pubblicare una libreria, come minimo scrive in inglese.

Frekaut:
Ciao a tutti.

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Grazie per la condivisione.