Comment utiliser un clavier matriciel souple 4x4 avec Arduino

Comment utiliser un clavier matriciel souple 4x4 avec Arduino

Dans ce tutoriel, nous allons explorer comment connecter et utiliser un clavier souple 4x4 avec un Arduino. Ce clavier comporte seize touches mais ne nécessite que huit broches pour la connexion, ce qui en fait un dispositif d'entrée compact et efficace pour divers projets. À la fin de ce guide, vous pourrez lire les entrées du clavier et déclencher des actions en fonction de ces entrées.

4x4 soft keypdad

Nous utiliserons leKeypadBibliothèque pour interfacer le clavier matriciel, nous permettant de détecter facilement quelle touche est appuyée. Le programme que nous allons implémenter affichera la touche appuyée sur le moniteur série et exécutera une action lorsqu'une touche spécifique est appuyée, comme la touche '4'. Pour un accompagnement plus visuel, n'oubliez pas de consulter la vidéo (dans la vidéo à 00:00).

Matériel expliqué

Le composant principal de ce projet est le clavier 4x4 souple, qui se compose de 16 boutons disposés en grille. Chaque bouton est connecté à une broche spécifique de l'Arduino, ce qui permet à l'Arduino de détecter quand un bouton est pressé. Le clavier fonctionne selon une méthode de balayage matriciel, où les lignes et les colonnes sont activées successivement pour déterminer quelle touche est enfoncée.

Pour connecter le clavier matriciel, vous devrez utiliser huit broches numériques sur l'Arduino. Les lignes sont généralement connectées aux broches 2 à 5, tandis que les colonnes sont connectées aux broches 6 à 9. Cette disposition permet à l'Arduino de lire efficacement l'état de chaque touche.

Détails de la fiche technique

largeur69 mm
Longueur76 mm
Longueur du câble84 mm
Largeur du connecteur20 mm
Espacement des trous du connecteur2,56 mm

  • Assurez-vous que les broches de lignes et de colonnes sont correctement câblées pour éviter des lectures erronées.
  • Utilisez des résistances pull-up si nécessaire pour stabiliser les mesures d'entrée.
  • Gérer le rebond des touches dans le logiciel afin d'éviter des lectures multiples pour une seule pression.
  • Testez chaque touche individuellement pour vérifier son bon fonctionnement.
  • Gardez le clavier sec et propre pour maintenir les performances.

Instructions de câblage

Arduino wiring for 4x4 soft keypad
Arduino wiring for 4x4 soft keypad

Pour câbler le clavier 4x4 à l'Arduino, connectez les broches de ligne du clavier aux broches numériques de l'Arduino comme suit : connectez la première ligne à la broche2, la deuxième rangée à épingler3, la troisième rangée à épingler4, et la quatrième rangée à épingler5. Pour les broches des colonnes, connectez la première colonne à la broche6, la deuxième colonne à épingler7, la troisième colonne à épingler8, et la quatrième colonne à épingler9.

Ce montage permet à l'Arduino de parcourir les lignes et les colonnes de manière efficace. Assurez-vous de vérifier les connexions afin que chaque broche corresponde bien à la ligne ou à la colonne qui lui est attribuée. Dans la vidéo, d'autres configurations de câblage sont brièvement abordées (à 01:15). Si vous optez pour un câblage différent, mettez simplement à jour les numéros des broches dans le code en conséquence.

Exemples de code et guide pas à pas

Dans le code, nous commençons par inclure leKeypadbibliothèque et en définissant la disposition du clavier. Les lignes et les colonnes sont configurées à l'aide de tableaux, oùrowPinscorrespond aux broches numériques connectées aux lignes etcolPinscorrespond aux colonnes.

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

Dans cet extrait, nous définissons le nombre de rangées et de colonnes, ainsi que la disposition des caractères des touches. Cette configuration est cruciale pour identifier quelle touche est enfoncée en fonction de la rangée et de la colonne activées.

void setup(){
  Serial.begin(9600);
}

LesetupLa fonction initialise la communication série à 9600 bauds. Cela est important pour envoyer les données d'appui sur les touches au moniteur série pour le débogage et la vérification.

void loop(){
  char key = keypad.getKey();
  if (key){
    Serial.println(key);
  } 
  if (key =='4'){
    Serial.println("Key 4 is pressed");
  }
}

Dans leloopDans la fonction, nous vérifions en continu si une touche est enfoncée en utilisantkeypad.getKey(). Si une touche est pressée, il affiche la valeur de la touche sur le moniteur série. De plus, si la touche '4' est pressée, il affiche un message spécifique indiquant que la touche '4' a été activée. Cette section du code permet une interaction en temps réel basée sur l'entrée de l'utilisateur.

Démonstration / À quoi s'attendre

Une fois que tout est configuré et que le code est téléversé sur votre Arduino, vous devriez voir les touches appuyées s'afficher dans le Moniteur série. Si vous appuyez sur la touche '4', le message "La touche 4 est enfoncée" apparaîtra, confirmant que l'entrée a été détectée avec succès. Faites attention aux pièges courants, comme les entrées flottantes ou un câblage incorrect, qui peuvent entraîner des lectures erronées (dans la vidéo à 02:30).

Horodatages vidéo

  • 00:00- Introduction au pavé numérique
  • 01:15- Instructions de câblage
  • 02:30- Explication et démonstration du code

Images

4x4 soft keypdad back view
4x4 soft keypdad back view
4x4 soft keypdad
4x4 soft keypdad
4x4 soft keypdad connector
4x4 soft keypdad connector
4x4 soft keypdad
4x4 soft keypdad
Arduino wiring for 4x4 soft keypad
Arduino wiring for 4x4 soft keypad
41-Resources for this code
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Bibliothèques Arduino (zip)