edutecnica

Realizzare un circuito che abbia come input analogico una fotoresistenza ed un output analogico costituito da un led luminoso.
L'intensità della luminosità del led deve poter essere regolata dalla fotoresistenza.
La luminosità del led deve essere inversamente proporzionale alla luminosità presente nell'ambiente.


Esercizio 2        

Possiamo impostare un circuito come quello qui schematizzato.

• LED collegato tra il pin 9 e la massa.
• Resistenza da 220 Ω collegata tra il LED e la massa.
• Fotoresistenza alimentata a 5V collegata all'ingresso analogico A0.
• Resistenza da 4.7 kΩ collegata tra la foto resistenza e la massa.

Il pin analogico A0 legge i valori della fotoresistenza, tenendo conto che
0 → ambiente buio
1023 → ambiente completamente illuminato
Questi valori devono essere convertiti in un range 0÷255, ma al contrario; quindi noi useremo la funzione di conversione map proprio al contrario

lux = map(trimmer, 26, 923, 255, 0);

questo permette di avere il massimo della luminosità del LED quando nell'ambiente è buio, mentre quando la luminosità dell'ambiente sarà al suo massimo il LED sarà completamente spento. Per regolare la l'illuminazione dell'ambiente nel simulatore bisogna cliccare sulla foto resistenza e regolare il cursore che appare sotto di essa.

Il programma stampa sul monitor seriale anche i valori dell'ingresso analogico A0 della variabile trimmer e dell'uscità costituita dall'intensità luminosa del LED tramite la varibile lux.

int trimmer = 0;
int lux = 0;
void setup(){
   pinMode(A0, INPUT);
   pinMode(9, OUTPUT);
   Serial.begin(9600);
}
void loop(){
   // legge il valore analogico in ingresso
   trimmer = analogRead(A0);
   // lo converte in un output analogico di uscita
   lux = map(trimmer, 26, 923, 255, 0);
   //applica il valore di uscita al led
   analogWrite(9, lux);
   Serial.print(trimmer);Serial.print(" - ");
   Serial.println(lux);
   //aspetta 2 millisecondi prima del ciclo successivo per
   //permettere il convertitore analogico-digitale di
   //reimpostarsi dopo l'ultima lettura:

   delay(2);
   //pausa 2ms
}

All'avvio il valore della luminosità dell'ambiente è 0 dunque il LED dovrebbe trovarsi al massimo della sua luminosità.