MICROCONTROLADORES
LABORATORIO 06
Lectura de entradas analógicas y sensor de temperatura
- Capacidad Terminal
- Utilizar al microcontrolador en aplicaciones de control electrónico.
- Desarrollar y ejecutar programas en un microcontrolador PIC
- Programar y configurar interfaces básicas del microcontrolador.
2. Competencia Específica de la Sesión
Entrenador de PICS
PIC16F877A

- Lecturas analógicas de un canal del PIC.
- Configuración de un sensor de temperatura.
- Lectura analógica de una pantalla LCD.

4. Fundamento Teórico
DESCRIPCIÓN Y FUNCIONAMIENTO DE UNA ENTRADA ANALÓGICA
- Una señal analógica es una magnitud que puede tomar cualquier valor dentro de un intervalo, esta característica es muy importante a la hora de trabajar con sensores, debido a que estos entregan valores de tensión para reflejar la variable física que está midiendo.
- El CAD conversor analógico digital PIC , permite medir señales analógicas en forma digital, para ello el PIC cuenta con pines por donde le llegará la señal analógica, estos pines deben configurarse como entradas analógicas, el conversor analógico digital PIC cuenta con un circuito que carga un condensador interno al PIC con la tensión analógica que le está llegando a la entrada analógica, luego la tensión almacenada en el condensador lo convierte en un número binario de 10 bits que representará la tensión almacenada en el condensador, este número binario se guarda en sus registros ADRESH y ADRESL de 8 bits cada uno pero estos actúan como un solo registro de 16 bits, en el registro ADRESH se guardan los bits mas significativos y en el registro ADRESL se guardan los bits menos significativos, el número que representa la tensión almacenada en el condensador y guardado en forma binaria dentro de estos registros será de 10 bits para el PIC16F877A, la cantidad de bits de este número depende del conversor analógico digital PIC del microcontrolador PIC utilizado.
CONVERSOR ANÁLOGO DIGITAL ADC
- El conversor análogo digital se utiliza para convertir señales análogas provenientes de sensores conectados a la entrada del microcontrolador en señales digitales para ser mostradas en indicadores tal como una pantalla lcd.
- El microcontrolador PIC19F886 como la mayoría de los microcontroladores de la gama media cuenta un módulo conversor análogo digital de 8 a 10 bits seleccionables por el programador.
- La tensión de entrada puede variar entre 0 a 5 volts si utilizamos el adc en el modo de 10 bits significa que tenemos 10 bits para representar digitalmente la señal analógica de entrada, como 2^10=1024, tendremos los valores de entre 0 a 1024 para representar las tensiones de 0 a 5v.
5.Desarrollo de tareas indicadas en el laboratorio:
Los parámetros a configurar son:
- Donde dice “#device adc=8” cambie por “#device adc=10”; convierta la variable “lectura” en entero de 16 bits y la línea printf cambie “%4u” por “%4lu”. ¿Cuál es el cambio mostrado en la pantalla LCD? ¿por qué?.
ANTES DE MODIFICAR SE MUESTRA LO SIGUIENTE
MODIFICAMOS EL CÓDIGO COMO SE PIDE
SE MUESTRA EL SIGUIENTE CAMBIO
- Como se puede observar al incrementar la cantidad de bits, podemos ampliar nuestro rango de lecturas en 1024 , es decir, podemos tener lecturas de 0 a 1023, esto debido a la siguiente relación : (2^10) -1.
- Convierta el valor leído en valor de voltaje de 0 a 5 voltios. Para esto cambie la variable “lectura” a variable tipo float y configure su forma de mostrarse en el LCD. Luego, en la función While(true), añada la instrucción “lectura = lectura / 204.6”. Cambie las instrucciones para que en la pantalla del LCD aparezca algo así “Tensión: 3.456 v”.
MODIFICAMOS EL CÓDIGO COMO SE PIDE
SE MUESTRA LO SIGUIENTE EN LA PANTALLA LCD
- Finalmente agregue una condición IF para que si el valor de voltaje supera 4.5 voltios, mostrar el mensaje “WARNING” en la primera línea del LCD.
MODIFICAMOS EL CÓDIGO AGREGANDO LA CONDICIÓN
SE MUESTRA LO SIGUIENTE
RETO PARA EL LABORATORIO:
- Se va a simular las lecturas de un sensor de temperatura, y debe mostrarse dos lecturas en la pantalla LCD, una será de voltaje equivalente a esa lectura , en el rango de (0-2.5 V); y la otra lectura será equivalente en mediciones de temperatura , en el rango de ( 0 -100 °C). También se va a tener tres led's indicadores , el led rojo sólo se prenderá si la temperatura es mayor que 90°C, el led verde sólo se prenderá si la temperatura es menor a 15 °C, y el led amarillo sólo se prenderá cuando la temperatura esté comprendido entre 90 y 15.
MOSTRAMOS LA SOLUCIÓN MEDIANTE EL CÓDIGO PROPUESTO
MOSTRAMOS LA SOLUCIÓN MEDIANTE SIMULACIÓN
- Para nuestro caso se implemento como representación de los colores en los led's las distintas salidas en "C"; teniendo así que el LED ROJO es representado en la salida "C1", el LED AMARILLO es representado en la salida "C2" y el LED VERDE es representado por la salida "C3".
5.1.TRABAJO DE INVESTIGACIÓN
- Averigüe cómo funciona un sensor LM35 y cómo se puede leer dicha temperatura en una pantalla LCD.
- Este sensor LM35 es un sensor de temperatura digital. A diferencia de otros dispositivos como los termistores en los que la medición de temperatura se obtiene de la medición de su resistencia eléctrica, el LM35 (parecido a un transistor de gama baja) es un integrado con su propio circuito de control, que proporciona una salida de voltaje proporcional a la temperatura.
- La salida del LM35 es lineal con la temperatura, incrementando el valor a razón de 10mV por cada grado centígrado. El rango de medición es de -55ºC (-550mV) a 150ºC (1500 mV). Su precisión a temperatura ambiente es de 0,5ºC.
- Los sensores LM35 son relativamente habituales en el mundo de los aficionados a la electrónica por su bajo precio, y su sencillez de uso, tiene tan solo 3 pines.
- Calibrado en centígrados °C.
- Factor de escala lineal 10.0 mV/°C
- Rango de medición de -55° a +150°C
- Ideal para aplicaciones remotas.
- Funciona de 4 - 30 V.
- Consumo menor a 60 uA.
- Baja impedancia.
- Para poder leer dicha temperatura primero iniciamos con la declaración de una variable tipo flotante (float) y utilizamos el ADC en modo de 10 bits. Además mostramos la programación para el reconocimiento del sensor:
- Averigüe cómo funciona un sensor DS18B20 y cómo se puede leer dicha temperatura en una pantalla LCD.
- El termómetro digital DS18B20 provee mediciones de temperatura en grados Celsius en formato digital utilizando una comunicación mediante el bus «1-Wire®», ocupando solo una línea de datos del microcontrolador. Su rango de operación es de -55°C a +125°C con una precisión de ±0.5°C sobre el rango -10°C / +85°C. Cada DS18B20 tiene un número de serie único de 64-bit, que permite utilizar múltiples dispositivos en el mismo bus 1-Wire®. Es posible armar redes de sensores gracias a esta característica y distribuirlos en conveniencia para cada aplicación.
- Principales características: requiere solo un pin de comunicación, número de serie de 64-Bit único almacenado en ROM, puede ser alimentado desde la línea de datos (3.0V a 5.5V).
- PIN DQ: definir pin de datos del microcontrolador.
- CONEXIÓN: único o red. Dependiendo si vamos a utilizar uno o más sensores.
- La lectura se guarda en un registro de 16 bits con una resolución de 0.1ºC. El valor almacenado tiene el formato «temperatura x 10», es decir que el decimal 205 representa un valor de 20.5ºC. Además, debido al rango de medidas del sensor es necesario declarar y utilizar un bit para el signo negativo. Este bit adoptará el valor 0 para temperaturas negativas y 1 para temperaturas positivas.
- El bloque incluye la posibilidad de convertir el registro automáticamente a BCD para utilizar en mensajes de una pantalla LCD.
- En el caso de leer el código ROM debemos utilizar 8 registros de 8 bits para almacenar el resultado.
6. EVIDENCIA DE TRABAJO
7. OBSERVACIONES Y RECOMENDACIONES
OBSERVACIONES
- Para obtener un rango de salida de 0 – 100, se usó la siguiente relación 1023/100 = 10.23, el cual determina el factor al cual debe ser dividido nuestra lectura para obtener nuestro rango apropiado.
- Para poder realizar el símbolo de temperatura en grados centígrados (°) y mostrarlo en la pantalla LCD, se usó la siguiente combinación de carácter “\ 377”.
- Es importante determinar el rango de medición al trabajar con señales analógicas, ya para ello se debe determinar el número de bits de resolución, teniendo que el rango de lectura será de 0 a 2bits-1.
RECOMENDACIONES
- Es importante no almacenar la lectura analógica en una sola variable para la realización del problema planteado (variable de temperatura y variable de voltaje), ya que puede haber conflictos en el almacenamiento de un determinado valor requerido.
- Para poder mostrar solamente entero en la variable grados (Temperatura) en el LCD, siendo esta variable de tipo decimal, se usó la siguiente expresión “%1.0f”, con el cual indicamos que se muestre sólo la parte y ningún decimal.
- En el problema planteado como se pedía un rango de salida de 0-2.5 Voltios, se usó la siguiente relación para la determinación del factor de escala en nuestra lectura analógica: 1023/ 2.5, obteniendo un valor de 409.2.
8. BIBLIOGRAFÍA
- Marin, Francisco (2007) Diseño basado en microcontroladores. Málaga: Universidad de Málaga. (004.16/M26D)
- Pereira, Fabio (2007) Microcontroladores PIC. Sao Paulo:s.n. (005.13/P43)
- José María Angulo Usátegui [y otros]. (2007) Electrónica digital y microprogramable .Madrid: Thomson. (621.381/A37/I)
9. INTEGRANTE
Condori Ortíz, Daniel Agustín C5 - A




Revisado. OK
ResponderEliminar