Arduino UNO Q - Potentiomètre
Un potentiomètre (aussi appelé capteur d'angle rotatif ou résistance variable) vous permet d'ajuster manuellement une valeur en tournant un bouton. Les utilisations courantes incluent le contrôle du volume, de la luminosité et de la vitesse du moteur. Dans ce tutoriel, vous apprendrez à connecter un potentiomètre à Arduino UNO Q, à lire sa valeur ADC, à la convertir en tension et à vérifier les lectures à distance via Telegram.
※ Note:
Différence ADC de l'Arduino UNO Q : Le MCU STM32 de l'Arduino UNO Q dispose d'un ADC 12 bits (valeurs 0–4095), comparé à l'ADC 10 bits (0–1023) de nombreuses autres cartes Arduino. La tension de référence est de 3,3V. Utilisez toujours ces valeurs lors de la conversion des lectures ADC.

Matériel Requis
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À Propos du Potentiomètre
Brochage
Un potentiomètre a trois broches :
- Broche GND : connectez à GND
- Broche VCC : connectez à 3,3V (sur Arduino UNO Q, le MCU fonctionne à 3,3V)
- Broche de sortie : connectez à une broche d'entrée analogique de l'Arduino UNO Q

※ Note:
Les broches GND et VCC peuvent être inversées — cela inverse le sens de la sortie.
Comment Ça Fonctionne
La rotation du bouton change la résistance entre la broche de sortie et GND/VCC, ce qui change la tension de sortie proportionnellement :
- À 0° (côté GND) : sortie = 0V
- À l'angle maximum (côté VCC) : sortie = 3,3V (sur Arduino UNO Q)
- Entre les deux : sortie = (angle / ANGLE_MAX) × 3,3V

ADC de l'Arduino UNO Q
Le MCU Arduino UNO Q (STM32U585) lit la tension de sortie via un ADC 12 bits — produisant des valeurs de 0 à 4095 :
| Source | Plage |
|---|---|
| Angle de rotation du bouton | 0° à ANGLE_MAX |
| Tension de sortie | 0V à 3,3V |
| Valeur ADC lue par Arduino UNO Q | 0 à 4095 |
| Valeur de sortie mappée | VALUE_MIN à VALUE_MAX |
Conversions Courantes
- ADC vers tension :
- ADC vers un niveau contrôlable (ex. luminosité 0–255) :
- ADC vers angle (si ANGLE_MAX est connu) :
※ Note:
map() renvoie un entier. Pour les conversions en virgule flottante, utilisez floatMap() comme indiqué dans le code ci-dessous.
Schéma de Câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code MCU — Potentiomètre
L'Arduino UNO Q possède deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.
É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.
- Câbler le potentiomètre : Connectez GND à GND, VCC à 3,3V et la broche de sortie à A0 selon le schéma de câblage.
- 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.
- Créer une nouvelle application : Cliquez sur le bouton Create New App.

- Donnez un nom à l'application, par exemple : DIYables_Potentiometer
- Cliquez sur Create pour confirmer.
- Vous verrez un ensemble de dossiers et de 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 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.

- Tourner le bouton du potentiomètre — la valeur ADC et la tension sont lues toutes les 500 ms. Les résultats sont visibles via le Bridge Monitor dans la section suivante.
- Conseil : Remplacez le commentaire TO DO par map(adc_value, 0, 4095, 0, 255) pour piloter la luminosité d'une LED via PWM.
Programmation Bridge Linux + MCU
L'Arduino UNO Q possède deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent en utilisant RPC via la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.
- Le potentiomètre est connecté au MCU (STM32) — câblé à une broche d'entrée analogique (A0) sur le STM32. Le MCU lit les valeurs ADC et les convertit en tension.
- Le MPU ne peut pas lire le potentiomètre directement — il doit demander la lecture au MCU via Bridge.call(). Le MCU répond avec la valeur ADC et la tension actuelles.
- Le MPU dispose du Wi-Fi — parce que le MPU exécute Debian Linux complet avec Wi-Fi, il peut signaler la lecture du potentiomètre via Telegram à la demande.
- Communication : Bridge.call() côté Linux invoque les fonctions Bridge.provide() côté MCU
- ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement
En résumé : Le MPU demande la lecture du potentiomètre → le MCU lit l'ADC → le MCU rapporte la valeur et la tension → le MPU enregistre ou transmet.
Sketch MCU — potentiomètre avec Bridge et sortie Monitor :
Script Python (Arduino App Lab) — interroger le potentiomètre 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 côté Linux.
- ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sur Linux) ou n'utilisez pas Serial1 (sur MCU) dans votre code — ils sont réservés par l'Arduino Router 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 Bridge ci-dessus dans sketch/sketch.ino, installez la bibliothèque Arduino_RouterBridge, 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é Python interroge le potentiomètre chaque seconde.
- Tourner le bouton du potentiomètre et observez la valeur ADC et la tension se mettre à jour en temps réel.
- Vérifier la console : Ouvrez l'onglet Console → le sous-onglet MCU Monitor.
Sortie Console d'App Lab
Intégration Telegram
Lisez la valeur actuelle du potentiomètre à distance depuis n'importe où via Telegram.
Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.
Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification n'est 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 la lecture du potentiomètre :
- Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
- Envoyez /read pour déclencher une lecture du potentiomètre — le résultat apparaît dans le MCU Monitor.
Étapes Rapides
- Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord s'il ne l'est pas déjà).
- 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.
- Tester : Tournez le potentiomètre, envoyez /read — le bot répond avec la valeur ADC et la tension.
Sortie Console d'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'Applications/Projets
- Bouton de volume à distance : Utilisez un potentiomètre pour régler le volume audio — lisez le niveau à distance via Telegram
- Régleur de niveau de lumière : Utilisez un potentiomètre pour définir une cible de luminosité LED — vérifiez le niveau défini via Telegram
- Sélecteur de vitesse moteur : Mappez la valeur du potentiomètre sur la vitesse du moteur — confirmez la vitesse via Telegram
- Configurateur de seuil : Utilisez le potentiomètre pour définir un seuil de capteur (ex. alarme de température) vérifiable à distance
- Outil de calibration : Utilisez le potentiomètre pour ajuster un décalage de capteur — vérifiez la valeur de calibration via Telegram
Défiez-Vous
- Facile : Ajoutez une deuxième sortie : mappez l'ADC vers un niveau 0–100% et affichez-le à côté de la tension
- Moyen : Exposez la valeur du potentiomètre en pourcentage (0–100) via un callback Bridge get_level()
- Avancé : Créez un bot Telegram qui surveille continuellement le potentiomètre et envoie une notification lorsque la valeur change de plus de 10% par rapport à la dernière lecture