Modifications

Sauter à la navigation Sauter à la recherche
5 774 octets ajoutés ,  6 janvier 2013 à 12:43
Ligne 57 : Ligne 57 :  
Then connect your multimeter in DC voltage mode to ground and the remaining pin 2 (middle). If you've got a TMP36 and its about room temperature (25°C), the voltage should be about 0.75V. Note that if you're using a LM35, the voltage will be 0.25V
 
Then connect your multimeter in DC voltage mode to ground and the remaining pin 2 (middle). If you've got a TMP36 and its about room temperature (25°C), the voltage should be about 0.75V. Note that if you're using a LM35, the voltage will be 0.25V
   −
[[Fichier:TMP36-test.jpg]]
+
[[Fichier:TMP36-test.jpg|450px]]
    
The sensor is indicating that the temperature is 26.3°C also known as 79.3°F
 
The sensor is indicating that the temperature is 26.3°C also known as 79.3°F
Ligne 63 : Ligne 63 :  
You can change the voltage range by pressing the plastic case of the sensor with your fingers, you will see the temperature/voltage rise.
 
You can change the voltage range by pressing the plastic case of the sensor with your fingers, you will see the temperature/voltage rise.
   −
[[Fichier:TMP36-test2.jpg]]
+
[[Fichier:TMP36-test2.jpg|450px]]
    
With my fingers on the sensor, heating it up a little, the temperature reading is now 29.7°C / 85.5°F
 
With my fingers on the sensor, heating it up a little, the temperature reading is now 29.7°C / 85.5°F
Ligne 69 : Ligne 69 :  
Or you can touch the sensor with an ice cube, perferrably in a plastic bag so it doesn't get water on your circuit, and see the temperature/voltage drop.
 
Or you can touch the sensor with an ice cube, perferrably in a plastic bag so it doesn't get water on your circuit, and see the temperature/voltage drop.
   −
[[Fichier:TMP36-test3.jpg]]
+
[[Fichier:TMP36-test3.jpg|450px]]
    
I pressed an ice-cube against the sensor, to bring the temperature down to 18.6°C / 65.5°F  
 
I pressed an ice-cube against the sensor, to bring the temperature down to 18.6°C / 65.5°F  
 +
 +
== Utiliser le senseur ==
 +
=== Connecter un senseur de température ===
 +
Connecting to a Temperature Sensor
 +
These sensors have little chips in them and while they're not that delicate, they do need to be handled properly. Be careful of static electricity when handling them and make sure the power supply is connected up correctly and is between 2.7 and 5.5V DC - so don't try to use a 9V battery!
 +
 +
They come in a "TO-92" package which means the chip is housed in a plastic hemi-cylinder with three legs. The legs can be bent easily to allow the sensor to be plugged into a breadboard. You can also solder to the pins to connect long wires. If you need to waterproof the sensor, you can see below for an Instructable for how to make an excellent case.
 +
 +
=== Lecture de la donnée analogique ===
 +
Unlike the FSR or photocell sensors we have looked at, the TMP36 and friends doesn't act like a resistor. Because of that, there is really only one way to read the temperature value from the sensor, and that is plugging the output pin directly into an Analog (ADC) input.
 +
 +
[[Fichier:TMP36-breadboard.jpg]]
 +
 +
Remember that you can use anywhere between 2.7V and 5.5V as the power supply. For this example I'm showing it with a 5V supply but note that you can use this with a 3.3v supply just as easily. No matter what supply you use, the analog voltage reading will range from about 0V (ground) to about 1.75V.
 +
 +
If you're using a 5V Arduino, and connecting the sensor directly into an Analog pin, you can use these formulas to turn the 10-bit analog reading into a temperature:
 +
 +
''Voltage at pin in milliVolts = (reading from ADC) * (5000/1024)''
 +
 +
This formula converts the number 0-1023 from the ADC into 0-5000mV (= 5V)
 +
 +
If you're using a 3.3V Arduino, you'll want to use this:
 +
 +
