5.2 Sistema di controllo della luce
5.2.1 Sensore a fotocellula
Aprire il codice 5.2.1Photocell-sensor con Arduino IDE.
#define PhotocecllPin 34 //Definisce il pin del fotoresistore
void setup() {
//Inizializza la porta seriale
Serial.begin(9600);
//Imposta il pin in modalità input
pinMode(PhotocecllPin,INPUT);
}
void loop() {
//Legge il valore del fotoresistore
int ReadValue = analogRead(PhotocecllPin);
//Stampa il valore. NOTA: la scheda ESP32 è un ADC a 12 bit, il cui intervallo di valori di rilevamento è compreso tra 0 e 4095.
Serial.print("Valore fotocellula: ");
Serial.println(ReadValue);
delay(500);
}
Scegliere la scheda ESP32 Dev Module e la porta COM, quindi caricare il codice.

Risultato del test:
Aprire il monitor seriale.
Più luminosa è la luce rilevata dal fotoresistore, maggiore sarà il valore.

Un modulo fotoresistore converte il segnale luminoso in segnale elettrico (tensione, corrente e resistenza). Quando la luce colpisce il fotoresistore, più forte è la luce, minore sarà la resistenza, quindi maggiore sarà la tensione VCC che passerà attraverso il fotoresistore.

5.2.2 Sistema di controllo della luce
Aprire il codice 5.2.2Light-Control-System con Arduino IDE.
#define PhotocecllPin 34 //Definisce il pin del fotoresistore
#define LED 27 //Definisce il pin del LED
void setup() {
//Inizializza la porta seriale
Serial.begin(9600);
//Imposta il pin del fotoresistore in modalità input
pinMode(PhotocecllPin,INPUT);
//Imposta il pin del LED in modalità output
pinMode(LED,OUTPUT);
}
void loop() {
//Legge il valore del fotoresistore
int ReadValue = analogRead(PhotocecllPin);
//Stampa il valore. NOTA: la scheda ESP32 è un ADC a 12 bit, il cui intervallo di valori di rilevamento è compreso tra 0 e 4095.
Serial.print("Valore fotocellula: ");
Serial.println(ReadValue);
//Determina:
//Il valore del fotoresistore >= 800, il LED si spegne
//Il valore del fotoresistore =< 800, il LED si accende
if(ReadValue >= 800) {
digitalWrite(LED,LOW);
Serial.println("LED SPENTO");
}
else{
digitalWrite(LED,HIGH);
Serial.println("LED ACCESO");
}
delay(100);
}
Scegliere la scheda ESP32 Dev Module e la porta COM, quindi caricare il codice.

Risultato del test:
Quando il valore del fotoresistore è maggiore di 800 (di giorno), il LED si spegne. Tuttavia, se il valore è inferiore a 800, il LED si accenderà automaticamente.

