TeslaToy Práctica: Termómetro digital.
Introducción El sensor de temperatura LM35 (http://www.ti.com/lit/ds/symlink/lm35.pdf) (http://www.ti.com/lit/ds/symlink/lm35.pdf) es un sensor lineal que entrega 10 mv por cada grado centígrado medido, por ejemplo, a una temperatura de 20 grados, el sensor entregará .2 volts. Nótese que la señal entregada por el sensor puede tomar valores de entre 0 y 1.5 volts (150 °C), hasta el momento, sólo se ha trabajado con señales digitales (con valores de 0 o 5 volts), entonces ¿Cómo será posible leer señales cuyo valor oscila entre los 0 y 1.5 volts? La respuesta es sencilla: La función analogRead() nos permite leer voltajes analógicos, dicha función utiliza el convertidor analógico-digital (ADC por sus siglas en inglés) de la placa Arduino y es tolerante a señales desde 0v hasta 5v. En la siguiente imagen se señalan los pines de la placa Arduino que son compatibles con la función analogRead(), estos son A0, A1, A2, A3, A4 y A5.
La función analogRead()
Esta función recibe un solo parámetro: el pin analógico desde el cual se leerá un voltaje, los valores permitidos son A0, A1, A2, A3, A4 o A5 . analogRead devuelve un valor entre 0 y 1023 y es directamente proporcional al voltaje leído. Cabe destacar que el ADC de Arduino tiene una resolución de 10 bits, por lo tanto 210 = 1024 valores distintos (entre 0 y 1023 hay 1024 valores enteros distintos). A continuación se muestra una ecuación para convertir valores leídos por analogRead() a voltaje.
=
() 1023
∗5
Sustituyendo valores en esta ecuación podemos darnos cuenta de que al leer un valor de 1023 con analogRead, el voltaje leído será = 5, de lo contrario, cuando se lee un valor 0, el voltaje leído será = 0.
Objetivos
Aprender a utilizar función analogRead para leer una señal analógica. Aprender a convertir valores entregados por analogRead a voltaje.
Material a utilizar
1 Arduino UNO
1 Sensor de temperatura LM35.
Esquema de conexiones
Desarrollo de la práctica Una vez conectado el sensor de temperatura, cargar el código fuente adjunto a la placa Arduino y abrir la terminal serial.
El programa inicia declarando el pin 13 como salida e i nicializando el protocolo de comunicación serial a 9600 bits por segundo. En la función loop se hace la lectura del sensor de temperatura y el voltaje leído es convertido a °C en un solo paso. La ecuación para leer el sensor de temperatura y convertir el voltaje leído se obtiene de
=
( 0) 1023.0
∗ 5 ∗ 100
El 100 corresponde a la cantidad de unidades de 10 mv que hay en 1 volt. Al simplificar la multiplicación de 5 * 100 se obtiene el valor 500. Nota: El divisor de analogRead(A0) es 1023.0 (con punto decimal) esto es para que el resultado de la división sea un número con punto flotante, si no se usa el punto decimal, el resultado de la división es un número entero (0 en la mayoría de los casos).
La lectura de la temperatura se realiza cada segundo y es mostrada en la terminal serial, adicionalmente, cuando la temperatura alcanza los 50 °C el led conectado al pin 13 es encendido y el mensaje La temperatura es muy alta!! X es mostrado en el terminal serial, donde X es la temperatura leída. Cuando la temperatura es menor a 50 °C el led conectado al pin 13 permanece apagado. “
”