Note
Bonjour, bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez plus profondément dans l’univers du Raspberry Pi, de l’Arduino et de l’ESP32 avec d’autres amateurs.
Pourquoi rejoindre ?
Support d’experts : Résolvez les problèmes après-vente et les défis techniques avec 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 : Obtenez un accès anticipé aux annonces de nouveaux produits et aux aperçus.
Réductions spéciales : Profitez de réductions exclusives sur nos nouveaux produits.
Promotions festives et cadeaux : Participez à des tirages au sort et des promotions de fêtes.
👉 Prêt à explorer et créer avec nous ? Cliquez sur [here] et rejoignez-nous aujourd’hui !
Leçon 41 : Valeur d’échelle de potentiomètre
Ce projet se concentre sur la lecture de la valeur d’un potentiomètre et son affichage sur un écran LCD 1620 équipé d’une interface I2C. De plus, la valeur est transmise au moniteur série pour un suivi en direct. Un aspect distinctif de ce projet est la représentation graphique de la valeur du potentiomètre sur l’écran LCD, représentée par une barre de longueur variable proportionnelle à la lecture du potentiomètre.
Composants requis
Pour ce projet, nous avons besoin des composants suivants.
Il est définitivement pratique d’acheter un kit complet, voici le lien :
Nom |
ARTICLES DANS CE KIT |
LIEN |
|---|---|---|
Kit de capteurs universels pour créateurs |
94 |
Vous pouvez également les acheter séparément via les liens ci-dessous.
Introduction au composant |
Lien d’achat |
|---|---|
ESP32 & Carte de développement (ESP32) |
|
- |
|
- |
|
Câblage
Code
Analyse du code
La fonctionnalité principale de ce projet est de lire en continu la valeur du potentiomètre, de la mettre à l’échelle de 0 à 16, et d’afficher le résultat à la fois numériquement et graphiquement sur l’écran LCD. L’implémentation minimise le jitter en mettant à jour l’affichage uniquement lorsque des changements significatifs dans la lecture se produisent, maintenant ainsi une expérience visuelle fluide.
Inclusion et initialisation de la bibliothèque :
// Bibliothèques requises pour les opérations I2C et LCD #include <Wire.h> #include <LiquidCrystal_I2C.h> // Initialiser l'écran LCD à l'adresse I2C 0x27 avec 16 colonnes et 2 rangées LiquidCrystal_I2C lcd(0x27, 16, 2);
Ce segment intègre les bibliothèques nécessaires pour la communication I2C et le contrôle LCD. Il initialise ensuite une instance LCD avec l’adresse I2C de
0x27, spécifiant ses dimensions comme16 columnset2 rows.Déclaration de variable :
// Variables pour contenir les lectures du potentiomètre int lastRead = 0; // Valeur précédente du potentiomètre int currentRead = 0; // Valeur actuelle du potentiomètre
Les variables
lastReadetcurrentReadsont utilisées pour suivre les lectures du potentiomètre à différents moments.Fonction setup() :
void setup() { lcd.init(); // Initie l'écran LCD lcd.backlight(); // Active le rétroéclairage de l'écran LCD Serial.begin(9600); // Commence la communication série à 9600 bauds }
Cette fonction prépare l’écran LCD et commence la communication série, mettant en place l’environnement pour l’opération du projet.
Boucle principale :
void loop() { // Lire la valeur actuelle du potentiomètre int currentRead = analogRead(35); // Mettre la valeur lue à l'échelle de 0 à 4096 à 0 à 16 int barLength = map(currentRead, 0, 4096, 0, 16); // Mettre à jour l'écran LCD uniquement si la différence entre la lecture actuelle et la dernière est supérieure à 2 pour éviter le jitter if (abs(lastRead - currentRead) > 2) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Value:"); lcd.setCursor(7, 0); lcd.print(currentRead); Serial.println(currentRead); // Afficher une barre sur la deuxième rangée de l'écran LCD proportionnelle à la valeur du potentiomètre for (int i = 0; i < barLength; i++) { lcd.setCursor(i, 1); lcd.print(char(255)); } } // Mettre à jour la dernière valeur lue pour la prochaine itération lastRead = currentRead; // Introduire un délai pour une lecture stable delay(200); }
Lit le potentiomètre et convertit sa valeur en une échelle adaptée à la représentation visuelle.
Met à jour l’écran LCD uniquement lorsqu’un changement significatif est détecté, affichant la valeur numérique et un graphique en barres correspondant.
Envoie également la lecture au moniteur série pour une observation externe.
Assure la stabilité et la réactivité en introduisant un bref délai entre les itérations.