LM35
- Meteo Arduino partiamo da zero - n° 2m -
Segue dal post precedente la sperimentazione per costruire la nostra stazione meteo.
Qui troverete lo Sketch per Arduino che permette la misura di temperature sotto zero.
Follows from the previous post experimentation to build our weather station.
Here you will find the sketch for Arduino that allows the measurement of sub-zero temperatures.
Questo è lo schema elettrico utilizzato:
Materiale occorrente:
Arduino
n. 1_ LM35.
n. 2 _diodi 1N914 o 1N4148 o 1N40xx
n. 1_ resistenza da 15Komm.
Facoltativo lettore LCD, trimmer 10Komm.
Lo schema già visto nel post precedente è ora collegato ad arduino (Pin A0 per Vout) e (Pin A1 per Vref) la differenza fra le due tensioni ci darà la tensione corrispondente alla temperatura del sensore.
Ecco qui sotto lo sketch:
/* Sergio & Adriano Prenleloup Misura temperature positive e negative con LM35 ***** Versione 1.01 ****** ***** 07/01/2014 ****** ************************** Per lo schema di collegamento Lcd vedi post su http://avventurarduino.blogspot.it Utilizzo del LCD ACM1602B Per utilizzare questo lcd seguite le indicazioni di Mauro Alfieri www.mauroalfieri.it Ho collegato il mio lcd nel modo da lui suggerito ed ha funzionato subito Voglio segnalare che ho utilizzato i pin digitali 0 e 1 nel collegare il mio LCD Questo da problemi per l'uso della seriale ************************** Prova sensore di temperatura LM35 misura temperature positive e negative, si collega il sensore come indicato nel datasheet della Texas ( Pag. 11, fig 18). Le due tensioni prelevate Vref a monte dei diodi sul pin GND del sensore, e Vout a monte della resistenza da 18 K sul pin Out del sensore. Le due tensioni vengono inviate ai Pin Analog 0 = Vout e Pin Analog 1 = Vref Lo sketch esegue la diffenza fra le due e successivamente le trasforma in Temperature moltiplicandole per fatt In fatt metteremo una costante o una formula a seconda del caso, vedere sul blog incato sopra. Ho utilizzato l'istruzione analogReference (); leggere sulla guida di arduino le varie opzioni. In questa prova ho utilizzato l'opzione analogReference(EXTERNAL); ed ho fornito come tensione di riferimento i 3,3V dal Pin di arduino stesso. Se non si desidera utilizzare questa opzione si può omettere l'istruzione il filo di collegamento dal pin AREF al pin 3,3V , e bisogna sostriture la formula per calcolre fatt float fatt = (3.3/1024)*100; // sostituire questa in questa float fatt = (5.0/1024)*100; */ #include (liquidcrystal .h="")//correggere se necessario // initialize the library with // the numbers of the interface pins // Pin utilizzati // pin 5 --- RS ( tipo di comando da inviare) // pin 4 --- Enable // pin 0,1,2,3 --- Dati si utilizzano 4 bit LiquidCrystal lcd(5, 4, 3, 2, 1, 0); float fatt = (3.3/1024)*100; // moltiplicando per questo fattore si convertono // i dati ricavati pal pin analog in Temperature float temp; // Temperatura misurata int Vref; // Lettura Vref dal piedino LM35 con i diodi int Vout; // lettura sensore LM35 int tempPin0 = 0; // pin che rileva il valore della tensione sul pin LM35 Vout int tempPin1 = 1; // pin che rileva il valore di tensione di riferimento Vref void setup() { // Serial.begin(9600); analogReference(EXTERNAL); // Ho collegato il 3.3V sul pin AEREF } void loop() { //lettura sensori Vout = (analogRead(tempPin0)); // lettura Vout LM35 //lettura secondo sensore Vref = analogRead(tempPin1); // lettura Vref (a monte dei diodi) temp = ((Vout - Vref)* fatt); // trasformazione delle letture in Temperatura // temp = round (temp,1); // Serial.print("Temp_= "); // Serial.print(temp); // Serial.print("*C"); //Serial.println(); // Serial.println(); lcd.clear (); lcd.print("Temp"); lcd.setCursor(6, 1); lcd.print ( temp,1); delay(2000); }
Questo lo schema da utilizzare
Il collegameto LCD dovrete adattarlo al modello in Vostro possesso.
Potrete usare lo sketch utilizzando la seriale e visualizzando i risultati sul monitor, oppure con un LCD.
Dovrete apportare le modifiche togliendo le "//" rem alle istruzioni ed inserendo invece le "//" sulle istruzioni riguardanti LCD.
La resistenza R1 indicata nello schema è da 15Komm, nelle istruzioni della Texas è invece di 18Komm.
L' istruzione analogReference() è facoltativa basterà non collegare il ponticello fra il Pin 3,3V ed il Pin AERF di Arduino, e cambiare la formula
da questa float fatt = (3.3/1024)*100; a questa float fatt = (5.0/1024)*100;
Lo sketch è commentato e descritto in tutti i particolari, se avete domande o dubbi chiedete.
Vedremo prossimamente eventuali aggiunte e miglioramenti.
Il sensore nel congelatore:
grazie per l'attenzione
nel prossimo post misureremo l'umidità relativa.
In the next post we will measure the relative humidity.
Nessun commento:
Posta un commento
Vi ringrazio per la lettura e vi invito al prossimo post.
Se il post vi è stato utile, vi è piaciuto oppure no, scrivete un commento.
Un saluto a tutti.
Sergio
Copyright - Condizioni d’uso - Disclaimer
http://avventurarduino.blogspot.it/2012/10/inizia-lavventura-arduino-12-settembre.html