Note
Bonjour, bienvenue dans la communauté SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts 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 les problèmes après-vente et les défis techniques grâce à l’aide de notre communauté et de notre équipe.
Apprendre & Partager : Échangez des astuces et des tutoriels pour améliorer vos compétences.
Aperçus exclusifs : Accédez en avant-première aux annonces de nouveaux produits et aux avant-goûts.
Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions festives et tirages au sort : Participez à des tirages au sort et des promotions de vacances.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !
Potentiomètre
Vue d’ensemble
Dans cette leçon, voyons comment modifier la luminosité d’une LED à l’aide d’un potentiomètre et recevoir les données du potentiomètre dans le Moniteur Série pour voir ses valeurs changer.
Composants requis
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
---|---|---|
Elite Explorer Kit |
300+ |
Vous pouvez également les acheter séparément à partir des liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
---|---|
- |
|
Câblage
Schéma de câblage
Dans cette expérience, le potentiomètre est utilisé comme diviseur de tension, ce qui signifie connecter des dispositifs à ses trois broches. Connectez la broche centrale du potentiomètre à la broche A0 et les deux autres broches respectivement à 5V et GND. Par conséquent, la tension du potentiomètre est de 0-5V. Tournez le bouton du potentiomètre et la tension à la broche A0 changera. Ensuite, convertissez cette tension en une valeur numérique (0-1024) avec le convertisseur AD de la carte de contrôle. Grâce à la programmation, nous pouvons utiliser la valeur numérique convertie pour contrôler la luminosité de la LED sur la carte de contrôle.
Code
Note
Vous pouvez ouvrir le fichier
19-potentiometer.ino
sous le cheminelite-explorer-kit-main\basic_project\19-potentiometer
directement.Ou copiez ce code dans Arduino IDE.
Après avoir téléversé le code sur la carte Uno, vous pouvez ouvrir le moniteur série pour observer les valeurs lues du potentiomètre. Lorsque vous tournez le bouton du potentiomètre, la valeur lue changera en conséquence. La lecture analogique brute du potentiomètre variera de (0) à (1023). Simultanément, le code ajuste cette valeur à une plage de (0) à (255), qui est également affichée sur le moniteur série. Cette valeur ajustée est ensuite utilisée pour contrôler la luminosité de la LED connectée. La LED deviendra plus brillante ou plus faible en fonction de la valeur ajustée. Il est à noter que bien que la plage théorique du potentiomètre soit de (0) à (1023), la plage réelle peut varier légèrement en raison des tolérances matérielles.
Analyse du code
Initialisation et configuration (définition des modes des broches et initialisation de la communication série)
Avant d’entrer dans la boucle, nous définissons les broches que nous utilisons et initialisons la communication série.
const int analogPin = 0; // Broche d'entrée analogique connectée au potentiomètre const int ledPin = 9; // Broche de sortie numérique connectée à la LED void setup() { Serial.begin(9600); // Initialiser la communication série avec un débit de 9600 bauds }
Lecture de l’entrée analogique (obtention des données du potentiomètre)
Dans ce segment, nous lisons les données analogiques du potentiomètre et les imprimons sur le moniteur série.
inputValue = analogRead(analogPin); // Read the analog value from the potentiometer Serial.print("Input: "); // Print "Input: " to the serial monitor Serial.println(inputValue); // Print the raw input value to the serial monitor
Cartographie et mise à l’échelle (conversion des données du potentiomètre)
Nous ajustons les données brutes du potentiomètre, qui se situent dans la plage de 0 à 1023, à une nouvelle plage de 0 à 255.
map(value, fromLow, fromHigh, toLow, toHigh)
est utilisé pour convertir un nombre d’une plage à une autre. Par exemple, si la valeur se situe dans la plage defromLow
etfromHigh
, elle sera convertie en une valeur correspondante dans la plage detoLow
ettoHigh
, en maintenant la proportionnalité entre les deux plages.Dans ce cas, comme la broche LED (broche 9) a une plage de 0 à 255, nous devons mapper les valeurs dans la plage de 0 à 1023 pour correspondre à cette même échelle de 0 à 255.
outputValue = map(inputValue, 0, 1023, 0, 255); // Mapper la valeur d'entrée à une nouvelle plage
Contrôle de la LED et sortie série
Enfin, nous contrôlons la luminosité de la LED en fonction de la valeur ajustée et imprimons la valeur ajustée pour la surveillance.
Serial.print("Output: "); // Imprimer "Output: " sur le moniteur série Serial.println(outputValue); // Imprimer la valeur de sortie ajustée sur le moniteur série analogWrite(ledPin, outputValue); // Contrôler la luminosité de la LED en fonction de la valeur ajustée delay(1000);