Nota

Ciao, benvenuto nella community SunFounder Raspberry Pi, Arduino & ESP32 Enthusiasts su Facebook! Approfondisci l’uso di Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirsi?

  • Supporto Esperto: Risolvi i problemi post-vendita e affronta le sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci di nuovi prodotti e anteprime esclusive.

  • Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!

4.2 Tastiera 4x4

La tastiera 4x4, nota anche come tastiera a matrice, è una matrice di 16 tasti disposti in un singolo pannello.

La tastiera si trova su dispositivi che richiedono principalmente input digitali, come calcolatrici, telecomandi, telefoni a pulsante, distributori automatici, bancomat, serrature a combinazione e serrature digitali.

In questo progetto, impareremo come determinare quale tasto viene premuto e ottenere il valore del tasto corrispondente.

Componenti Necessari

In questo progetto, ci servono i seguenti componenti.

È sicuramente conveniente acquistare un intero kit, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK PER L’ACQUISTO

Kepler Kit

450+

Kepler Ultimate Kit

Puoi anche acquistarli separatamente dai link qui sotto.

SN

INTRODUZIONE COMPONENTE

QUANTITÀ

LINK PER L’ACQUISTO

1

Introduzione al Pico W

1

ACQUISTA

2

Cavo Micro USB

1

3

Breadboard

1

ACQUISTA

4

Cavi Jumper

Diversi

ACQUISTA

5

Resistenza

4 (10KΩ)

ACQUISTA

6

Tastierino 4x4

1

ACQUISTA

Schema Elettrico

sch_keypad_ar

4 resistori pull-down sono collegati a ciascuna delle colonne della tastiera a matrice, in modo che G6 ~ G9 ottengano un livello basso stabile quando i tasti non sono premuti.

Le righe della tastiera (G2 ~ G5) sono programmate per andare ad un livello alto; se una delle G6 ~ G9 viene letta ad un livello alto, sappiamo quale tasto è stato premuto.

Ad esempio, se G6 viene letta ad un livello alto, significa che è stato premuto il tasto numerico 1; questo perché i pin di controllo del tasto numerico 1 sono G2 e G6, e quando il tasto 1 viene premuto, G2 e G6 verranno collegati insieme e G6 sarà anche alta.

Cablaggio

wiring_keypad_ar

Per semplificare il cablaggio, nello schema sopra, le colonne della tastiera a matrice e i resistori da 10K sono inseriti nei fori dove si trovano G6 ~ G9.

Codice

Nota

  • Puoi aprire il file 4.2_4x4_keypad.ino nel percorso kepler-kit-main/arduino/4.2_4x4_keypad.

  • Oppure copia questo codice nell”Arduino IDE.

  • Non dimenticare di selezionare la scheda (Raspberry Pi Pico) e la porta corretta prima di cliccare sul pulsante Upload.

  • La libreria Adafruit Keypad è utilizzata qui, puoi installarla dal Library Manager.

    ../_images/lib_ad_keypad.png

Dopo l’esecuzione del programma, la Shell stamperà i tasti che hai premuto sulla tastiera.

Come Funziona

  1. Inclusione della Libreria

    Iniziamo includendo la libreria Adafruit_Keypad, che ci consente di interfacciarci facilmente con il tastierino.

    #include "Adafruit_Keypad.h"
    
  2. Configurazione del Tastierino

    const byte ROWS = 4;
    const byte COLS = 4;
    char keys[ROWS][COLS] = {
      { '1', '2', '3', 'A' },
      { '4', '5', '6', 'B' },
      { '7', '8', '9', 'C' },
      { '*', '0', '#', 'D' }
    };
    byte rowPins[ROWS] = { 2, 3, 4, 5 };
    byte colPins[COLS] = { 8, 9, 10, 11 };
    
    • Le costanti ROWS e COLS definiscono le dimensioni del tastierino.

    • keys è un array 2D che memorizza l’etichetta per ogni pulsante del tastierino.

    • rowPins e colPins sono array che memorizzano i pin dell’Arduino collegati alle righe e alle colonne del tastierino.


  3. Inizializzazione del Tastierino

    Creiamo un’istanza di Adafruit_Keypad chiamata myKeypad e la inizializziamo.

    Adafruit_Keypad myKeypad = Adafruit_Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
    
  4. Funzione setup()

    Inizializziamo la comunicazione Serial e il tastierino personalizzato.

    void setup() {
      Serial.begin(9600);
      myKeypad.begin();
    }
    
  5. Ciclo Principale

    Verifichiamo gli eventi di pressione dei tasti e li visualizziamo sul Monitor Seriale.

    void loop() {
      myKeypad.tick();
      while (myKeypad.available()) {
        keypadEvent e = myKeypad.read();
        Serial.print((char)e.bit.KEY);
        if (e.bit.EVENT == KEY_JUST_PRESSED) Serial.println(" pressed");
        else if (e.bit.EVENT == KEY_JUST_RELEASED) Serial.println(" released");
      }
      delay(10);
    }