Fata de senzorul de temperatura LM335, senzorul TMP36 se conecteaza direct la tensiunea de alimentare.
Un articol cu multe explicatii se gaseste la TMP36 Temperature Sensor de pe site-ul Adafruit Learning System:
Am realizat si eu montajul si apoi am incarcat primul sketch de acolo obtinand:
Deoarece valorile citite variaza prea mult, am facut o mica modificare la sketch, cititnd 10 valori la 200ms intre ele si apoi facand o medie.
Sketch-ul modificat de mine este urmatorul:
// original sketch from http://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor
// adapted sketch by niq_ro from http://nicuflorica.blogspot.com
//TMP36 Pin Variables
int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to A0
//the resolution is 10 mV / degree centigrade with a
//500 mV offset to allow for negative temperatures
/*
* setup() - this function runs once when you turn your Arduino on
* We initialize the serial connection with the computer
*/
// added part by niq_ro
float vmed = 0;
float ve = 0;
void setup()
{
Serial.begin(9600); //Start the serial connection with the computer
//to view the result open the serial monitor
}
void loop() // run over and over again
{
vmed = 0;
ve=0;
for (int j = 0; j < 10; j++) {
//getting the voltage reading from the temperature sensor
int reading = analogRead(sensorPin);
// converting that reading to voltage, for 3.3v arduino use 3.3
float voltage = reading * 5.0;
voltage /= 1024.0;
vmed = vmed + voltage;
delay(200);
}
ve = vmed/10;
// print out the voltage
Serial.print(ve); Serial.println(" volts");
// now print out the temperature
float temperatureC = (ve - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
//to degrees ((voltage - 500mV) times 100)
Serial.print(temperatureC); Serial.println(" degrees C");
// now convert to Fahrenheit
float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
Serial.print(temperatureF); Serial.println(" degrees F");
delay(1000); //waiting a second
}
merci, a mers din prima, salutari
RăspundețiȘtergere