Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CURSO: Microcontroladores
Tema:
INFORME DE PROYECTO FINAL.
Integrantes:
1. Introducción 3
2. Objetivos 4
5
3. Marco Teórico
5
3.1 PIC 16F877A
6
3.2 Display LCD 16x2
7
3.3 Integrado L293D
8
3.4 Sensor ultrasónico
6. Bibliografía 17
18
7. Anexos
2
1.- INTRODUCCIÓN:
Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en
nuestra casa y en nuestra vida, en general. Los encontramos controlando el funcionamiento de
los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas y los
televisores de nuestro hogar. Las extensas áreas de aplicación de los microcontroladores, que
se pueden considerar ilimitadas, exigen un gigantesco trabajo de diseño y fabricación. En
nuestra formación como ingenieros es necesario conocer y manejar estos dispositivos tan
importantes.
Unas de las principales aplicaciones de la electrónica y los sistemas de control están en los juegos
electrónicos, estos sistemas cada vez son más complejos y cumplen con una mayor cantidad de
funciones. Además, estos sistemas desarrollados para juegos infantiles permiten un estudio de
posibles aplicaciones en la industria, pues los mismos dispositivos empleados pueden adaptarse
a condiciones industriales para funcionar de manera muy similar a como lo hacen en los juegos.
El proyecto desarrollado está basado en el uso del Microcontrolador 16f877A, el integrado
L293D y más. El trabajo que desarrollaremos usaremos dos 2 motores DC que se regulen de
acuerdo a lo que capte el sensor ultrasónico.
3
2.- OBJETIVOS:
2.1- OBJETIVO GENERAL
4
3.- Marco Teórico:
3.1 PIC 16F877A:
Los PIC16F87X forman una subfamilia de microcontroladores PIC (Peripheral Interface
Controller) de gama media de 8 bits, fabricados por Microchip Technology Inc.
Cuentan con memoria de programa de tipo EEPROM Flash mejorada, lo que permite
programarlos fácilmente usando un dispositivo programador de PIC. Esta característica facilita
sustancialmente el diseño de proyectos, minimizando el tiempo empleado en programar los
microcontroladores (µC).
Características Básicas:
Arquitectura RISC
El microcontrolador cuenta con solo 35 instrucciones diferentes
Todas las instrucciones son uni-ciclo excepto por las de ramificación
Frecuencia de operación 0-20 MHz
Oscilador interno de alta precisión
Calibrado de fábrica
Rango de frecuencia de 8MHz a 31KHz seleccionado por software
Voltaje de la fuente de alimentación de 2.0V a 5.5V
Consumo: 220uA (2.0V, 4MHz), 11uA (2.0 V, 32 KHz) 50nA (en modo de espera)
Ahorro de energía en el Modo de suspensión
35 pines de entrada/salida
Alta corriente de fuente y de drenador para manejo de LED
Resistencias pull-up programables individualmente por software
Interrupción al cambiar el estado del pin
Memoria ROM de 8K con tecnología FLASH
El chip se puede re-programar hasta 100.000 veces
Opción de programación serial en el circuito
El chip se puede programar incluso incorporado en el dispositivo destino.
256 bytes de memoria EEPROM
Los datos se pueden grabar más de 1.000.000 veces
368 bytes de memoria RAM
Convertidor A/D:
14 canales
resolución de 10 bits
3 temporizadores/contadores independientes
Temporizador perro guardián
Módulo comparador analógico con
Dos comparadores analógicos
Referencia de voltaje fija (0.6V)
Referencia de voltaje programable en el chip
Módulo PWM incorporado
Módulo USART mejorado
Soporta las comunicaciones seriales RS-485, RS-232 y LIN2.0
Auto detección de baudios
Puerto Serie Síncrono Maestro (MSSP)
5
Figura 1: Datasheet del PIC 16F877A
16 caracteres x 2 líneas.
Caracteres de 5x8 puntos.
Tamaño de caracter: 5.23 x 3 mm.
Puede mostrar letras, números, caracteres especiales, y hasta 8 caracteres creados por
el usuario.
Backlight de LED color azul.
Caracteres color blanco.
Interface paralela. Puede operar en modo de 8 bits, o de 4 bits para ahorrar pines del
microcontrolador.
Voltaje de alimentación: 5 V.
Los circuitos individuales se pueden usar de manera independiente para controlar cargas de
todo tipo y, en el caso de ser motores, manejar un único sentido de giro. Pero además,
cualquiera de estos cuatro circuitos sirve para configurar la mitad de un puente H.
El integrado permite formar, entonces, dos puentes H completos, con los que se puede realizar
el manejo de dos motores. En este caso el manejo será bidireccional, con frenado rápido y con
posibilidad de implementar fácilmente el control de velocidad.
7
3.4 Sensor ultrasónico:
Como su nombre lo indica, los sensores ultrasónicos miden la distancia mediante el uso de ondas
ultrasónicas. El cabezal emite onda ultrasónica y recibe la onda reflejada que retorna desde el
objeto. Los sensores ultrasónicos miden la distancia al objeto contando el tiempo entre la
emisión y la recepción.
Un sensor óptico tiene un transmisor y receptor, mientras que un sensor ultrasónico utiliza un
elemento ultrasónico único, tanto para la emisión como la recepción. En un sensor ultrasónico
de modelo reflectivo, un solo oscilador emite y recibe las ondas ultrasónicas, alternativamente.
Esto permite la miniaturización del cabezal del sensor.
Cálculo de la distancia:
Distancia L = 1/2 × T × C
donde L es la distancia, T es el tiempo entre la emisión y la recepción, y C es la velocidad del
sonido. (El valor se multiplica por 1/2 ya que T es el tiempo de recorrido de ida y vuelta).
8
3.5. Control de velocidad de un motor DC con PIC
Se trata de controlar la velocidad de un motor DC con una señal de impulsos. Variando el tiempo
en estado alto de la señal con respecto al tiempo en estado bajo conseguiremos reducir la
tensión media que le llega al motor y en consecuencia variaremos su velocidad.
Para hacer ese control con el PIC, en este proyecto emplearemos el modo PWM (Pulse Width
Modulation). Leeremos una tensión con el conversor AD del PIC proporcionada por un
potenciómetro como control manual de la velocidad. Este valor determinará el tiempo de los
pulsos en estado alto de la señal que controlará la velocidad.
9
Figura 8: Plano del Circuito (Proteus).
En el modo PWM el PIC compara el valor del registro CCP (en este caso el CCP2) con el valor del
timer1. En el registro CCP habremos cargado previamente un valor responsable de la velocidad
del motor. Cuando ambos coinciden, se produce la interrupción con la que gestionaremos el
cambio de estado de la señal hasta una nueva comparación con la cuenta del timer 1.
10
4.- Funcionamiento
El control del motor será de lazo abierto. se trata de aplicar el motor a un carro el cual tiene que
empezar a desacelerar cuando este cerca de un obstáculo, hasta frenar completamente antes
de que llegue a este. Finalmente, el carro retrocede una distancia determinada.
Para medir la distancia usamos el sensor ultrasónico ya especificado. Para ello habilitamos en el
PIC las entradas echo y trig en los pines b1 y b0 respectivamente, también hacemos lo mismo
con el timer 2 con la función setup_timer_2 (T2_DIV_BY_16, 255,1). con esto el PIC leerá el
tiempo que tarda en volver el sonido del ultrasónico Y LO CONVERTIRÀ EN DISTANCIA a través
DE LAS FORMULAS YA MENCIONADAS.
Para el proceso de lectura todo esto estará en un “while” el cual nos permite medir la distancia
a cada momento
La velocidad del motor dependerá de la lectura de la distancia del ultrasónico. Esto dependerá
del PWM ya habilitado. Para ello se ha tomado rangos de 60cm, y a partir de ahí empezará el
proceso de desaceleración hasta los 10 cm donde el motor se detendrá. Luego de esto
cambiamos la salida a través del pin 4 y con ayuda del l293d cambiamos el sentido de giro y
retrocedemos 50 cm, para ello usamos la velocidad máxima del motor(RPM), la longitud de arco
de la llanta y el tiempo de retroceso
Para la comprobación delos datos (velocidad y distancia) estos se imprimen en una pantalla lcd
ya habilitada con anterioridad. Esta mostrara inicialmente un saludo y luego nos mostrara en la
parte de arriba la distancia en cm y en la parte de abajo la velocidad en porcentajes.
4.4 Implementación.
11
4.5 En el siguiente apartado e mostrara el diagrama de flujo de bloques del algoritmo usado:
Diagrama de flujo
Inicio
Leer: tiempo
del ultrasónico
Distancia=
(tiempo/2)/(29)
15)
Distancia
>60
Velocidad al
D>50 &
100%
D<60
Velocidad al
80% D>40 &
D<50
Velocidad al
D>30 &
60%
D<40
Velocidad al
20% D>10 &
D<200
Velocidad al Velocidad al
10% 0%
Distancia=
(tiempo/2)/(29)
15) 12
Figura 9: Diagrama de Flujo.
A continuación se muestra el código que se utilizó en el software CCS-Compiler:
13
Figura 12: Programación de Control de Velocidad.
14
Figura 13: Circuito en Proteus.
15
5.- Conclusiones:
Para la etapa de potencia se acudió al L293D el cual sirve como puente h y amplificador
de corriente
se implementó usando dos llantas, dos motores, un chasis adecuado para el correcto
funcionamiento
16
6.- Bibliografía:
https://www.electronicoscaldas.com/displays-lcd-alfanumericos-y-graficos/131-
display-lcd-16x2-el-1602a.html
https://es.wikipedia.org/wiki/PIC16F87X
https://www.mikroe.com/ebooks/microcontroladores-pic-programacion-en-c-con-
ejemplos/caracteristicas-basicas-del-pic16f887
http://robots-argentina.com.ar/MotorCC_L293D.htm
17
7. Anexos:
18
Figura 16: Protoboard Implementado en Chasis de Carro.
19