Sensore di temperatura - domande

ciao ragazzi sto cercando di collegare questo sensore: http://www.robot-italy.com/product_info.php?cPath=15_51&products_id=205

lo schema con cui collegarlo è questo? http://www.arduino.cc/playground/ComponentLib/Thermistor

Come si scrive in codice questo? senti quanti volt ci sono all'interno (arduino è anche un voltmetro?) if ci sono 8v

comportati in un certo modo

Arduino ha 6 ingressi analogici, ovvero e' 6 voltmetri digitali per dirla in parole povere, la loro limitazione e' che leggono solo fino a 5 volts. Per usarlo con 8 volts devi interporre un partitore resistivo che abbassi la tensione ai livelli di arduino. Nel tuo caso bastano 2 resistenze identiche per fare un partitore che dimezzi la tensione, cosi se arduino legge 4 volts sai che sono 8. Usa resistenze di tolleranza 1%

@gbm il secondo link è per come usare un termistore per una misura di temperatura. E' una cosa abbastanza difficile se si vuole fare con precisione. Visto che tu hai un sensore di temperatura bello e pronto (lm35dz) devi usare questo semplicissimo tutorial:

http://pscmpf.blogspot.com/2008/12/arduino-lm35-sensor.html

o simili su google ne trovi tanti

Usare lm35 è facilissimo http://www.danielandrade.net/2008/07/05/temperature-sensor-arduino/ In teoria potresti collegarlo direttamente, ma se vedi che la lettura non è stabile metti una resistenza e un condensatore. Sei usi google trovi qualche migliaio di link sull'argomento.

la lettura per quello che mi riguarda, non e' mai stata molto stabile con quel sensore... in che modo (e dimensionati come) introdurresti resistenza e condensatore?

nel datasheet ci sono diversi esempi, io cmq utilizzo questo schema.
Ovviamente un ulteriore stabilizzazione software non guasta, diciamo una media di 5 valori.
http://img34.imageshack.us/img34/9940/35arduino.jpg

Grazie a tutti. ottimi input. :P il link related da uccio è utilissimo. Quel ragazzo è un genio.

Appena tornato a casa faccio alcune prove.

Cosa intendete con due resistenze identiche? basta che metta due resistenze qualsiasi dello stesso tipo una dietro l'altra?

Ciao a tutti ragazzi, usando questo codice:
/*
An open-source LM35DZ Temperature Sensor for Arduino. This project will be enhanced on a regular basis
(cc) by Daniel Spillere Andrade , http://www.danielandrade.net
http://creativecommons.org/license/cc-gpl
*/

int pin = 1; // analog pin
int tempc = 0,tempf=0; // temperature variables
int samples[8]; // variables to make a better precision
int maxi = -100,mini = 100; // to start max/min temperature
int i;

void setup()
{
Serial.begin(9600); // start serial communication
}

void loop()
{

for(i = 0;i<=7;i++){ // gets 8 samples of temperature

samples = ( 5.0 * analogRead(pin) * 100.0) / 1024.0;
_ tempc = tempc + samples*;_
_
delay(1000);_
_
}_
tempc = tempc/8.0; // better precision
tempf = (tempc * 9)/ 5 + 32; // converts to fahrenheit
if(tempc > maxi) {maxi = tempc;} // set max temperature
if(tempc < mini) {mini = tempc;} // set min temperature
Serial.print(tempc,DEC);
Serial.print(" Celsius, ");
Serial.print(tempf,DEC);
Serial.print(" fahrenheit → ");
Serial.print(maxi,DEC);
Serial.print(" Max, ");
Serial.print(mini,DEC);
Serial.println(" Min");
tempc = 0;
delay(1000); // delay before loop
_
}*_
Mi arrivano solo file di quadratini e non scritte utilizzando il serial monitor

Ciao a tutti ragazzi risolto il problema.
Semplicemente va regolata la velocità di trasmissione :wink: :wink:

Ho fatto il wiring senza resistenza.
Sembra essere preciso nell’ordine di 0.5 gradi.

questo mio codice risulta molto preciso

int pin = 0; 
int tempc = 0; 
int tempi = 0;
int tempd = 0;
int samples[20]; 
int i;

void setup()
{
  Serial.begin(9600); 
  for(i = 2;i<7;i++)
  {pinMode(i, OUTPUT);}
}

void loop()
{

  for(i = 0;i<=19;i++){ 
    samples[i] = ( 5.0 * analogRead(pin) * 1000.0) / 1024.0;
    tempc = tempc + samples[i];
    delay(50);
  }

  tempc = tempc/20.0;
  tempi = tempc/10;
  tempd = tempc - (tempi * 10);
  Serial.print("temperatura: ");
  Serial.print(tempi,DEC);
  Serial.print(",");
  Serial.print(tempd,DEC);
  Serial.println("C ");
    
  tempc = 0;
  delay(100); 
}