Progetto 19 Lampada Dimmerabile

1. Descrizione

La lampada dimmerabile regola la luminosità del LED tramite un potenziometro e un controller Arduino. La luminosità dipende dal valore di resistenza, che può essere letto e regolato collegando le estremità del potenziometro ai pin digitali o analogici sulla scheda. Inoltre, questo sistema è applicato per controllare la tensione o la corrente di altri dispositivi come ventole, lampadine e riscaldatori.

2. Principio di Funzionamento

Fondamentalmente, il potenziometro è un elemento che può modificare il valore della resistenza. Secondo la legge di Ohm (U=I*R), la resistenza influisce sulla tensione. Il nostro potenziometro è da 10K.

In questo progetto, la resistenza massima è 10K. La scheda ESP32 dividerà equamente la tensione di 3V in 4095 parti (3/4095=0.0007326007326). La tensione analogica si ottiene moltiplicando il valore letto per 0.0007326007326.

3. Schema di Collegamento

4. Codice di Test

/*
  keyestudio ESP32 Inventor Learning Kit  
   Project 19.1 Dimming Lamp
  http://www.keyestudio.com
*/
int pot = 34;      //Definisci la variabile pot su IO34

void setup() 
{
  // inserisci qui il codice di setup, da eseguire una volta:
  Serial.begin(9600);		//Imposta baud rate a 9600
}

void loop() 
{
  // inserisci qui il codice principale, da eseguire ripetutamente:
  int value = analogRead(pot);	//Leggi io34 e assegna il valore alla variabile value
  Serial.println(value);		//Stampa la variabile value e vai a capo
  delay(200);
}

5. Risultato del Test

Dopo aver collegato i fili e caricato il codice, aprire il monitor seriale impostando il baud rate a 9600, e verrà visualizzato il valore analogico, nell’intervallo da 0 a 4095. Ruotando il potenziometro si può modificare il valore analogico.

6. Approfondimento

Controlleremo la luminosità del LED tramite un potenziometro. Come sappiamo, questa è influenzata dal PWM. Tuttavia, l’intervallo del valore analogico è 0-4095 mentre quello del PWM è 0-255. Perciò è necessaria la funzione “map(value, fromLow, fromHigh, toLow, toHigh)”.

Schema di Collegamento:

Codice:

/*
  keyestudio ESP32 Inventor Learning Kit  
   Project 19.2 Dimming Lamp
  http://www.keyestudio.com
*/
int led = 25;		//Definisci LED su IO25
int pot = 34;		//Definisci pot su IO34

void setup() 
{
  // inserisci qui il codice di setup, da eseguire una volta:
  pinMode(led,OUTPUT);		//Imposta il pin LED come output
}

void loop() 
{
  // inserisci qui il codice principale, da eseguire ripetutamente:
  int value = analogRead(pot);
  int led_val = map(value,0,4095,0,255);  //Converti l’intervallo del valore analogico del potenziometro in quello necessario  
  analogWrite(led,led_val);
}

7. Risultato del Test

Dopo che il codice è stato caricato con successo, ruotando il potenziometro si modificherà la luminosità del LED rosso.