Misureremo, la quantità di luce attorno al nostro Arduino facendo uso di un fotoresistore e faremo lo stesso per la temperatura utilizzando un termistore.
MATERIALE UTILIZZATO:
- Arduino Uno
- Breadboard
- 1 Fotoresistore
- 1 Termistore
- 2 Resistori (10 Ohm)
- Cavetteria
- LCD I2C (OPZIONALE)
Per prima cosa,vediamo come collegare opportunamente i vari componenti fra loro con delle immagini:
Abbiamo utilizzato i cavi di colore rosso per identificare la tensione di 5V mentre i cavi neri per identificare la Terra (GND).
I cavi di colore giallo,invece,sono stati usati per identificare gli Output analogici provenienti dai sensori,che andranno inseriti appunto nei Pin analogici sulla nostra scheda Arduino.
Fatto ciò,passiamo al codice.
Per quanto riguarda il "void setup()",andremo a definire i due pin nei quali arrivano gli output dei sensori,come pin di INPUT e inizializzeremo il Seriale a 9600 baud:
I cavi di colore giallo,invece,sono stati usati per identificare gli Output analogici provenienti dai sensori,che andranno inseriti appunto nei Pin analogici sulla nostra scheda Arduino.
Fatto ciò,passiamo al codice.
Per quanto riguarda il "void setup()",andremo a definire i due pin nei quali arrivano gli output dei sensori,come pin di INPUT e inizializzeremo il Seriale a 9600 baud:
- void setup()
- {
- Serial.begin(9600);
- pinMode(A0,INPUT);//pin di INPUT per il fotoresistore
- pinMode(A1,INPUT);//pin di INPUT per il termistore
- }
Nel nostro "void loop()" invece,dobbiamo prima dutto leggere i valori che ci vengono forniti dai due sensori posti sulla Breadboard e successivamente stamparli.
Implementiamo prima una versione per chi fosse sprovvisto di LCD
Implementiamo prima una versione per chi fosse sprovvisto di LCD
- void loop()
- {
- ValoreLuce=analogRead(A0); //ValoreLuce è una variabile di tipo INT dichiarata in precedenza(il fotoresistore fornisce valori interi da 0 a 1023)
- ValoreTemp=analogRead(A1);//ValoreTemp è una variabile di tipo INT dichiarata in precedenza
Fatto ciò,possiamo passare alla stampa :
- Serial.print("Fotoresistore = ");
- Serial.print(ValoreLuce);
- Serial.print(" Temperatura = ");
- Serial.println(ValoreTemp);
Possiamo infire definire un intervallo di Delay che permetterà al nostro Arduino di Trasmettere dati ogni TOT millisecondi:
delay(1000);//Esempio: Intervallo di 1 secondo
Per chi invece fosse provvisto di LCD,una possibile soluzione potrebbe essere la seguente(NB: Alcuni comandi potrebbero non funzionare in base alla libreria del proprio LCD.Si raccomanda,pertanto,di consultare il proprio file library.h per documentarsi sulle funzioni implementabili sul proprio LCD):
delay(1000);//Esempio: Intervallo di 1 secondo
Per chi invece fosse provvisto di LCD,una possibile soluzione potrebbe essere la seguente(NB: Alcuni comandi potrebbero non funzionare in base alla libreria del proprio LCD.Si raccomanda,pertanto,di consultare il proprio file library.h per documentarsi sulle funzioni implementabili sul proprio LCD):
- lcd.setCursor(0,0);
- lcd.print("Sensore = ");
- lcd.setCursor(11,0);
- lcd.print(ValoreLuce);
Stesso meccanismo per il Termistore.
Infine,"giocando" un pò col codice,possiamo riuscire a tirar fuori dal nostro Arduino qualcosa di molto divertente e funzionale come mostra la seguente foto.
Infine,"giocando" un pò col codice,possiamo riuscire a tirar fuori dal nostro Arduino qualcosa di molto divertente e funzionale come mostra la seguente foto.
Se avete dei problemi a far funzionare il circuito commentate o scrivete sul forum.