Note
Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi, Arduino & ESP32 sur Facebook ! Plongez au cœur de Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.
Pourquoi nous rejoindre ?
Support d’experts : Résolvez vos problèmes après-vente et défis techniques avec l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et tutoriels pour améliorer 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 concours et promotions spéciales.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [ici] et rejoignez-nous dès aujourd’hui !
2.11 - Tournez le bouton
Dans les projets précédents, nous avons utilisé l’entrée numérique sur le Pico W. Par exemple, un bouton peut changer la broche du niveau bas (éteint) au niveau haut (allumé). C’est un état de fonctionnement binaire.
Cependant, le Pico W peut également recevoir un autre type de signal d’entrée : l’entrée analogique. Elle peut se situer dans n’importe quel état, de complètement fermé à complètement ouvert, avec une plage de valeurs possibles. L’entrée analogique permet au microcontrôleur de percevoir l’intensité de la lumière, du son, la température, l’humidité, etc., du monde physique.
Habituellement, un microcontrôleur nécessite un matériel supplémentaire pour implémenter l’entrée analogique : le convertisseur analogique-numérique (ADC). Mais le Pico W dispose lui-même d’un ADC intégré que nous pouvons utiliser directement.

Le Pico W possède trois broches GPIO capables de gérer des entrées analogiques : GP26, GP27, GP28. C’est-à-dire, les canaux analogiques 0, 1 et 2. De plus, il existe un quatrième canal analogique, connecté au capteur de température intégré, qui ne sera pas présenté ici.
Dans ce projet, nous essayons de lire la valeur analogique du potentiomètre.
Composants requis
Dans ce projet, nous avons besoin des composants suivants.
Il est pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN D’ACHAT |
|---|---|---|
Kit Kepler |
450+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
N° |
INTRODUCTION DES COMPOSANTS |
QUANTITÉ |
LIEN D’ACHAT |
|---|---|---|---|
1 |
1 |
||
2 |
Câble Micro USB |
1 |
|
3 |
1 |
||
4 |
Plusieurs |
||
5 |
1 (220Ω) |
||
6 |
1 |
||
7 |
1 |
Schéma

Le potentiomètre est un dispositif analogique que vous pouvez tourner dans deux directions différentes.
Connectez la broche centrale du potentiomètre à la broche analogique GP28. Le Raspberry Pi Pico W dispose d’un convertisseur analogique-numérique multi-canaux de 16 bits. Cela signifie qu’il convertit la tension d’entrée entre 0 et la tension de fonctionnement (3,3V) en une valeur entière comprise entre 0 et 1023, donc la valeur de GP28 varie de 0 à 1023.
La formule de calcul est indiquée ci-dessous.
Valeur numérique = (Tension analogique / 3,3V) * 1023
Ensuite, programmez la valeur de GP28 (potentiomètre) comme la valeur PWM de GP15 (LED). De cette manière, vous constaterez qu’en tournant le potentiomètre, la luminosité de la LED changera simultanément.
Câblage

Code
Note
Vous pouvez ouvrir le fichier
2.11_turn_the_knob.inosous le cheminkepler-kit-main/arduino/2.11_turn_the_knob.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.
Lorsque le programme est en cours d’exécution, nous pouvons voir la valeur analogique actuellement lue par la broche GP28 dans le moniteur série. Tournez le bouton, et la valeur variera de 0 à 1023. En même temps, la luminosité de la LED augmentera au fur et à mesure que la valeur analogique augmentera.
Comment ça marche ?
Pour activer le moniteur série, vous devez démarrer la communication série dans setup() et définir le débit de données à 9600.
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
Dans la fonction loop, la valeur du potentiomètre est lue, puis la valeur est mappée de 0-1023 à 0-255 et finalement la valeur après le mappage est utilisée pour contrôler la luminosité de la LED.
void loop() {
int sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
int brightness = map(sensorValue, 0, 1023, 0, 255);
analogWrite(ledPin, brightness);
}
analogRead() est utilisée pour lire la valeur de la broche sensorPin (potentiomètre) et l’attribue à la variable
sensorValue.
int sensorValue = analogRead(sensorPin);
Imprimez la valeur de
sensorValuedans le moniteur série.
Serial.println(sensorValue);
Ici, la fonction map(value, fromLow, fromHigh, toLow, toHigh) est requise car la valeur du potentiomètre lue est comprise entre 0-1023 et la valeur d’une broche PWM est comprise entre 0-255. Elle est utilisée pour re-mapper un nombre d’une plage à une autre.
int brightness = map(sensorValue, 0, 1023, 0, 255);
Maintenant, nous pouvons utiliser cette valeur pour contrôler la luminosité de la LED.
analogWrite(ledPin,brightness);