Medidor de temperatura con Arduino

Introducción

Los sensores de temperatura son muy comunes en proyectos de electrónica, desde estaciones meteorológicas hasta sistemas de control de climatización. En este tutorial, usaremos el sensor analógico LM35, que es muy popular por su sencillez y precisión. Leeremos el voltaje que nos entrega y lo convertiremos a grados Celsius para mostrarlo en el Monitor Serie del IDE de Arduino.

Materiales Necesarios

  • Placa Arduino UNO
  • Sensor de Temperatura LM35
  • Protoboard
  • Cables Jumper

Esquema de Montaje

El LM35 tiene 3 pines. Mirándolo de frente (la parte plana), los pines son: 1 (VCC), 2 (Vout), 3 (GND). La conexión es directa.

Captura de pantalla 2025-10-23 190212

Conexiones:

  • Pin 1 (VCC) del LM35 → 5V del Arduino.
  • Pin 2 (Vout) del LM35 → Pin analógico A0 del Arduino.
  • Pin 3 (GND) del LM35 → GND del Arduino.

Código Arduino

// Pin donde conectamos la salida del sensor LM35
const int sensorPin = A0;

void setup() {
  // Iniciamos la comunicación serial para ver los resultados en el ordenador
  Serial.begin(9600);
}

void loop() {
  // 1. Leer el valor del sensor (devuelve un número entre 0 y 1023)
  int lectura = analogRead(sensorPin);
  
  // 2. Convertir la lectura a voltaje (0-1023 -> 0-5V)
  //    La fórmula es: (lectura * 5.0) / 1023.0
  float voltaje = lectura * (5.0 / 1023.0);
  
  // 3. Convertir el voltaje a grados Celsius
  //    El sensor LM35 entrega 10mV (0.01V) por cada grado Celsius
  float temperaturaC = voltaje * 100.0;
  
  // 4. Mostrar la temperatura en el Monitor Serie
  Serial.print("Temperatura: ");
  Serial.print(temperaturaC);
  Serial.println(" °C");
  
  // Esperamos un segundo antes de la siguiente lectura
  delay(1000);
}

Cómo Funciona el Montaje

El funcionamiento de este circuito se basa en la interacción entre el sensor LM35 y el conversor analógico-digital (ADC) del Arduino.

1. El Sensor LM35: Voltaje por Temperatura

El LM35 es un sensor de temperatura de precisión. Su característica clave es que su voltaje de salida (en el pin Vout) es linealmente proporcional a la temperatura en grados Celsius.

La relación específica es: $10 \text{ milivoltios (mV)} \text{ por cada } 1 \text{ grado Celsius } (^\circ\text{C})$.

  • Si la temperatura es $0^\circ\text{C}$, el LM35 saca $0 \text{ mV}$.

  • Si la temperatura es $25^\circ\text{C}$, el LM35 saca $25 \times 10 \text{ mV} = 250 \text{ mV} \text{ (o } 0.25 \text{ V)}$.

  • Si la temperatura es $100^\circ\text{C}$, el LM35 saca $100 \times 10 \text{ mV} = 1000 \text{ mV} \text{ (o } 1.0 \text{ V)}$.

 

2. El Arduino: Lectura y Conversión

El pin Vout del sensor está conectado al pin A0 del Arduino. El Arduino no puede «entender» $0.25 \text{ V}$ directamente; necesita convertir ese voltaje analógico en un número digital que pueda procesar.

Aquí es donde entra el Conversor Analógico-Digital (ADC) del Arduino UNO:

  • Lectura: El ADC mide el voltaje que llega al pin A0.

  • Resolución: El ADC del UNO es de 10 bits. Esto significa que puede representar el voltaje de entrada como un número entero entre 0 y 1023.

  • Mapeo: Por defecto, el Arduino mide voltajes en un rango de $0\text{V}$ a $5\text{V}$.

    • Una lectura de $0\text{V}$ corresponde a un valor digital de 0.

    • Una lectura de $5\text{V}$ corresponde a un valor digital de 1023.

 

3. El Código: La «Traducción»

El trabajo del sketch (el código que cargas al Arduino) es «traducir» ese número digital (0-1023) de nuevo a la temperatura original. El proceso en el código es el siguiente:

  1. Leer el valor del ADC: Se usa la función analogRead(A0). Esto devuelve un valor entre 0 y 1023.

    • Ejemplo: Si la temperatura es $25^\circ\text{C}$, el LM35 saca $0.25\text{V}$. El ADC leerá un valor de (0.25V / 5.0V) * 1023 \approx 51.

  2. Convertir el valor a Voltaje: El código debe revertir el proceso del ADC para saber qué voltaje representa ese número 51.

    • voltaje = (valorLeido / 1023.0) * 5.0;

    • Ejemplo: `voltaje = (51 / 1023.0) * 5.0 \approx 0.249\text{V}$ (cercano a los $0.25\text{V}$ originales).

  3. Convertir el Voltaje a Temperatura: Ahora que el código «sabe» el voltaje, aplica la regla del LM35 ($10 \text{ mV} / ^\circ\text{C}$, o $0.01 \text{ V} / ^\circ\text{C}$).

    • temperaturaC = voltaje / 0.01; (o lo que es lo mismo: temperaturaC = voltaje * 100;)

    • Ejemplo: `temperaturaC = 0.249 * 100 \approx 24.9^\circ\text{C}$.

  4. Mostrar en Monitor Serie: Finalmente, se usa Serial.println(temperaturaC) para enviar el resultado al ordenador y que podamos verlo en el Monitor Serie.