En el siguiente tutorial se aprenderá a utilizar un sensor de temperatura con Arduino, el cual será el TMP102. Con la ayuda de una tarjeta Arduino nos permitirá visualizar en un display LCD la temperatura en grados centígrados. Este sensor, tiene una precisión mayor que los sensores comúnmente utilizados.
El TMP102 se comunica con el protocolo I2C. El sensor tiene una precisión de 0.5°C, una resolución de 12 bits, y es compatible con otros microcontroladores. El rango recomendado de alimentación para el TMP102 es de 1.4v a 3.6v. Además, posee un rango de medición de -25°C a 85°C. Puede ser aplicado en la industria por su tamaño y fácil manejo, así como en la vida cotidiana para computadoras portátiles e inclusive en la instrumentación médica.

MATERIALES:
- TMP102
- Tarjeta Arduino (UNO)
- Display LCD 16×2
- Software Arduino
- Fuente de alimentación
- Cables macho-macho
- Potenciómetro 10kΩ


Diagrama de conexión
I2C es un protocolo de comunicación en el que hay solo dos vías, SDA y SCL. Serial Data (SDA) es por la que se manda y se recibe información. Serial Clock (SCL) es por donde se envía la señal de reloj. Este protocolo ayuda a disminuir el cableado entre los componentes. Al igual que a facilitar la comunicación de un dispositivo maestro con diversos esclavos.
Como se puede observar la pantalla LCD requiere de un potenciómetro ya que este servirá para regular el contraste. Se debe asegurar de conectar bien todos los pines del LCD para evitar problemas de brillo y contraste.

Ingresar al Software de Arduino

Una vez dentro del software se procederá a realizar el código.
También podríamos agregar más detalles a la programación si se desea un mejor monitoreo. Ya sea una conversión a grados Fahrenheit o Kelvin. Así como una alarma, ya sea de bajas o altas temperaturas.
En este caso se agregó una salida en el pin 4 la cual se activará solo cuando el sensor pase los 32°C. Se simulará con un LED lo que podría llegar a ser un sistema de enfriamiento (por ejemplo un ventilador o aire acondicionado).
Código TMP102 Temperatura con Arduino

Cómo funciona el código I2C.
Con este protocolo la información se envía por medio de mensajes. Cada uno es dividido por secciones de datos, estas secciones contienen la dirección a la que se dirige e información del mensaje. Además, tienen condiciones de inicio, paro, lectura, escritura y los bits ACK y NACK.
1) ¿Que bibliotecas?
Se requieren las bibliotecas «Wire.h» y «LiquidCrystal.h»
2) ¿Que funciones?
Wire.begin Transmission(0x49): Inicializa la transmisión de datos desde el dispositivo «0x49».
Wire.write(0x00): Escribe datos a un dispositivo.
Wire.endTransmission(): Señala el final de la transferencia de datos.
Wire.requestFrom(0x49,2): Solicita 2 bytes para el dispositivo con la dirección «0x49».
Wire.available(): Retorna el número de bytes disponibles.
Wire.read(): Recibe el byte como carácter
3) ¿Por qué solicita 2 bytes?
Tiene una resolución de 12 bits por lectura y regresan 8 bits (1 byte). Por lo tanto, para representar 12 bits se requieren 2 bytes.
Al tener 12 bits en un espacio de 2 bytes, el segundo byte se recorre 4 lugares a la derecha. Mientras que el primero se recorre 4 a la izquierda. Finalmente con la función «OR» se combinan y se obtiene el resultado.
temp[1] = temp[1] >> 4;
tempc = ((temp[0] << 4) | temp [1] );
ATENCIÓN
Te recordamos visitar nuestros tutoriales relacionados con el convertidor voltaje a corriente y la electrónica como, amplificador diferencial, capacitor, LM317, JFET vs MOSFET, Amplificador de Instrumentación, Op-Amp, puente de wheatstone, MOSFET, PCB, CNY70 y más.
Por ultimo, si te gusto este tutorial, favor de dejar un comentario, lo agradeceremos mucho. Por lo tanto te recomendamos visitar nuestra pagina principal para que veas los nuevos tutoriales en HETPRO. Tenemos tutoriales de Arduino, PCBs, programación y muchos más. En conclusión, esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivar 4.0 Internacional.