Arduino UNO Q - Shield LCD Clavier
Obtenir des entrées utilisateur et afficher des retours est une compétence fondamentale dans tout projet Arduino, et le shield LCD Clavier la rend simple sur Arduino UNO Q. Ce shield tout-en-un s'empile directement sur votre Arduino UNO Q, vous offrant un écran LCD 16×2 et cinq boutons d'entrée sur une seule carte compacte — aucun câblage supplémentaire requis !
Dans ce tutoriel, vous apprendrez :
- Ce qu'est le shield LCD Clavier et comment il fonctionne
- Comment câbler (empiler) le shield LCD Clavier sur Arduino UNO Q
- Comment programmer le MCU (code Arduino C/C++) sur Arduino UNO Q pour lire directement les boutons et contrôler le LCD
- Comment programmer le côté Linux (Python) et le côté MCU (code Arduino C/C++) pour que le côté Linux interagisse avec le côté MCU pour contrôler le shield LCD Clavier
- Comment utiliser Telegram pour envoyer des messages à Arduino UNO Q afin d'afficher des messages sur le LCD ou lire les états des boutons
- Comment utiliser OpenClaw sur Arduino UNO Q pour contrôler le shield LCD Clavier
- Comment lire quel bouton est pressé et afficher le résultat sur l'écran LCD

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du Shield LCD Clavier
Le shield LCD Clavier est un shield Arduino plug-and-play qui combine un écran LCD 16×2 avec cinq boutons d'entrée sur une seule carte.
- Affichage : LCD 16×2 — affiche 2 rangées de 16 caractères, piloté par la bibliothèque LiquidCrystal
- Boutons : 5 boutons d'entrée (Droite, Haut, Bas, Gauche, Sélect) — tous connectés à une seule broche analogique (A0) via un diviseur résistif
- Réinitialisation : 1 bouton de réinitialisation dédié pour redémarrer l'Arduino UNO Q
- Contraste : Potentiomètre intégré (bouton) pour ajuster le contraste du LCD
- Format : Shield Arduino standard — s'empile directement sur les broches d'Arduino UNO Q, aucun câblage supplémentaire nécessaire
- Pourquoi c'est idéal pour les débutants : Branchez et utilisez — pas de soudure, pas de fils de connexion, et vous obtenez un retour visuel immédiat
Brochage

Le shield LCD Clavier se connecte à Arduino UNO Q via ses connecteurs de shield. Voici comment chaque broche est mappée :
| Broche du Shield | Fonction | Broche Arduino UNO Q |
|---|---|---|
| DB4 | Données LCD | 4 |
| DB5 | Données LCD | 5 |
| DB6 | Données LCD | 6 |
| DB7 | Données LCD | 7 |
| RS | Sélection de registre | 8 |
| E | Activation | 9 |
| Analogique A0 | Entrée bouton | A0 |
- Bouton de réinitialisation : Redémarre l'Arduino UNO Q lorsqu'il est pressé
- Potentiomètre (bouton) : Ajuste le contraste du LCD — tournez-le si l'écran semble vide ou trop sombre
※ Note:
Note de compatibilité pour Arduino UNO Q :
- Écran LCD : Fonctionne parfaitement — la bibliothèque LiquidCrystal pilote toutes les fonctions d'affichage 16×2 sans problème.
- Boutons — important : Les boutons sont tous câblés sur une seule broche analogique (A0) via un diviseur résistif. Le shield a été conçu pour un ADC 5V, mais le STM32 sur Arduino UNO Q utilise une référence 3,3V avec un ADC 12 bits (0–4095). Différents fabricants de shields utilisent des valeurs de résistances différentes, donc la lecture ADC pour chaque bouton varie entre les shields. Vous devez calibrer les seuils pour votre shield spécifique (voir la section Dépannage) — sinon les boutons peuvent être détectés incorrectement (par exemple, GAUCHE détecté comme BAS).
- Bouton SÉLECT : Dépend de votre variante de shield. Sur certains shields, SÉLECT produit une tension supérieure à 3,3V, ce qui se coupe à 4095 (identique à "aucune touche") — SÉLECT ne peut pas être détecté. Sur d'autres shields, SÉLECT produit une tension inférieure à 3,3V et peut être détecté. Calibrez d'abord pour le découvrir.
Le Shield LCD Clavier de DIYables utilisé dans ce tutoriel fonctionne bien avec Arduino UNO Q pour les cinq boutons, y compris SÉLECT.
Schéma de Câblage
Aucun câblage nécessaire — il suffit d'empiler le shield LCD Clavier directement sur votre Arduino UNO Q et les broches s'alignent automatiquement.

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
- Remarque : Assurez-vous que le shield est bien enfoncé pour que toutes les broches soient en contact solide.
Code MCU (Sketch Arduino Direct)
L'Arduino UNO Q dispose de deux processeurs — comme deux cerveaux dans une seule carte : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Linux). Dans cette section, nous programmons uniquement le MCU STM32 en Arduino C/C++ — le côté Linux reste inactif. Dans une section ultérieure, nous programmerons les deux processeurs et les ferons interagir.
Voici le sketch Arduino qui s'exécute directement sur le MCU STM32 pour détecter les pressions de boutons et afficher les résultats sur le LCD.
- Initialise le LCD 16×2 en utilisant la bibliothèque LiquidCrystal
- Lit la valeur analogique de A0 pour détecter quel bouton est pressé
- Affiche le nom du bouton pressé sur le LCD en temps réel
- Rapporte les événements de bouton à la console App Lab via Monitor.println()
Étapes Rapides
- Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
- Empiler le shield : Appuyez fermement le shield LCD Clavier sur votre Arduino UNO Q — toutes les broches doivent s'aligner et se mettre en place complètement.
- Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
- Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q — cela peut prendre plusieurs minutes au premier lancement.
- Créer une nouvelle application : Cliquez sur le bouton Create New App.

