Raspberry Pi - Clavier 1x4

Dans ce tutoriel, nous allons apprendre à utiliser un clavier 1x4 avec un Raspberry Pi. En détail, nous allons apprendre :

Clavier Raspberry Pi 1x4

Préparation du matériel

1×Raspberry Pi 5
1×Clavier 1x4
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Raspberry Pi
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Raspberry Pi
1×Recommandé: Écran tactile HDMI pour Raspberry Pi

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du clavier 1x4

Un pavé numérique 1x4 est composé de quatre boutons à membrane disposés en une seule rangée. Il est couramment utilisé pour l'entrée utilisateur dans des projets tels que la saisie de code, la navigation dans les menus ou les interfaces de contrôle.

Disposition des broches

Le clavier 1x4 a 5 broches, qui ne correspondent pas directement aux étiquettes des touches dans l'ordre. Plus précisément :

  • Broche 1 : connectée à la touche 2
  • Broche 2 : connectée à la touche 1
  • Broche 3 : connectée à la touche 4
  • Broche 4 : connectée à la touche 3
  • Broche 5 : est une broche commune qui se connecte à toutes les touches
Clavier 1x4 Brochage
image source: diyables.io

Diagramme de câblage

Schéma de câblage du clavier 1x4 pour Raspberry Pi

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Pour simplifier et organiser votre montage de câblage, nous recommandons l'utilisation d'un shield à bornier à vis pour Raspberry Pi. Ce shield assure des connexions plus sûres et mieux gérées, comme illustré ci-dessous :

Shield à bornier à vis pour Raspberry Pi

Code Raspberry Pi

Chaque touche du clavier 1x4 fonctionne comme un bouton. Cela signifie que nous pouvons utiliser la fonction digitalRead() pour vérifier l'état de chaque touche. Cependant, en pratique, comme pour tout bouton, nous devons gérer le problème de rebondissement, où une seule pression peut être incorrectement détectée comme plusieurs pressions. Pour éviter cela, nous devons anti-rebondir chaque touche. Cette tâche devient compliquée lorsqu'il s'agit d'anti-rebondir quatre touches sans bloquer d'autres parties du code. Heureusement, la bibliothèque ezButton simplifie ce processus.

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à Internet si vous devez installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi.
  • Connectez l'Arduino Nano au clavier 1x4.
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Voir comment connecter votre PC au Raspberry Pi via SSH.
  • Assurez-vous que vous avez la bibliothèque RPi.GPIO installée. Sinon, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier de script Python keypad_1x4.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi est mis à disposition du public sans aucune restriction. # Pour des instructions complètes et des schémas de câblage, veuillez visiter: # https://newbiely.fr/tutorials/raspberry-pi/raspberry-pi-keypad-1x4 import RPi.GPIO as GPIO import time # Define GPIO pins for the keypad buttons PIN_KEY_1 = 24 # The Raspberry Pi pin GPIO24 connected to the key 1 PIN_KEY_2 = 23 # The Raspberry Pi pin GPIO23 connected to the key 2 PIN_KEY_3 = 8 # The Raspberry Pi pin GPIO8 connected to the key 3 PIN_KEY_4 = 25 # The Raspberry Pi pin GPIO25 connected to the key 4 KEY_PINS = [PIN_KEY_1, PIN_KEY_2, PIN_KEY_3, PIN_KEY_4] DEBOUNCE_TIME = 0.1 # 100 milliseconds # Setup GPIO mode GPIO.setmode(GPIO.BCM) # Setup GPIO pins as inputs with pull-up resistors for pin in KEY_PINS: GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize previous states for each button previous_states = [GPIO.input(pin) for pin in KEY_PINS] # Function to read the state of the keypad buttons with debouncing def get_key_pressed(): pressed_key = 0 for i, pin in enumerate(KEY_PINS): current_state = GPIO.input(pin) if previous_states[i] == GPIO.HIGH and current_state == GPIO.LOW: # Detect state change from HIGH to LOW time.sleep(DEBOUNCE_TIME) # Wait for debounce time if GPIO.input(pin) == GPIO.LOW: # Ensure button is still pressed pressed_key = i + 1 break return pressed_key try: while True: key = get_key_pressed() if key: print(f"The key {key} is pressed") # Update the previous states previous_states = [GPIO.input(pin) for pin in KEY_PINS] time.sleep(0.1) # Delay for a short period to avoid excessive CPU usage except KeyboardInterrupt: # Cleanup GPIO settings before exiting GPIO.cleanup() print("Program terminated")
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 keypad_1x4.py
  • Appuyez sur chaque touche du clavier 1x4 une par une
  • Vérifiez le résultat sur le terminal.
PuTTY - Raspberry Pi
The key 1 is pressed The key 2 is pressed The key 3 is pressed The key 4 is pressed

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !