Esto es un pequeño manual para crear un termómetro con Arduino a partir de un sensor de temperatura LM35. Para ello vamos a necesitar el siguiente material:
- Arduino UNO
- Resistencia de 220 Ω
- Pantalla LCD de 16×2
- Potenciómetro de 10KΩ
- Sensor de temperatura LM35
Sensor de temperatura LM35
El sensor de temperatura LM35 tiene el siguiente patillaje.
A parte del patillaje debemos saber como funciona este sensor. Es un sensor de temperatura que tiene una precisión de 1ºC de entre -55ºC y 155ºC. Básicamente lo que recibimos es una tensión comprendida entre -550mV y 1500mV y para saber la temperatura debemos convertir este voltaje en la temperatura correspondiente. Para ello utilizamos la siguiente formula:
(5.0 * analogRead(PIN_SENSOR) * 100.0) / 1024.0
En el código he simplificado la formula.
Circuito electrónico del sensor de temperatura y la pantalla LCD
He omitido la explicación del conexionado de la pantalla LCD ya que conlleva una explicación especifica. Para más información en el post de Como conectar una pantalla LCD a Arduino UNO.
El circuito de montaje del termómetro es el siguiente:
Código Arduino del termómetro digital
Podemos descargar el código aquí, es el siguiente:
/** Termometro usando un sensor LM35 que muestra por un LCD de 16x2 la temperatura **/ #include <LiquidCrystal.h> //Declarar LCD y pines LiquidCrystal lcd(7,6,5,4,3,2); void setup() { //Definir las dimensiones del LCD (16x2) y los caracteres que deben salir en las lineas lcd.begin(16,2); lcd.print("Temperatura"); lcd.setCursor(0,1); lcd.print("C="); } void loop() { float centigrados = leerGradosC(); //Sacamos por pantalla los grados lcd.setCursor(2,1); lcd.print(centigrados); //Lo realizamos cada segundo delay(1000); } float leerGradosC() { int dato; float c; //Leemos los datos analogicos del sensor de temperatura dato = analogRead(A0); //Convertimos el dato de entrada en grados C segun la formula c = (500.0 * dato / 1024); return c; }
Finalmente el resultado del termómetro digital Arduino es el siguiente:
Encima del Arduino tengo colocada una shield para otra cosa que tengo en proyecto que ya os mostraré cuando la realice pero en este caso seria innecesaria, debéis conectar directamente al Arduino.