Vamos a ver como poder realizar mediciones de temperatura con nuestro Arduino y el sensor LM35. Dicho sensor es un sensor analógico de la casa Texas Instruments, que nos permite realizar medidas de temperatura de una forma bastante precisa a través de las entradas analógicas de nuestro Arduino (pines A0-A5) sin necesidad de emplear ninguna librería especifica para su programación.
Como se puede ver es un sensor que presenta únicamente 3 pines (VCC, GND y Data), por ello su conexión es muy sencilla. Además presenta las siguientes características:
- Está calibrado directamente en grados Celsius.
- Rango de medición de -55ºC a 150ºC.
- La tensión de salida es proporcional a la temperatura. Esto quiere decir que 1ºC equivale a 10mV.
- Presenta una precisión garantizada de 0.5ºC a 25ºC.
- Presenta un rango de alimentación entre 4 y 30V.
- Presenta baja impedancia de salida.
- Presenta baja corriente de alimentación (60uA).
- No necesita de circuitos adicionales para su calibración.
- Presenta un coste bastante reducido.
Aquí podéis ver una imagen de como conectaríamos este sensor a nuestro Arduino para poder realizar las mediciones de temperatura:
Como siempre os dejo los archivos Fritzing de este ejemplo, el datasheet del sensor y el código empleado para su programación. Lo podéis descargar desde este enlace: http://www.mediafire.com/?atycg43ubfnnunn
Aquí tenéis un código de ejemplo, de como obtener tanto el voltaje leído por el sensor, como los grados centígrados y los grados fahrenheit, además de mostrar los valores máximos y mínimos para cada una de las medidas mencionadas.
/* Sketch de ejemplo para testear el sensor de temperatura analógico LM35 Escrito por Regata para www.tallerarduino.wordpress.com MODO DE CONEXIÓN DEL SENSOR Conectamos el pin 1 que corresponde a la alimentación del sensor con los 5V del Arduino Conectamos el pin 2 que corresponde al pin de datos del sensor con cualquier pin analógico del Arduino A0 Conectamos el pin 3 que corresponde al pin de masa (GND) del sensor con el pin GND del Arduino */ int temp = 0; //Pin analógico A0 del Arduino donde conectaremos el pin de datos del sensor LM35 float maxC = 0, minC = 100, maxF = 0, minF = 500; //Variables para ir comprobando maximos y minimos void setup() { Serial.begin(9600); //Iniciamos comunicación serie con el Arduino para ver los resultados del sensor //a través de la consola serie del IDE de Arduino } void loop() { float gradosC, gradosF; //Declaramos estas variables tipo float para guardar los valores de lectura gradosC = (5.0 * analogRead(temp) * 100.0) / 1024; //Esta es la funcion con la que obtenemos la medida del sensor // en ºC gradosF = (gradosC * 1.8) + 32; //Multiplicando los ºC por 1.8 y luego sumando 32 obtenemos grados Fahrenheit //Mostramos mensaje con valores actuales de temperatura, asi como maximos y minimos de cada uno de ellos Serial.print("Medidas actuales\n"); Serial.print("C: "); Serial.print(gradosC); Serial.print("\tF: "); Serial.print(gradosF); //Comprobacion de maximos y minimos de temperatura if (maxC < gradosC) maxC = gradosC; if (gradosC < minC) minC = gradosC; if (maxF < gradosF) maxF = gradosF; if (gradosF < minF) minF = gradosF; Serial.print("\nMedidas maximas\n"); Serial.print("C: "); Serial.print(maxC); Serial.print("\tF: "); Serial.print(maxF); Serial.print("\nMedidas minimas\n"); Serial.print("C: "); Serial.print(minC); Serial.print("\tF: "); Serial.print(minF); Serial.print("\n\n"); delay(2000); //Usamos un retardo de 2 segundos entre lectura y lectura }
Aquí podéis ver una captura de las medidas actuales que toma el sensor, así como las medidas mínimas y máximas capturadas por el sistema:
Espero que os sirva de ayuda la entrada!!
Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.