Go Down

Topic: letture errate sensore lm35dz (Read 4 times) previous topic - next topic

mattwolf

ciao ragazzi,
stavo lavorando con gli analog input del mio arduino e provando a misurare la temperatura ambiente con un lm35dz ho riscontrato il problema che misura valori tendenti ai 490 gradi mi chiedevo se qualcuno sa indicarmi la formula per convertire il valore letto da arduino in un valore di temperatura espressa in gradi centigradi..
girando in rete ho trovato : 5.0 * analogRead(inPin) * 10.0) / 1024.0...
è corretta la formula e considero diffettoso il sensore oppure potrei avere altro?dubito in quanto il codice è talmente breve che ci possa essere possibilità di errore..
grazie a chi risponde

pablos

Di norma quando si chiedono conferme su dati errati da un hardware esterno, si pubblica oltre che lo sketch anche lo schemino o un link che riporti quello usato. Il fatto che il codice sia breve non è esente da errori.
Se hai usato un codice corretto e uno schema di connessione corretto, il sensore è da cestinare.
Questo solo tu lo sai :)
no comment

mattwolf


Di norma quando si chiedono conferme su dati errati da un hardware esterno, si pubblica oltre che lo sketch anche lo schemino o un link che riporti quello usato. Il fatto che il codice sia breve non è esente da errori.
Se hai usato un codice corretto e uno schema di connessione corretto, il sensore è da cestinare.
Questo solo tu lo sai :)


ho provato con più codici e mi riporta sempre gli stessi valori..il più semplice usato è stato questo
Code: [Select]
01 int inPin = 2; // Pin di lettura
int temp = 0; // variabile temperatura

void setup()  {
Serial.begin(9600); // Avvia seriale a 9600 baud
}

void loop() { temp = ( 5.0 * analogRead(inPin) * 100.0) / 1024.0; // Conversione voltaggio sensore in temperatura
Serial.println(temp); // invio temperatura via serial monitor (accendere serial monitor per vedere val)
delay(1000); // delay tra una lettura e l'altra
}


per il collegamento su breadboard mi sono limitato a collegare il sensore al pin a2 e gnd e v+ alle uscite gnd e 5v

PaoloP

#3
Jan 15, 2013, 11:25 pm Last Edit: Jan 15, 2013, 11:35 pm by PaoloP Reason: 1
Prova a modificare il codice così:
Code: [Select]

int inPin = A2; // Pin di lettura
float temp = 0; // variabile temperatura

void setup()  {
Serial.begin(9600); // Avvia seriale a 9600 baud
}

void loop() {
temp = ( 5.0 * analogRead(inPin) / 1024.0) * 100.0; // Conversione voltaggio sensore in temperatura
Serial.println(temp); // invio temperatura via serial monitor (accendere serial monitor per vedere val)
delay(1000); // delay tra una lettura e l'altra
}




Usa float temp.
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

pablos

la formula è giusta, lo schema è questo http://www.tributemercury.com/wp/arduino-e-sensori-lm35-tmp36.html , non c'è molto altro da poterti dire se non fare misure a vuoto nel setup e fare la media di qualche valore prima di prenderlo in esame, questo serve solo per avere maggiori precisioni, ma non risolve il tuo dubbio, prova con un altro sensore

ciao
no comment

Go Up