- Donnez un nom à l'application, par exemple : DIYables_LCD_Keypad_Shield
- Cliquez sur Create pour confirmer.
- Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.

- Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for LiquidCrystal created by Arduino, Adafruit and click the Install button.
- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- Téléverser : Cliquez sur le bouton Run dans Arduino App Lab pour compiler et téléverser vers le STM32.

- Tester : Appuyez sur chaque bouton (Droite, Haut, Bas, Gauche, Sélect) un par un et observez le LCD se mettre à jour.
- Écran vide ? Tournez le bouton de contraste sur le shield jusqu'à ce que le texte devienne clairement visible.
- Conseil Pro : Appuyez sur le bouton de réinitialisation du shield pour redémarrer votre sketch sans débrancher le câble USB-C.
Sortie de la Console App Lab
Bonus : Code Plus Propre
Vous voulez que votre code soit plus professionnel ? Voici une version avancée avec des fonctions bien organisées :
Programmation Bridge Linux + MCU
L'Arduino UNO Q possède deux processeurs qui travaillent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC grâce à la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- MPU (côté Linux) : Exécute Python pour interroger l'état des boutons et envoyer du texte au LCD
- MCU (côté STM32) : Gère la lecture des boutons en temps réel et les mises à jour du LCD
- Communication : Bridge.call() du côté Linux invoque les fonctions Bridge.provide() du côté MCU
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par le routeur Arduino — ne les ouvrez jamais directement
Sketch MCU — expose la lecture des boutons et l'écriture LCD au côté Linux :
Script Python (Arduino App Lab) — interroger l'état des boutons et mettre à jour le LCD depuis Linux :
- Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python du côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ou n'utilisez jamais Serial1 (sur le MCU) dans votre code — ceux-ci sont réservés par le routeur Arduino et y accéder cassera le Bridge.
Étapes Rapides
- Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU ci-dessus dans l'onglet Sketch, et cliquez sur Run.
- Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
- Exécuter l'application : Cliquez sur Run — le côté Linux commencera à interroger l'état des boutons toutes les 0,5 secondes.
- Appuyer sur les boutons : Appuyez sur l'un des cinq boutons et observez le LCD et la console App Lab se mettre à jour en temps réel.
- Conseil Pro : Augmentez la valeur de time.sleep() pour réduire la fréquence d'interrogation et diminuer l'utilisation du CPU du côté Linux.
Sortie de la Console App Lab
Intégration Telegram
Vous pouvez contrôler votre shield LCD Clavier Arduino UNO Q à distance via Telegram — afficher n'importe quel message sur l'écran LCD ou vérifier quel bouton est pressé, depuis n'importe où.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Cette section couvre :
- L'exécution d'un script Python du côté Linux de l'Arduino UNO Q pour écouter les messages Telegram
- Le transfert de commandes de Telegram vers le côté MCU pour mettre à jour le LCD ou lire l'état des boutons
- Le renvoi du résultat MCU comme réponse Telegram
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.
Script Python (Arduino App Lab) — bot Telegram pour shield LCD Clavier :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /lcd Bonjour UNO Q ! pour afficher un message sur l'écran LCD.
- Envoyez /button pour vérifier quel bouton est actuellement pressé sur le shield.
Étapes Rapides
- Créer un bot Telegram : Envoyez un message à @BotFather sur Telegram, envoyez /newbot, suivez les instructions et copiez votre token de bot.
- Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord si ce n'est pas déjà fait).
- Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
- Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
- Exécuter l'application : Cliquez sur Run — le bot commence à écouter les messages Telegram immédiatement.
- Tester : Envoyez /lcd Bonjour ! à votre bot et observez le texte apparaître sur le LCD.
- Conseil Pro : Utilisez /button pour vérifier à distance quel bouton du shield un utilisateur presse — idéal pour le débogage à distance ou les manettes de jeu.
Sortie de la Console App Lab
ArduinoBot
Intégration d'OpenClaw
Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.
Idées d'Application/Projets
Voici quelques idées de projets amusants que vous pouvez construire avec le shield LCD Clavier et Arduino UNO Q :
- Système piloté par menu : Utilisez les boutons Haut/Bas pour faire défiler les éléments de menu affichés sur le LCD
- Tableau de score numérique : Suivez les scores d'un jeu à deux joueurs, en utilisant le bouton Sélect pour réinitialiser
- Saisie de code PIN : Entrez un code à l'aide des boutons et affichez un retour masqué sur le LCD
- Affichage contrôlé par Telegram : Permettez à n'importe qui d'envoyer des messages à votre Arduino UNO Q pour mettre à jour ce qui est affiché sur le LCD à distance
- Tableau de bord de capteurs distant : Afficher les lectures de température ou d'humidité des capteurs sur le LCD, lisibles et actualisables via Telegram
- Chronomètre simple : Démarrer/Arrêter avec Sélect, réinitialiser avec Gauche, et afficher le temps écoulé sur l'écran 16×2
Besoin de plus d'astuces LCD ? Consultez le tutoriel Arduino LiquidCrystal LCD pour plus d'idées.
Défiez-vous
Essayez ces défis avec votre shield LCD Clavier et Arduino UNO Q pour améliorer vos compétences :
- Facile : Faites en sorte que le LCD affiche un message de bienvenue sur la ligne 1 et mette à jour la ligne 2 avec le nom de chaque bouton au fur et à mesure qu'il est pressé
- Moyen : Construisez un chronomètre — utilisez Sélect pour démarrer/arrêter et Gauche pour réinitialiser, en affichant le temps écoulé sur le LCD mis à jour chaque seconde
- Avancé : Créez un menu multi-niveaux contrôlé par Telegram où les utilisateurs naviguent dans les menus LCD à distance en envoyant des commandes Haut/Bas/Sélect via le bot Telegram
Dépannage
Les boutons sont détectés incorrectement (mauvais nom de bouton affiché) :
Les valeurs ADC des boutons varient selon les fabricants de shields. Le code est pré-calibré pour Arduino UNO Q, mais si votre shield utilise des résistances différentes, vous devez le recalibrer. Téléversez le sketch de calibration ci-dessous, maintenez chaque bouton un à la fois, et notez la valeur ADC affichée sur le LCD et la console App Lab :
Notez vos résultats :
| Bouton | Votre valeur ADC |
|---|---|
| DROITE | ? |
| HAUT | ? |
| BAS | ? |
| GAUCHE | ? |
| SÉLECT | ? |
| AUCUN | ? |
Ensuite, définissez chaque seuil dans votre sketch au point médian entre deux valeurs de bouton adjacentes. Par exemple, si HAUT = 590 et BAS = 1500, le seuil entre eux est (590 + 1500) / 2 = 1045.
Le bouton SÉLECT ne fonctionne pas :
Certains shields utilisent un diviseur résistif de résistance plus élevée qui pousse la tension SÉLECT au-dessus de 3,3V — la limite ADC du STM32. Dans ce cas, SÉLECT se coupe à 4095 (identique à aucune touche pressée) et ne peut pas être détecté. Utilisez le sketch de calibration pour vérifier : si SÉLECT et AUCUN lisent tous les deux 4095, SÉLECT est inutilisable sur votre shield.
Écran LCD vide ou brouillé :
Tournez le bouton de contraste (potentiomètre) sur le shield jusqu'à ce que le texte devienne clairement visible.