Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PUEBLA
INGENERIA EN AUTOMATIZACION Y
AUTOTRONICA
TRANSDUCTORES, FILTRADO Y
ADECUACIONES
ALUMNOS:
DAVID LOPEZ TELA
PEDRO MELQUIADES REGINO
JOSE EDUARDO JIMENEZ NAVA.
JESUS ALEJANDRO GUTIERREZ APARICIO
Objetivo general.
En esta práctica es aplicar conocimientos acerca de la resolución del sensor LM35, con el cual
vamos a calcular la velocidad del sonido con base al sensor LM35 y su señal analógica ya que
aplicaremos una fórmula para la velocidad del sonido con base a la temperatura que marca el
sensor para después mandar a imprimir estos datos a una pantalla LCD.
Objetivos específicos:
• Diseñar el circuito con base al PIC16F877A para captar la señal analógica del
sensor
Introducción.
Desarrollo.
En esta práctica se utilizaran los siguientes componentes:
Potenciómetro de 10K o 1K
Pantalla LCD de 16X2
PIC16F877A
Sensor LM35
Protoboard
Fuente de alimentación de 5 V ,Jumpers , Cristal de 4MHZ y 2 capacitores de 22 pF
Vamos a iniciar en ensamblar los componentes en la protoboard ya que primero vamos a
identificar el puerto analógico que vamos a ocupar para recibir la señal analógica del sensor
hacia el PIC ya que vamos a elegir el puerto RA0 ya que lo vamos a configurar después en la
programación después vamos a identificar los puerto que vamos a ocupar para la pantalla LCD
ya que seria el puerto RD1, RD2, RD4, RD5, RD6, RD7 estos puertos son los que vamos a ocupar
la pantalla.
Para conectar bien la pantalla vamos identificar VDD y VSS ya que son sus alimentaciones y “Vo
o Vee” lo vamos a conectar con un potenciómetro para regular el brillo de la letras, el “RS” va ir
conectado al puerto RD1 para habilitar la señal de instrucciones el “RW” va ir conectado a tierra
para deshabilitar ya que no lo vamos a ocupar, el “E” va ir conectado en le puerto RD2 para
habilitar la escritura de la LCD ya que vamos a mandar datos para que los escriba en la LCD y se
vea , D4 va conectado al RD4, D5 al RD5, D6 al RD6, D7 al RD7 ya esos con la líneas de
comunicación para mandar los datos.
Ilustración 1.1
Como se muestra en la ilustración 1.1 es el conectado del potenciómetro y para identificar los
pines ya que van de 1 al 16 como lo marca en la imagen.
Ilustración 2
En la ilustración 2 se puede mostrar la manera como se debe conectar los componentes como
lo es la pantalla LCD, el sensor LM35 y el cristal para que funcione adecuadamente el circuito ya
que ahora vamos a pasar la parte de programación el MPLAB de acuerdo a lo que hemos
planteado como la lecturar del sensor LM35 y como los puerto de comunicación de la LCD hacia
el PIC.
Para iniciar la programación primero hay que abrir la aplicación de MPLAB y crear un nuevo
proyecto con base al PIC16F877A para esto lo vamos a programar en el lenguaje C y elegimos el
compilador adecuado.
Ilustración 3
Como en la ilustración 3 el código va iniciar con incluir librerías adecuadas el PIC y vamos a
configurar los bits que tiene este PIC en este caso apagamos el perro guardián también el
oscilador que vamos a ocupar y también declaramos la librería de LCD_12ª.h esa la vamos a
ocupar para el control de la LCD y para mandar imprimir nuestros resultados.
Después mas abajo declaramos unas varias de tipo flotante para la señal analogía ya convertida
a digital del sensor LM35 para así hacer unas operaciones y que queden en grados Centígrados
y para calcular la velocidad del sonido y por ultimo una variable de tipo “char” de 10 bits para
mandar imprimir nuestros resultados como la del sensor y la velocidad del sonido para la pantalla
LCD.
Ilustración 4
En la Ilustración 4 se observa que agregamos una función con el void adc_config() ya que en esta
función vamos a declarar nuestro puerto RA0 como puerto analógico y no digital ponemos
nuestro voltaje de referencia así también lo habilitamos como pin de entrada también se
enciende el convertidor analógico a digital y justificamos nuestro resultado a la derecha
elegimos el tiempo que se va tardar en hacer la conversión y elegimos el canal que se va estar
leyendo la señal analógica que en este caso es el 0.
Ilustración 5
En la Ilustración 5 es la parte de void main donde se va estar ejecutando todo lo que hemos
planteado en este caso primero se inicia con la declaración de puerto que es el TRISD le ponemos
un cero para que se declare como puertos de salida luego le ponemos el PORTD igual le
ponemos 0 para que limpie todo el puerto y no haya una señal ya que estos puertos son para la
pantalla LCD.
Después declaramos la función adc_config () para hacer nuestra conversión analógico a digital,
luego se ponen los comandos Lcd_Init que es para iniciar la pantalla , LCD_Clear() es para limpiar
el puerto , LCD_Set_Cursor (1,1) en este elegimos la columna y la fila donde va empezar a escribir
nuestros datos que queremos imprimir en la pantalla LCD y por ultimo el LCD_Write_string() este
se ocupara para mandar números o palabras que se van a escribir en la LCD.
Por ultimo abrimos un While y habilitamos el GO_DONE con un 1 para que este encendido y
haga la conversión luego se abre otro While con otro GO_DONE y este va confirmar si sigue
siendo a 1 va seguir encendido el convertidos después con nuestras variables declaradas
anteriormente vamos agarrar la de “adc” ahí vamos aguardar la conversión que ahora va estar
en digital y es de 10 bits lo cuales están guardados en el ADRESH Y ADRESL para esto los
sumamos los dos ADRES Y movemos 8 pasos a la izquierda el ADRESH para que a la hora de
sumar de una resolución de 10 bits.
Para obtener el voltaje de la resolución que da el sensor que por cada 10mv es igual a 1 Cº se
ocupa la siguiente formula:
𝑉𝑆 = 331 + 0.6(𝑇)
ya que solo sustituimos el valor de temperatura con el resultado obtenido y los multiplicamos
por 0.6 y le sumamos 331 y esa es la velocidad del sonido con base a la temperatura y lo
mandamos a imprimir con los comandos de la LCD de acuerdo a la librería
Pero primero ponemos un sprintf que no va ayudar almacenar nuestro resultado en caracteres
para esto le `pone o.2 y f para que se muestre dos decimales y va ser un valor de tipo flotante
que se va mandar a imprimir en la LCD.
Resultados:
Ilustración 7 Ilustración 6
Ilustración 10
Ilustración 11
Ilustración 9 Ilustración 8
La única problemática que tuvimos como equipo fue en la parte de las conexiones
del PIC16F877A hacia la pantalla LCD ya que dependía de nuestra protoboard ya que
esta tenía problemas y ocurrían falsos contactos de la protoboard lo cual provocaba
que a veces la pantalla no marcaba nada o no se alcanzaban a ver bien las letras en
la pantalla LCD.