Ho provato vari programmi per questo sensore ma durante la lettura trovo che la temperatura non sia precisissima. Affianco un termometro preciso e trovo che la temperatura sia sbagliata di 1°C a volte anche 1,5°C. Si può risolvere in qualche modo?
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature for Device 1 is: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?
// You can have more than one IC on the same bus.
// 0 refers to the first IC on the wire
}
ho rilevato anche io differenze del genere,
io ho pensato a problemi di autoriscaldamento, parliamo di un chip che e' alimentato e che per svolgere i calcoli necessari per darti in uscita un valore digitale dovra' pur fare dei calcoli interni e si riscalda.
Esistono cmq le versioni con certificato di calibrazione, costano molto di piu', spero che appunto tengano conto dell'autoriscaldamento.
C'e' poi il problema del posizionamento, se lo si mette attaccato fisicamente ad un progetto, ed il rpogetto stesso si riscalda, e' normale che questo influisca. Io l'ho docuto lasciare penzolante al di fuori dello scatolo del progetto ed e' migliorato molto.
La cosa piu' semplice, se verifichi che e' piu' o meno stabile, gli sottrai quel grado via sw e via. Dipende dal grado di precisione che ti occorre
E' già distante dal progetto e ora mi dà una differenza di 1°C. Potrei sottrargli 1° dalla lettura però come faccio a sapere se ad esempio a 30 ° la differenza aumenta? o se a 10° la differenza diminuisce?
PaoloP:
Lo devi calibrare con misure di riferimento tipo il ghiaccio fondente (0 °C) e l'acqua bollente (100 °C).
azzz mi hai fatto venire in mente i 200 post invernali col mio amico tori-siciliano, dopo migliaia di prove (e decine di grafici), arrivato al dunque, gli si ruppe un pin dell'LM35 ]
e perché dovrebbe rovinarsi? se è in grado di leggere fino a 150°C vuol dire che non fonderà di sicuro nell'acqua bollente, men che meno subirà danni dal ghiaccio. Piuttosto, nel caso del liquido, fai attenzione a non immergere i pin, la conducibilità dell'acqua potrebbe crearti problemi.