Terzo Esperimento: Fotoresistenza che stampa il suo valore su lcd hd44780 compatibile
Dopo il secondo esperimento, siamo in grado di utilizzare uno schermo lcd collegato al nostro Arduino, oggi utiliziamo tale lcd per far stampare il valore di una fotoresistenza che essendo un componente analogico, avrà un valore compreso tra 0 e 1023, per chi non ha letto le caratteristiche di questo componente lo rimando a questo articolo.
Le premesse:
Se volete sapere cos’è uno schermo lcd hd44780 leggete l’articolo ad esso dedicato qui.
Colleghiamo Arduino tramite una porta usb al pc, avviate l’ide, se non avete ancora configurato l’ide vi rimando all’articolo specifico qui.
Perfetto adesso entriamo nel vivo del tutorial, per prima cosa elenchiamo il materiale occorrente:
----inizio programma----
#include <LiquidCrystal.h> //include la libreria per il funzionamento dell'lcd LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //settia le uscite di arduino per lcd int fotoresistenzaPin = 0; // inizializza il pin 0 analogico int fotoresistenzaReading; // il valore che conterrà la lettura void setup() { lcd.begin(16, 2); // setta del numero delle colonne e delle righe } void loop() { lcd.print("Valore fotoresistenza"); // stampa della prima riga sull'lcd fotoresistenzaReading = analogRead(fotoresistenzaPin); //inserisce il valore della lettura su fotoresistenzaReading lcd.setCursor(0, 1); // setta il cursore sulla seconda riga al primo carattere lcd.print(fotoresistenzaReading); // stampa del valore della fotoresistenza delay(1000); // aspetta 1 secondo (1000 millesimi) lcd.clear(); // pulisce lo schermo }
----fine programma----
una volta copiato lo sketch clicchiamo sull’icona upload ed attendiamo il caricamento sul nostro Arduino.
Ora scolleghiamo Arduino dal pc, sistemiamolo vicino alla breadboard ed iniziamo ad inserire i componenti.
Inserire i pin dello schermo su una linea della breadboard
Posizionare di fianco ad esso sulla parte sinistra il potenziometro in modo da aver il minor accavallamento di fili possibili
Colleghiamo i fili in questo modo:
- LCD RS (pin 4) ——————– ARDUINO uscita digitale 12
- LCD Enable (pin 6) —————— ARDUINO uscita digitale 11
- LCD D4 (pin11) ———————- ARDUINO uscita digitale 5
- LCD D5 (pin12) ———————- ARDUINO uscita digitale 4
- LCD D6 (pin13) ———————- ARDUINO uscita digitale 3
- LCD D7 (pin14) ———————- ARDUINO uscita digitale 2
- LCD GND (pin1) ——————— POTENZIOMETRO uscita a destra —————– ARDUINO gnd
- LCD VCC (pin2) ——————— POTENZIOMETRO uscita a sinistra ————— ARDUINO 5v
- LCD Vo (pin3) ———————— POTENZIOMETRO uscita centrale
- LCD R/W (pin5) ———————- LCD GND (pin1) ponticellare i pin 1 e 5
Una volta completata questa parte, relativa allo schermo lcd, possiamo inserire e collegare la fotoresistenza:
- la fotoreristenza con un pin sulla linea del + e l’altra perpendicolarmente su una linea libera della breadboard (es. c18)
- in d18 resistenza da 2200 Ohm un capo, mentre l’altro nella linea del – (gnd) della breadboard
- in b18 un filo fino a 0 (zero) ingresso analogico di Arduino
Ora possiamo collegare il nostro Arduino ad una fonte di alimentazione,si dovrà procedere con la regolazione tramite il potenziometro del contrasto dello schermo così da poter visualizzare la scritta su lcd, il programma sulla prima riga visualizza la scritta “valore fotoresis” (causa limitazione dei 16 caratteri per riga), e nella seconda il valore analogico che varia da 0 a 1023 in base alle condizioni di luce, questo valore è più basso in condizione di scarsa luminosità dell’ambiente, al contrario aumenta proporzionalmente con l’aumentare della luminosità, esso viene aggiornato ogni secondo.
Se per caso riscontrate degli errori sulla visualizzazione ricontrollate i collegamenti e soprattutto vedete se il vostro schermo è hd44780 compatibile e se nel datasheet i pin sono posti come elencato sopra.
Come di consueto andiamo a spiegare il programma caricato e come effettuare delle modifiche ad esso.
Per prima cosa importiamo la libreria LiquidCrystal e inizializiamo i pin dell’Arduino relativi all’lcd
Poi inizializziamo il pin 0, e chiamiamo tale variabile fotoresistenzapin, in più creiamo un’altra variabile fotoresistenzareading con il solo scopo di inserire al suo interno il valore compreso tra 0 e 1023 della fotoresistenza
A questo punto fatte le dovute inizializzazioni settiamo il numero di colonne e righe dell’lcd all’interno del Setup() questo è l’unico parametro da settare
Come ultima cosa vediamo il Loop()
la funzione lcd.print() ci permette di stampare sull’lcd la scritta “valore fotoresistenza”, la potete cambiare con qualsiasi altra stringa, basta che rispettiate il limite dei 16 caratteri per riga se il vostro schermo lcd è composto da righe di 16 caratteri.
fotoresistenzareading=analogread(fotoresistenzapin) ci permette di inserire il valore letto dsl pin 0 dell’Arduino nella variabile fotoresistenzareading.
lcd.setcursor() posiziona il cursore sulla seconda riga dell’lcd (il conteggio parte sempre da 0, quindi la 1,0 non è nient’altro che la seconda righa e il primo carattere) al primo carattere
lcd.print() stampa il valore che gli viene passato, in questo caso la variabile contenete il valore attuale della fotoresistenza
delay(1000) questa funzione mette in pausa il ciclo per 1 secondo, il valore al suo interno è in millesimi, possiamo modificare tale valore aumentando o diminuendo il tempo in modo da avere un cambiamento più repentino di valori sull’lcd o viceversa.
lcd.clear() funzione senza parametri che ci permette di ripulire lo schermo da tutto ciò che troviamo visualizzato al suo interno, senza tale funzione, quando l’intensità della luce diminuisce e scende sotto di 100 viene visualizzato ancora un numero al terzo carattere questo fa si che chi legge tale valore possa incorrere in un errore, consiglio sempre di inserire tale funzione alla fine del ciclo in modo da essere sempre sicuri di cio che i legge.
Anche questo tutorial è terminato,
Buon divertimento con Arduino!!!