Go Down

Topic: sensore tmp36 gz (Read 3 times) previous topic - next topic

PaoloP

#10
Apr 29, 2012, 01:44 pm Last Edit: Apr 29, 2012, 02:07 pm by PaoloP Reason: 1
Prova a includere queste righe e vedi che valori restituisce
Code: [Select]
 // prova con sensor temp 36gz
 sensortemp = analogRead(inTemp); //lettura dei dati nel pin analogico 1
 Serial.print("Lettura AnalogRead: ";
 Serial.println(sensortemp);
 voltage = (sensortemp*5000)/1024; // Conversione in millivolt
 Serial.print("Millivolt: ";
 Serial.println(voltage);
 voltage = voltage-500; //elimino offset
 Serial.print("Senza OffSet: ";
 Serial.println(voltage);
 celsius = voltage/10; // converto da millivolt a celsius
Serial.print("Temperatura: ";
 Serial.println(celsius);
 temp = celsius; // assegno il valore alla variabile intemp


Usando quella formula,  la temperatura di 377 C si ottiene col valore di AnalogRead pari a 875 che corrisponde a 4272mV che è fuori specifica perché il sensore dovrebbe erogare massimo 2000mV.
Presumo sia guasto.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

arduinh3nk3r

proverò il tuo consiglio, nel fratempo ho modificato e :

Code: [Select]

/*fotoresistore*/
int light; // variabile da calcolare
int ledPinlux = 12; // pin led fotoresistenza
int photoresistor = 0; // pin analogico IN fotoresistore

/*end fotoresistore*/

void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(outPin, OUTPUT);
pinMode(ledPinlux, OUTPUT);
Serial.begin(9600);
}

void loop(){
  float inTemp = analogRead(1);   // pin analogico IN sensore temperatura
 
   /*inizio calcolo temperatura*/
   // prova con unico calcolo con sensor temp 36gz. Aggiunto condens.ceram. 0,5 uF come da datasheet
   //celsius =  inTemp * 0.4883 - 50;
   //temp = celsius;
   
   //prova http://tronixstuff.wordpress.com/2010/04/15/getting-started-with-arduino-chapter-two/
   
   voltage = (inTemp*5000)/1024; // convert raw sensor value to millivolts
    voltage = voltage-500;        // remove voltage offset
     celsius = voltage/10;         // convert millivolts to Celsius

  /*fine calcolo temperatura*/



risultato soddisfacente. intanto e saltato fuori il decimale adesso devo capire come mai non legge il dato
STATUS SENSORI

TEMPERATURA = 0.00 C  :) :) :)

FREDDO

LUCE = 590

LUCE
AGGIORNA SENSORI: CHECK

arduinh3nk3r

Risultato tuo consiglio:

Lettura AnalogRead: 1023.00
Millivolt: Senza OffSet: 4495.12
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 917.00
Millivolt: Senza OffSet: 3977.54
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 889.00
Millivolt: Senza OffSet: 3840.82
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 919.00
Millivolt: Senza OffSet: 3987.30
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 940.00
Millivolt: Senza OffSet: 4089.84
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 905.00
Millivolt: Senza OffSet: 3918.95
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Vista nel browser
STATUS SENSORI

TEMPERATURA = 383.59 C

CALDO

LUCE = 574

LUCE
AGGIORNA SENSORI: CHECK

arduinh3nk3r

preso il tester e controllato circuito ...... tmp36gz non era colegato a massa.

nuovi risultati, tuttooooooo okkkkkkkkkkkkkkkkkkkk  (un po altina la temperatura ma va bene)
Grazie @ PoloP 

Lettura AnalogRead: 156.00
Millivolt: Senza OffSet: 261.72
Temperatura: OFF pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 152.00
Millivolt: Senza OffSet: 242.19
Temperatura: ON pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 153.00
Millivolt: Senza OffSet: 247.07
Temperatura: ON pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 153.00
Millivolt: Senza OffSet: 247.07
Temperatura: ON pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 151.00
Millivolt: Senza OffSet: 237.30
Temperatura: ON pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 153.00
Millivolt: Senza OffSet: 247.07
Temperatura: ON pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
Lettura AnalogRead: 153.00
Millivolt: Senza OffSet: 247.07
Temperatura: ON pin 13
_ _ _ _ _ _ _ _ _ _ _ _ _ _ 
ON pin 12
adesso creo in vb6 un'interfaccia che gestisca tutti questi dati che arrivano.

PaoloP

Prego.  ;)

Controlla il codice perché ho dimenticato di chiudere le parentesi tonde dopo il serial.print senza offset e in quello successivo della temperatura.

La Temperatura dovrebbe essere di 24.7 C.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Go Up