Arduino - Sensor de temperatura TMP36

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×TMP36 Temperature Sensor
1×Protoboard
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de temperatura TMP36

Disposición de pines

El sensor de temperatura TMP36 tiene tres pines:

  • Pin GND: debe conectarse a GND (0V)
  • Pin VCC: debe conectarse a VCC (5V)
  • Pin +Vs: es la fuente de alimentación para el sensor, que puede variar entre 2.7V y 5.5V.
  • Pin Vout: la señal de salida es una tensión que es linealmente proporcional a la temperatura; debe conectarse a un pin analógico en Arduino.
Disposición de pines del sensor de temperatura TMP36

Cómo funciona

El TMP36 proporciona una tensión linealmente proporcional a la temperatura en grados Celsius. El factor de escala de salida del TMP36 es de 10 mV/°C. Esto significa que la temperatura se calcula dividiendo la tensión (en mV) en el pin de salida entre 10.

Diagrama de Cableado

Diagrama de cableado del sensor de temperatura TMP36 de Arduino

This image is created using Fritzing. Click to enlarge image

Cómo programar para el sensor de temperatura TMP36

  • Obtén el valor ADC del sensor de temperatura usando la función analogRead().
int adcVal = analogRead(PIN_TMP36);
  • Convertir el valor del ADC a voltaje
// Replace 5.0 with 3.3, if you are using a 3.3V Arduino float voltage = adcVal * (5.0 / 1024.0);
  • Convierte el voltaje a una temperatura en grados Celsius
float tempC = (voltage - 0.5) * 100;
  • (Opcional) Convertir de grados Celsius a Fahrenheit
float tempF = tempC * 9 / 5 + 32;

Código de Arduino

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-tmp36-temperature-sensor */ #define ADC_VREF 5.0 // in volt #define ADC_RESOLUTION 1024.0 #define PIN_TMP36 A0 void setup() { Serial.begin(9600); } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino
  • Sujeta el sensor con tu mano
  • Ver el resultado en el Monitor serie
COM6
Send
TMP36 Temperature: 26.31°C ~ 79.36°F TMP36 Temperature: 26.44°C ~ 79.59°F TMP36 Temperature: 26.50°C ~ 79.70°F TMP36 Temperature: 26.56°C ~ 79.81°F TMP36 Temperature: 27.06°C ~ 80.71°F TMP36 Temperature: 27.75°C ~ 81.95°F TMP36 Temperature: 28.37°C ~ 83.07°F TMP36 Temperature: 29.00°C ~ 84.20°F TMP36 Temperature: 29.56°C ~ 85.21°F TMP36 Temperature: 30.00°C ~ 86.00°F TMP36 Temperature: 30.31°C ~ 86.56°F TMP36 Temperature: 30.62°C ~ 87.12°F TMP36 Temperature: 30.87°C ~ 87.57°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mejorando la precisión de la temperatura

En el código anterior, usamos por defecto la tensión de referencia del ADC (5V~5000mV). Podemos aumentar la resolución de la temperatura cambiando la tensión de referencia a 3.3V (3300mV). Este voltaje de referencia se puede cambiar conectando entre sí los pines 3.3V y AREF, como se muestra en el diagrama a continuación.

Diagrama de cableado del sensor de temperatura TMP36 para Arduino

This image is created using Fritzing. Click to enlarge image

La tabla siguiente muestra la diferencia entre usar una referencia de 5000 mV y 1100 mV.

Vref(mV) 5000 mV (by default) 3300 mV
Reading Resolution 5000/1024 = 4.88 mV 3300/1024 = 3.22 mV
Temperature Resolution 0.49°C 0.32°C

Código de Arduino

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-tmp36-temperature-sensor */ #define ADC_VREF 3.3 // in volt #define ADC_RESOLUTION 1024.0 #define PIN_TMP36 A0 void setup() { Serial.begin(9600); analogReference(EXTERNAL); // set the voltage reference from VREF pin } void loop() { // get the ADC value from the TMP36 temperature sensor int adcVal = analogRead(PIN_TMP36); // convert the ADC value to voltage float voltage = adcVal * (ADC_VREF / ADC_RESOLUTION); // convert the voltage to the temperature in Celsius float tempC = (voltage - 0.5) * 100; // convert the Celsius to Fahrenheit float tempF = tempC * 9 / 5 + 32; // print the temperature in the Serial Monitor: Serial.print("TMP36 Temperature: "); Serial.print(tempC); // print the temperature in Celsius Serial.print("°C"); Serial.print(" ~ "); // separator between Celsius and Fahrenheit Serial.print(tempF); // print the temperature in Fahrenheit Serial.println("°F"); delay(1000); }

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!