venerdì 10 gennaio 2014

Meteo - LM35 -/2

 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