Offline
Newbie
Karma: 0
Posts: 47
|
 |
« on: January 15, 2013, 04:54:47 pm » |
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
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #1 on: January 15, 2013, 05:00:43 pm » |
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 
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 47
|
 |
« Reply #2 on: January 15, 2013, 05:07:10 pm » |
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 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
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3019
|
 |
« Reply #3 on: January 15, 2013, 05:25:33 pm » |
Prova a modificare il codice così: 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.
|
|
|
|
« Last Edit: January 15, 2013, 05:35:43 pm by PaoloP »
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #4 on: January 15, 2013, 05:28:00 pm » |
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
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #5 on: January 15, 2013, 05:29:58 pm » |
Che stai dicendo Paolo, i pin analog vanno da A0 ad A5 nel tuo disegno, lui lo può mettere dove gli pare sulle porte analog, su A2 perchè non dovrebbe andare?
posso benissimo scrivere analogRead(2) è inteso che si tratta dell' A2
|
|
|
|
« Last Edit: January 15, 2013, 05:33:56 pm by pablos »
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3019
|
 |
« Reply #6 on: January 15, 2013, 05:33:30 pm » |
Che stai dicendo Paolo, i pin analog vanno da A0 ad A5 nel tuo disegno, lui lo può mettere dove gli pare sulle porte analog su A2 perchè non dovrebbe andare?
Leggendo di fretta mi era parso di capire che l'avesse collegato al pin 2 e non al pin A2. Ho corretto.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 47
|
 |
« Reply #7 on: January 15, 2013, 05:33:56 pm » |
Prova a modificare il codice così: int inPin = A0; // 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) * 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 }  Usa float temp. abbi pazienza ma sarà l'orario..oltre ad aver sostituito 2 con A0 cosa ci sarebbe di diverso?
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #8 on: January 15, 2013, 05:35:45 pm » |
Leggendo di fretta mi era parso di capire che l'avesse collegato al pin 2 e non al pin A2.
Per un istante ho pensato anch'io che lo avesse messo sul pin digital 2, ma scrivendo analogread non c'e' errore 
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 47
|
 |
« Reply #9 on: January 15, 2013, 05:36:09 pm » |
Che stai dicendo Paolo, i pin analog vanno da A0 ad A5 nel tuo disegno, lui lo può mettere dove gli pare sulle porte analog su A2 perchè non dovrebbe andare?
Leggendo di fretta mi era parso di capire che l'avesse collegato al pin 2 e non al pin A2. Ho corretto. non so di preciso cosa sia accaduto ma ora funziona nella norma e rileva un temperatura verosimile a quella della mia stanza...senza nessuna modifica..misteri dell'elettronica...
|
|
|
|
|
Logged
|
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3019
|
 |
« Reply #10 on: January 15, 2013, 05:38:49 pm » |
Se stai usando lo sketch che ho postato, io ho modificato il tipo della variabile temp da int a float.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 47
|
 |
« Reply #11 on: January 15, 2013, 05:41:53 pm » |
Se stai usando lo sketch che ho postato, io ho modificato il tipo della variabile temp da int a float.
non avevo notato il float  comunque facendo la modifica nessuna variazione eccezion fatta per la presenza di due cifre decimali e una lettura dei valori meno monotona non segna fisso 20 gradi ma oscilla tra i 20 e i 21.50
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #12 on: January 15, 2013, 05:43:25 pm » |
Ho una scheda cablata di pulsanti, led, display, 4 lm35, relays, tsop, ho caricato lo schetch originale di mattwolf, mi indica 23° ...è giusto, deve solo vedere la parte hardware che sia corretta o che non sia guasta
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Cagliari
Offline
Faraday Member
Karma: 49
Posts: 3019
|
 |
« Reply #13 on: January 15, 2013, 05:45:20 pm » |
Allora dovrebbe provare a rimettere il sensore sul A2.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 47
|
 |
« Reply #14 on: January 15, 2013, 05:45:50 pm » |
Ho una scheda cablata di pulsanti, led, display, 4 lm35, relays, tsop, ho caricato lo schetch originale di mattwolf, mi indica 23,85° ...è giusto, deve solo vedere la parte hardware che sia corretta o che non sia guasta
evidentemente è il mio sensore che da i numeri in tutti i sensi...poco male..ne comprerò un altro per essere sicuro e poi proseguo nell'ampliare questo segmento di progetto..un grazie a tutti!
|
|
|
|
|
Logged
|
|
|
|
|
|