MICROCONTROLADORES
LABORATORIO
N° 06
Lectura de Entradas Analógicas y Sensor de
temperatura.
I. 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.
II. COMPETENCIA
ESPECÍFICA DE LA SESION
●
Lecturas
analógicas de un canal del PIC
●
Configuración
de un Sensor de Temperatura
●
Lectura
analógica en una pantalla LCD
- CONTENIDOS
A TRATAR
●
Entradas
analógicas
●
Sensor
de Temperatura
I. MATERIALES
Y EQUIPO
●
CCS
Compiler instalado.
●
Entrenador
de PICS
●
Pantalla
LCD
●
PIC16F877A
●
Guía
de Laboratorio. El trabajo se desarrolla de manera GRUPAL.
●
PC
con Software de simulación.
Pantalla LCD

La pantalla LCD es un dispositivo empleado para la visualización de contenidos o información de una forma gráfica, mediante caracteres, símbolos o pequeños dibujos dependiendo del modelo. Está gobernado por un microcontrolador el cual dirige todo su funcionamiento.
Pantalla
LCD en PIC 16F877A
Para
realizar una programación en PIC C Compiler, se tiene que agregar una serie de
definiciones
o librerías que hacen bien simple el uso de las pantallas LCD estas son las que
se
indican a
continuación:
DEFINE
LCD_DREG PORTX ‘Se utiliza el
puerto x para los datos a enviar al LCD.
DEFINE
LCD_BITS 4 ‘Se
utilizarán 4 bits para el bus de datos.
DEFINE
LCD_DBIT 4 ‘Se
utilizarán los pines D4, D5, D6 y D7 del LCD.
DEFINE
LCD_RSREG PORTx ‘El pin RS del
LCD se conectará al puerto x.
DEFINE
LCD_RSBIT n ‘RS se
conectará en el pin n del puerto x.
DEFINE
LCD_EREG PORTx ‘El pin E del
LCDse conectará al puerto x.
DEFINE
LCD_EBIT m ‘E se conectará al pin m del puerto x.
DEFINE
LCD_LINES 2 ‘El LCD será
de 2 líneas (2×16).
Una vez
configurados los pines a utilizar, mediante la instrucción lcdout del PBP se
hace que las
pantallas LCD hagan algo.

TAREA PARA LA CASA
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é?.
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í “Tension: 3.456 v”.
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.
#include <16f877a.h> // Incluimos archivo con PIC a utilizar
#device adc=10 // Utilizamos 8 bits de RESOLUCION de lectura
#use delay (clock=20M) // Indicamos al compilador que trabajaremos a 20Mhz
#fuses HS, NOPROTECT, NOWDT // Configuración básica de los fusibles
#define LCD_ENABLE_PIN PIN_D3 //Definimos los pines a ser utilizados por la
#define LCD_RS_PIN PIN_D2 //pantalla LCD
#define LCD_RW_PIN PIN_A0
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7
#include <lcd.c> // Incluimos librería para manejar Pantalla LCD
int16 tem=0;
float lectura=0;
void main ()
{
lcd_init () ; // Inicializamos pantalla LCD
setup_adc_ports (AN0_AN1_AN3);
setup_adc (ADC_CLOCK_INTERNAL);
set_adc_channel (3); //lectura del canal analogico 3
delay_us (20);
WHILE (true)
{
tem = read_adc (); // Leemos Canal A0
tem = tem / 10.23 ;
delay_ms (20) ;
lcd_gotoxy(1,1);
printf (lcd_putc, "Temp: %3lu\337C", tem); // imprimimos valor
lectura = read_adc (); // Leemos Canal A0
lectura = lectura / 409.2 ;
delay_ms (20) ; // ubicamos cursos en LCD// esperamos para una correcta lectura
lcd_gotoxy(1,2);
printf (lcd_putc, "Voltaje: %1.2f V", lectura); // imprimimos valor
IF (tem <= 100)
{
output_high (PIN_C0);
output_low (PIN_C1);
output_low (PIN_C2);
}
IF (tem <= 90)
{
output_high (PIN_C1);
output_low (PIN_C0);
output_low (PIN_C2);
}
IF (tem <= 15)
{
output_high (PIN_C2);
output_low (PIN_C0);
output_low (PIN_C1);
}
}
}
TAREA DE INVESTIGACION
LM35
En esta entrada vamos a ver como armar un circuito para sensar la tempratura, que sale muy barato y se encuentra practicamente en cualquier lado.
Descripción y funcionamiento de las entradas analógicas.
Una señal
eléctrica analógica es aquella en la que los valores de la tensión o voltaje
varían constantemente y pueden tomar cualquier valor. En el caso de la
corriente alterna, la señal analógica incrementa su valor con signo eléctrico
positivo (+) durante medio ciclo y disminuye a continuación con signo eléctrico
negativo (–) en el medio ciclo siguiente.
Un sistema
de control (como un microcontrolador) no tiene capacidad alguna para trabajar
con señales analógicas, de modo que necesita convertir las señales analógicas
en señales digitales para poder trabajar con ellas.
La señal
digital obtenida de una analógica tiene dos propiedades fundamentales:
•Valores. Qué
valor en voltios define 0 y 1. En nuestro caso es tecnología TTL (0 – 5V)
•Resolución
analógica: nº de bits que usamos para representar con una notación digital una
señal analógica