''Voltage at pin in milliVolts = (reading from ADC) * (3300/1024)''
 +
 +
This formula converts the number 0-1023 from the ADC into 0-3300mV (= 3.3V)
 +
 +
Then, to convert millivolts into temperature, use this formula:
 +
 +
''Centigrade temperature = [(analog voltage in mV) - 500] / 10''
 +
 +
=== Un thermomètre simple ===
 +
This example code for Arduino shows a quick way to create a temperature sensor, it simply prints to the serial port what the current temperature is in both Celsius and Fahrenheit.
 +
<nowiki>    //TMP36 Pin Variables
 +
    int sensorPin = 0; //the analog pin the TMP36's Vout (sense) pin is connected to
 +
    //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
 +
    */
 +
    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
 +
    {
 +
    //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;
 +
    // print out the voltage
 +
    Serial.print(voltage); Serial.println(" volts");
 +
    // now print out the temperature
 +
    float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
 +
    //to degrees ((volatge - 500mV) times 100)
 +
    Serial.print(temperatureC); Serial.println(" degrees C");
 +
    // now convert to Fahrenheight
 +
    float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
 +
    Serial.print(temperatureF); Serial.println(" degrees F");
 +
    delay(1000); //waiting a second
 +
    }</nowiki>
 +
 +
=== Obtenir une meilleure précision ===
 +
For better results, using the 3.3v reference voltage as ARef instead of the 5V will be more precise and less noisy
 +
 +
This example from the light&temp datalogging tutorial has a photocell but you can ignore it
 +
 +
[[Fichier:TMP36-BetterPrecision-Breadboard.jpg]]
 +
 +
{{Ambox
 +
| type      = delete
 +
| image      = [[File:StopHand.png|40px|alt=Stop]]
 +
| textstyle  = color: red; font-weight: bold; font-style: italic;
 +
| text      = To use the 3.3v pin as your analog reference, don't forget to specify "analogReference(EXTERNAL)" in your setup as in the code below.
 +
}}
 +
 +
<nowiki>    /* Sensor test sketch
 +
    for more information see http://www.ladyada.net/make/logshield/lighttemp.html
 +
    */
 +
    #define aref_voltage 3.3 // we tie 3.3V to ARef and measure it with a multimeter!
 +
    //TMP36 Pin Variables
 +
    int tempPin = 1; //the analog pin the TMP36's Vout (sense) pin is connected to
 +
    //the resolution is 10 mV / degree centigrade with a
 +
    //500 mV offset to allow for negative temperatures
 +
    int tempReading; // the analog reading from the sensor
 +
    void setup(void) {
 +
    // We'll send debugging information via the Serial monitor
 +
    Serial.begin(9600);
 +
    // If you want to set the aref to something other than 5v
 +
    analogReference(EXTERNAL);
 +
    }
 +
    void loop(void) {
 +
    tempReading = analogRead(tempPin);
 +
    Serial.print("Temp reading = ");
 +
    Serial.print(tempReading); // the raw analog reading
 +
    // converting that reading to voltage, which is based off the reference voltage
 +
    float voltage = tempReading * aref_voltage;
 +
    voltage /= 1024.0;
 +
    // print out the voltage
 +
    Serial.print(" - ");
 +
    Serial.print(voltage); Serial.println(" volts");
 +
    // now print out the temperature
 +
    float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset
 +
    //to degrees ((volatge - 500mV) times 100)
 +
    Serial.print(temperatureC); Serial.println(" degrees C");
 +
    // now convert to Fahrenheight
 +
    float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
 +
    Serial.print(temperatureF); Serial.println(" degrees F");
 +
    delay(1000);
 +
    }</nowiki>
    
<small>Source: [http://learn.adafruit.com/tmp36-temperature-sensor AdaFruit]</small>
 
<small>Source: [http://learn.adafruit.com/tmp36-temperature-sensor AdaFruit]</small>
29 910

modifications

Menu de navigation