Projet 19 Lampe à intensité variable
1. Description
La lampe à intensité variable ajuste la luminosité de la LED via un potentiomètre et un contrôleur Arduino. La luminosité dépend de la valeur de résistance, qui peut être lue et ajustée en connectant les extrémités du potentiomètre aux broches digitales ou analogiques de la carte. De plus, ce système est appliqué pour contrôler la tension ou le courant d’autres appareils tels que ventilateurs, ampoules et chauffages.
2. Principe de fonctionnement


Essentiellement, le potentiomètre est un élément qui peut modifier la valeur de la résistance. Selon la loi d’Ohm (U=I*R), la résistance influence la tension. Notre potentiomètre est de 10K.
Dans ce projet, la résistance maximale est de 10K. La carte ESP32 divisera également la tension de 3V en 4095 parties (3/4095=0.0007326007326). La tension analogique est obtenue en multipliant la valeur lue par 0.0007326007326.
3. Schéma de câblage

4. Code de test
/*
keyestudio ESP32 Inventor Learning Kit
Project 19.1 Dimming Lamp
http://www.keyestudio.com
*/
int pot = 34; //Define variable pot to IO34
void setup()
{
// put your setup code here, to run once:
Serial.begin(9600); //Set baud rate to 9600
}
void loop()
{
// put your main code here, to run repeatedly:
int value = analogRead(pot); //Read io34 and assign it to the variable value
Serial.println(value); //Print the variable value and wrap it around
delay(200);
}
5. Résultat du test
Après avoir connecté le câblage et téléchargé le code, ouvrez le moniteur série en réglant le débit en bauds à 9600, et la valeur analogique s’affichera, dans la plage de 0 à 4095. La rotation du potentiomètre peut modifier la valeur analogique.

6. Extension des connaissances
Nous allons contrôler la luminosité de la LED via un potentiomètre. Comme nous le savons, cela est influencé par le PWM. Cependant, la plage de la valeur analogique est de 0 à 4095 tandis que celle du PWM est de 0 à 255. Ainsi, une fonction “map(value, fromLow, fromHigh, toLow, toHigh)” est nécessaire.
Schéma de câblage :

Code :
/*
keyestudio ESP32 Inventor Learning Kit
Project 19.2 Dimming Lamp
http://www.keyestudio.com
*/
int led = 25; //Define LED to IO25
int pot = 34; //Define pot to IO34
void setup()
{
// put your setup code here, to run once:
pinMode(led,OUTPUT); //Set LED pin to output
}
void loop()
{
// put your main code here, to run repeatedly:
int value = analogRead(pot);
int led_val = map(value,0,4095,0,255); //Convert the range of potentiometer analog value to the range we need
analogWrite(led,led_val);
}
7. Résultat du test
Après le téléchargement réussi du code, la rotation du potentiomètre modifiera la luminosité de la LED rouge.