VIDEO DEL LABORATORIO Y MODIFICACIONES
TAREA DE INVESTIGACIÓN:
Averigüe
cómo funciona un sensor LM35 y cómo se puede leer dicha temperatura en una
pantalla LCD.
El LM35 es un circuito electrónico sensor que puede medir temperatura. Su salida es analógica, es decir, te proporciona un voltaje proporcional a la temperatura. El sensor tiene un rango desde −55°C a 150°C. Su popularidad se debe a la facilidad con la que se puede medir la temperatura. Incluso no es necesario de un microprocesador o microcontrolador para medir la temperatura. Dado que el sensor LM35 es analógico, basta con medir con un multímetro, el voltaje a salida del sensor.
El LM35 funciona en el rango de alimentación comprendido entre 4 y 30 voltios.
Podemos conectarlo a un conversor Analógico/Digital y tratar la medida digitalmente, almacenarla o procesarla con un μ Controlador o similar.
Sensor DS18B20
El DS18B20 es un sensor digital de temperatura que utiliza el protocolo 1-Wire para comunicarse, este protocolo necesita solo un pin de datos para comunicarse y permite conectar más de un sensor en el mismo bus.
El sensor DS18B20 es fabricado por Maxim Integrated, el encapsulado de fabrica es tipo TO-92 similar al empleado en transistores pequeños.
OBSERVACIONES:
•Una señal
digital es un tipo de señal generada por algún tipo de fenómeno
electromagnético en que cada signo que codifica el contenido de la misma puede
ser analizado en término de algunas magnitudes que representan valores
discretos, en lugar de valores dentro de un cierto rango.
•Los
sistemas digitales, como por ejemplo un microcontrolador, usan la lógica de dos
estados representados por dos niveles de tensión eléctrica.
•Por
abstracción, dichos estados se sustituyen por ceros y unos, lo que facilita la
aplicación de la lógica y la aritmética binaria.
•El potenciómetro
nos ayuda a regular la interpretación de voltaje y temperatura,
.
CONCLUSIONES
•En una
señal digital están las transiciones de alto a bajo y de bajo a alto,
denominadas flanco de bajada y de subida, respectivamente.
•En una
señal digital, se denomina flanco a la transición del nivel bajo al alto
(flanco de subida) o del nivel alto al bajo (flanco de bajada).
•Podemos
modificar las librerías según las necesidades, incluir nuevas funciones, nuevas
prestaciones. Debemos adecuarnos al hardware existente, modificando el software
en función al hardware.
•Podemos
mejorar procesos existentes, hacer estos que sean más amigables a los usuarios
finales. Para esto debemos hacer un análisis de las exigencias de los usuarios
y de lo que actualmente se tiene.
Revisado. No hay video
ResponderEliminar