Código de Arduino para un sensor de temperatura LM75A

Código de Arduino para un sensor de temperatura LM75A

En este tutorial, aprenderemos cómo usar el sensor de temperatura LM75A con un Arduino para medir la temperatura tanto en Celsius como en Fahrenheit. El sensor LM75A se comunica mediante el protocolo I2C, lo que facilita su integración con las placas Arduino. Al final de este tutorial, tendrás una configuración funcional que muestra lecturas de temperatura cada segundo.

Para aprovechar al máximo este tutorial, recomiendo ver el video asociado, que ofrece una guía visual sobre la configuración y la implementación del código (en el video en el minuto 20:29).

Hardware explicado

El sensor de temperatura LM75A es un sensor digital capaz de medir la temperatura ambiente con alta precisión. Funciona mediante el protocolo de comunicación I2C, lo que permite conectar varios sensores al mismo bus. El sensor cuenta con una función de apagado por sobretemperatura, que puede ayudar a ahorrar energía cuando no está en uso.

Este sensor suele estar disponible ya sea como un chip independiente o como un módulo PCB. El módulo incluye pines esenciales como VCC, GND, SDA y SCL, que son necesarios para la comunicación con el Arduino. Al usar este sensor, es importante asegurarse de que las conexiones sean correctas y seleccionar la dirección I2C adecuada para la comunicación.

Detalles de la hoja de datos

FabricanteNXP / Texas Instruments
Número de piezaLM75A
Voltaje lógico/E/S2.7 V a 5.5 V
Tensión de alimentación2.7 V a 5.5 V
Corriente de salida (por canal)3 mA
Corriente de pico (por canal)10 mA
Guía de frecuencia PWMNo aplica
Umbrales lógicos de entrada0.3 VCC (alto), 0.2 VCC (bajo)
Caída de tensión / RDS(on)/ saturación0.5 V máx.
Límites térmicos-55 °C a +125 °C
PaqueteSOIC-8 / TSSOP
Notas / variantesDisponible en diferentes direcciones I2C

  • Asegúrese de que la dirección I2C correcta esté configurada en su código.
  • Utilice resistencias pull-up en las líneas SDA y SCL si es necesario.
  • Alimente el sensor con un voltaje estable (2.7 V a 5.5 V).
  • Vigile el sobrecalentamiento; el sensor puede operar hasta 125 °C.
  • Manipule el sensor con cuidado para evitar daños durante la instalación.

Instrucciones de cableado

Arduino_wiring_LM75A_bb

Para conectar el sensor de temperatura LM75A a tu Arduino, comienza conectando el pin de tierra del sensor al pin de tierra de tu Arduino. A continuación, conecta el pin VCC del sensor al pin de 5V del Arduino. Para la comunicación I2C, conecta el pin SDA del sensor (usualmente marcado en verde) al pin A4 del Arduino y el pin SCL (usualmente marcado en azul) al pin A5. Si estás usando un modelo de Arduino diferente, asegúrate de conectar los pines I2C correctos; por ejemplo, en un Arduino Mega, SDA se conecta al pin 20 y SCL al pin 21.

Asegúrese de conectar correctamente los pines correspondientes si está utilizando el LM75A como chip independiente en lugar de como módulo: el pin 1 se conecta a A4 (SDA), el pin 2 se conecta a A5 (SCL), el pin 4 se conecta a tierra y el pin 8 se conecta a VCC. Deje los demás pines sin conectar. Esta configuración asegura que el sensor pueda comunicarse correctamente con el Arduino.

Ejemplos de código y guía paso a paso

El siguiente código inicializa el sensor LM75A y lee la temperatura cada segundo. El identificador clave en este código eslm75a_sensor, que es una instancia de la clase LM75A. Esta instancia se utiliza para obtener lecturas de temperatura del sensor.

LM75A lm75a_sensor(false, false, false);

Esta línea crea una instancia de la clase LM75A, pasando parámetros que representan el estado de los pines A0, A1 y A2. El estado predeterminado se puede establecer enfalsesi estos pines no se usan.

En elsetup()En la función, inicializamos la comunicación serie a 9600 baudios, lo cual es crucial para mostrar las lecturas de temperatura en el monitor serie.

void setup(void) {
  Serial.begin(9600);
  Serial.println("Robojax LM75A Test");
}

Este fragmento configura el monitor serie, permitiéndonos ver las lecturas de temperatura a medida que se imprimen cada segundo.

En elloop()En la función, recuperamos la temperatura en grados Celsius y comprobamos si hay errores. Si la temperatura es válida, la imprimimos junto con su equivalente en grados Fahrenheit.

float temperature_in_degrees = lm75a_sensor.getTemperatureInDegrees();
if (temperature_in_degrees == INVALID_LM75A_TEMPERATURE) {
  Serial.println("Error while getting temperature");
} else {
  Serial.print("Temperature: ");
  Serial.print(temperature_in_degrees);
  Serial.print(" degrees (");
  Serial.print(LM75A::degreesToFahrenheit(temperature_in_degrees));
  Serial.println(" Fahrenheit)");
}

Este segmento de código demuestra cómo manejar la lectura de temperatura y mostrarla tanto en grados Celsius como en Fahrenheit en el monitor serie. Incluye manejo de errores para lecturas inválidas.

Para ver el código completo, consulte la sección de carga debajo del artículo.

Demostración / Qué esperar

Una vez que hayas completado el cableado y subido el código a tu Arduino, deberías ver las lecturas de temperatura mostradas en el monitor serie cada segundo. Puedes probar la respuesta del sensor tocándolo o usando una pistola de aire caliente, y deberías observar que las lecturas cambian en consecuencia. Ten cuidado con la polaridad invertida al conectar el sensor, ya que puede dañar el módulo.

Imágenes

LM75a-1
LM75a-1
LM75a-3
LM75a-3
LM75a-12
LM75a-12
Arduino_wiring_LM75A_bb
Arduino_wiring_LM75A_bb
127-Arduino code for an LM75A temperature sensor
Idioma: C++
¡Copiado!

Recursos y referencias

Aún no hay recursos.

Archivos📁

Archivo de Fritzing