Automazione: Gestione e connessione della Tastiera

logo

A cura di Davide Munaretto

Con questo semplice codice di base è possibile attivare una tastiera in modo che i comandi inseriti vengano direttamente visualizzati sul monitor LCD.

Questo ci servirà per implementare il codice del Divisore che abbiamo in corso di realizzazione in modo che i dati necessari, come ad esempio il numero di divisioni da eseguire, possano essere inseriti direttamente senza dover accedere alla programmazione e ricaricare il codice ogni volta.

/* Codice che permette di controllare una tastiera grazie alla libreria “Keypad.h
* con visualizzazione dei parametri su schermo LCD I2C */

// Include le librerie:
// Keypad.h
// LiquidCrystal_I2C.h

#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
// Connessione del modulo I2C: pin SDA connesso ad A4 e pin SCL ad A5.
// Monitor LCD 20×4 I2C
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 20, 4); // per monitor LCD 16×2 cambiare con (0x27,16,2).
// Connessione tastiera 4×4
const byte ROWS = 4;   //quattro righe
const byte COLS = 4;    //quattro colonne
char keys[ROWS][COLS] = {
{‘1′,’2′,’3′,’A’},
{‘4′,’5′,’6′,’B’},
{‘7′,’8′,’9′,’C’},
{‘*’,’0′,’#’,’D’}
};

byte rowPins[ROWS] = {11,10,9,8};      //Pin di connessione fra tastiera e Arduino (Righe)
byte colPins[COLS] = {7,6,5,4};             //Pin di connessione fra tastiera e Arduino (Colonne)

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){

// Inizializza LCD:
lcd.init();
lcd.backlight();

}

void loop(){

char key = keypad.getKey(); // Inizializza tastiera
lcd.setCursor(0, 0); // posiziona il cursore nella prima colonna della prima riga.
lcd.print(“Premi un tasto! “); // Stampa la scritta “Premiun tasto”

if (key){
lcd.setCursor(0, 2); lcd.print(” “);// posiziona il cursore nella prima colonna della seconda riga.
lcd.print(“Tasto: “); lcd.print(key);// Stampa la scritta “Tasto: ” e il tasto premuto
}

// Questa funzione verifica i tasti premuti e se si sceglie il 4 edita la scritta “avvio ciclo”,
// in pratica può servire per accedere a qualche funzione o per eseguire un comando.
if (key ==’4′){

lcd.setCursor(0, 2); // posiziona il cursore nella prima colonna della seconda riga.
lcd.print(“Avvio ciclo”); //Stampa la scritta “Avvio ciclo”
}
}