Note

Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l’univers du Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez les problèmes après-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.

  • Apprendre et partager : Échangez des astuces et des tutoriels pour perfectionner vos compétences.

  • Avant-premières exclusives : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus exclusifs.

  • Réductions spéciales : Profitez de remises exclusives sur nos derniers produits.

  • Promotions festives et cadeaux : Participez à des tirages au sort et des promotions spéciales.

👉 Prêt à explorer et créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !

4.2 - Clavier 4x4

Le clavier 4x4, également connu sous le nom de clavier matriciel, est une matrice de 16 touches disposées sur un seul panneau.

Le clavier peut être trouvé sur des appareils nécessitant principalement une saisie numérique, tels que les calculatrices, télécommandes de télévision, téléphones à boutons-poussoirs, distributeurs automatiques, guichets automatiques (DAB), serrures à combinaison et serrures de porte numériques.

Dans ce projet, nous allons apprendre à déterminer quelle touche est pressée et obtenir la valeur de la touche correspondante.

Composants requis

Dans ce projet, nous avons besoin des composants suivants.

Il est plus pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN D’ACHAT

Kit Kepler

450+

Kepler Ultimate Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

QUANTITÉ

LIEN D’ACHAT

1

Découvrir le Pico W

1

ACHETER

2

Câble Micro USB

1

3

Plaque d’essai (Breadboard)

1

ACHETER

4

Fils de connexion (Jumper Wires)

Plusieurs

ACHETER

5

Résistance

4 (10KΩ)

ACHETER

6

Clavier 4x4

1

ACHETER

Schéma

sch_keypad_ar

Les rangées du clavier (G2 ~ G5) sont programmées pour être en état haut ; si l’une des broches G6 ~ G9 est lue comme étant en état haut, cela indique quelle touche est pressée.

Par exemple, si G6 est en état haut, alors la touche numérique 1 est pressée ; c’est parce que les broches de commande de la touche numérique 1 sont G2 et G6, et quand cette touche est pressée, G2 et G6 seront connectées ensemble, donc G6 sera également en état haut.

Câblage

wiring_keypad_ar

Code

Note

  • Vous pouvez ouvrir le fichier 4.2_4x4_keypad.ino sous le chemin kepler-kit-main/arduino/4.2_4x4_keypad.

  • Ou copiez ce code dans l”Arduino IDE.

  • N’oubliez pas de sélectionner la carte Raspberry Pi Pico et le port correct avant de cliquer sur le bouton Upload.

  • La bibliothèque Adafruit Keypad est utilisée ici, vous pouvez l’installer depuis le Library Manager.

    ../_images/lib_ad_keypad.png

Après l’exécution du programme, la console affichera les touches que vous avez pressées sur le clavier.

Comment ça fonctionne

  1. Inclusion de la bibliothèque

    Nous commençons par inclure la bibliothèque Adafruit_Keypad, qui nous permet de facilement interagir avec le clavier.

    #include "Adafruit_Keypad.h"
    
  2. Configuration du clavier

    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 };
    
    • Les constantes ROWS et COLS définissent les dimensions du clavier.

    • keys est un tableau 2D qui stocke l’étiquette de chaque touche sur le clavier.

    • rowPins et colPins sont des tableaux qui stockent les broches de l’Arduino connectées aux lignes et colonnes du clavier.


  3. Initialisation du clavier

    Créez une instance de Adafruit_Keypad appelée myKeypad et initialisez-la.

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

    Initialisez la communication série et le clavier personnalisé.

    void setup() {
      Serial.begin(9600);
      myKeypad.begin();
    }
    
  5. Boucle principale

    Vérifiez les événements de touche et affichez-les dans le moniteur série.

    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);
    }