PROGRAMACIÓN DE MICROCONTROLADORES
Laboratorio N° 10
Programación e Implementación del
Aplicativo II
Lab. N° 10 Programación e Implementación del Aplicativo II
MICROCONTROLADORES
IV Ciclo
Laboratorio Nº9 y 10
IMPLEMENTACIÓN DEL APLICATIVO
Integrantes del equipo:
CÓRDOVA VENTE, Luis Diego
CHAVEZ PINEDA, Luis Rodrigo
ALVA ROJAS, Vagnert Alexander
QUEVEDO GARCIA, Edderson
Profesor: Ciriaco Martínez, Cesar
Fecha de realización: 17 de octubre
Fecha de entrega: 07 de noviembre
2019 – II
pág. 2
Lab. N° 10 Programación e Implementación del Aplicativo II
Programación e Implementación del Aplicativo II
Objetivos
1. Utilizar las instrucciones para programar al microcontrolador PIC16F877.
2. Utilizar software de desarrollo proporcionada por el fabricante.
3. Utilizar software de simulación digital.
4. Implementar el aplicativo en el protoboard y corroborar su buen funcionamiento.
Introducción
Los simuladores, en la electrónica, permiten realizar infinidad de pruebas en los cálculos
electrónicos, lógica de programación, etc. Esto permite validar el diseño electrónico y la
programación del microcontrolador. En caso hubiera algún error este se corrige modificando el
diseño o realizando otra lógica en la programación cuantas veces se quiera. Una vez logrado el
diseño y la programación correcta recién se realiza la implementación.
Con este tipo de softwares y junto a un microcontrolador, resulta posible el desarrollo de distintos
tipos de aplicativos. Una paletizadora se caracteriza por ser un complejo sistema con el que se
consigue la puesta en palet de distintos tipos de objetos, logrando una mejor organización y un
ahorro de espacio.
Preparación
Para la realización de este laboratorio se requiere la lectura previa de la información proporcionada
para el curso, como el texto y el manual del fabricante.
Equipos y Materiales
• Computadora
• Software de desarrollo
• Proyector multimedia
• Texto del curso
• Manual del fabricante
• Motores paso a paso
• Puente H del motor paso a paso.
• Motor DC.
• Driver del motor DC.
• Diodos LED.
• PIC16F877.
• Grabador PICKIT 3.
• Cables de conexión
pág. 3
Lab. N° 10 Programación e Implementación del Aplicativo II
Seguridad
Trabajar con Seguridad evita que las personas sufran daños, y provee un ambiente satisfactorio de
trabajo.
Al trabajar en este laboratorio o taller y cualquiera de los subsiguientes, realice el siguiente
procedimiento:
1. Al ingresar, inspeccione:
Las vías de acceso.
Orden y limpieza.
2. En su estación de trabajo evalúe las condiciones de:
Orden y Limpieza.
Herramientas y equipos.
3. Realice su trabajo teniendo en cuenta:
Orden y limpieza.
Seguridad.
Proceda a realizar las conexiones de los equipos o implementación de los circuitos
comprobando que la línea eléctrica se encuentre desconectada.
Solicite visto bueno al profesor antes de aplicar energía eléctrica.
4. Realice el análisis de riesgo personal:
¿Qué es lo que voy a hacer?
¿Qué es lo que puede salir mal?
¿Qué debo hacer para que no salga mal?
5. Al terminar sus labores, deje su estación de trabajo en buenas condiciones:
Ordenado y limpio.
Seguro.
Desconecte el suministro de energía eléctrica.
pág. 4
Lab. N° 10 Programación e Implementación del Aplicativo II
FUNDAMENTO TEORICO
Es un motor de CD sin escobillas que puede ser de imán
permanente o reluctancia variable que tiene como características
de desempeño rotar en ambas direcciones, moverse con
incrementos angulares precisos, sostener un torque de retención a
velocidad cero y controlarse con circuitos digitales. El motor paso
a paso es muy útil porque se puede posicionar con precisión sin
ningún sensor de retroalimentación, por lo tanto se puede
representar como un controlador de circuito abierto.
Motor paso a paso
El número y tasa de los pulsos controla la posición y velocidad del eje del motor. Por lo general, los
motores de pasos se fabrican con pasos por revolución de 12, 24, 72, 144, 180 y 200, lo que resulta en
incrementos de eje de 30°, 15°, 2.5°, 2° y 1.8° por paso. A medida que activamos los bobinados del
motor paso a paso en un orden en particular, permitimos que fluya una corriente a través de ellos que
magnetiza el estator provocando polos electromagnéticos que causarán la propulsión del motor. Se
pueden diseñar circuitos especiales de micropaso para permitir una mayor cantidad de pasos por
revolución, con frecuencia 10 000 pasos/rev o más.
A4988 es circuito controlador bipolar de motores paso a paso
le permite manejar un motor paso a paso bipolar de hasta 2A
de corriente desde cualquier microcontrolador. Este driver
para motores paso a paso cuenta con un limitador de
corriente, y protección de sobre calentamiento y de exceso de
consumo para garantizar un funcionamiento correcto cuando
lo utilice en sus proyectos. El driver opera en un rango de 8
hasta 35V con una corriente de 1A por fase (sin un disipador
de calor) y tiene capacidad para soportar hasta 2A por bobina
si hubiera suficiente refrigeración adicional. Este driver es
famoso por ser el mas utilizado en la impresoras 3D para el
control de los diferentes motores paso a paso de las mismas.
Tiene un interface tipo paso y dirección, cuenta con micropasos hasta 1/16, control inteligente del
consumo cuando el motor está parado y control ajustable de la corriente y todo ello en un pequeño
circuito del tamaño de un sello de correos que podemos incorporar fácilmente en nuestros circuitos. El
driver incorpora cinco posibilidades de movimiento: paso completo, medio paso, un cuarto de paso, un
octavo de paso y la decimosexta parte de paso, por lo que resulta muy versátil a la hora de utilizarlo en
diferentes proyectos o necesidades específicas de movimiento.
pág. 5
Lab. N° 10 Programación e Implementación del Aplicativo II
Procedimiento – CASO DE ESTUDIO PROPUESTO EN LABORATORIO
Implementar el caso de estudio propuesto en el laboratorio Nro. 9:
Enunciado:
N° de Implementación 2
Grupo
1 Paletizadora vertical de 4x4 con 2 motores paso a paso y un motor DC
para su colocación con teclado matricial.
2 Control de distancia con sensor ultrasonido, con adquisición de datos
en LabVIEW, indicar el límite con un buzzer a una frecuencia de 10
KHz.
3 Sistema de alarma con LabVIEW, controlando las puertas, ventas y
sistema de luces. Se activa la alarma con un teclado matricial y se
muestra este en una pantalla LCD.
4 Separador de objetos de colores, con 3 servomotores y almacenando
en una base de datos de Excel.
Se solicita:
1. Descripción del proyecto
2. Hardware del proyecto
3. Implementación en protoboard.
4. Pruebas de entradas y salidas digitales.
5. Pruebas de funcionamiento de la lógica.
6. Evidencias del armado y puesta en marcha del caso de estudio.
7. Aplicaciones similares en la Industria.
pág. 6
Lab. N° 10 Programación e Implementación del Aplicativo II
PROCEDIMIENTO
1. Se debe asignar una posición por cada tecla del teclado matricial; luego, reconoceremos cada
uno de los motores paso a paso como uno de movimiento vertical, y uno de movimiento
horizontal; también calcularemos el número de pasos que darán cada uno para poder llegar a la
posición indicada que, por cierto, está ordenada tal como el teclado matricial y sus respectivas
teclas.
Asignación de los motores paso a paso y reconocimiento de las posiciones por cada tecla.
Fuente: propia.
Teclas en el Motor paso a paso de Motor paso a paso de
teclado matricial movimiento horizontal movimiento vertical
1 ←4 ↑4
2 ←3 ↑4
3 ←2 ↑4
A ←1 ↑4
4 ←4 ↑3
5 ←3 ↑3
6 ←2 ↑3
B ←1 ↑3
7 ←4 ↑2
8 ←3 ↑2
9 ←2 ↑2
C ←1 ↑2
* ←4 ↑1
0 ←3 ↑1
# ←2 ↑1
D ←1 ↑1
Cálculo de la cantidad de pasos de cada motor por cada posición.
Fuente: propia.
pág. 7
Lab. N° 10 Programación e Implementación del Aplicativo II
2. Iniciamos con la programación del microcontrolador PIC16F887.
• Comenzamos declarando las variables correspondientes e incluyendo algunas macros. Luego,
accedemos al banco 1 y limpiamos los puertos D y C.
Programación
Fuente: propia
• Ahora, declaramos los movimientos horizontales y verticales (Ejes Y y X) en 0, logrando con esto
asignarles una posición inicial; luego, activamos el inicio del teclado matricial, añadiéndole un
retraso de 250 ms.
Programación
Fuente: propia
pág. 8
Lab. N° 10 Programación e Implementación del Aplicativo II
• Declaramos los movimientos que tomará cada tecla o número digitado en el teclado; por ejemplo, si
se pulsa 1, se realizará el movimiento 1; si se pulsa 5, se realizará el movimiento 5, y así
sucesivamente. Cabe resaltar que, al presionar cualquier tecla, el programa nos permitirá el salto
de cada instrucción que no se cumple, hasta llegar a la que sí. Al final, agregamos un goto que nos
regresará a la fase inicial una vez culminado el proceso que explicaremos en el siguiente paso.
Programación
Fuente: propia
• Cada movimiento declarado nos llevará a otra fase, la cuál ordenará a los motores paso a paso,
moverse un cierto número de veces, de acuerdo a la posición requerida; posteriormente,
introducimos un call que otorgará movimiento a los motores sobre el eje X y Y; luego, llamaremos a
otro call, el cual activará el motor DC, que servirá para dejar el objeto en la posición asignada por el
teclado; finalmente, declararemos un último call, el cuál regresará a los motores paso a paso y al
motor DC a su posición inicial; después de un retraso de 100 ms, regresaremos a la fase inicial
mediante un goto.
Programación
Fuente: propia
pág. 9
Lab. N° 10 Programación e Implementación del Aplicativo II
• Realizamos la misma programación para cada uno de los movimientos, asignando a cada columna
y fila los pasos acordados en la tabla mostrada en la página 05 de este informe. Cabe resaltar que
los valores de A, B, C, D, “#” y “*” son 10, 20, 30, 40, 50 y 60 respectivamente.
Programación
Fuente: propia
• Finalmente, citaremos las librerías utilizadas para nuestra programación; la de nuestro
microcontrolador, la del teclado y la que realizamos especialmente para este proyecto y
explicaremos en el siguiente paso.
Programación
Fuente: propia
pág. 10
Lab. N° 10 Programación e Implementación del Aplicativo II
Librería Ejes
La presente librería fue programada especialmente para este proyecto.
• Declaramos los pines a los que conectaremos los drivers y el motor DC; en el caso de los drivers,
programamos pines de paso y dirección; y, en el caso del motor DC, digitamos pines solo de
dirección.
Programación
Fuente: propia
• Ahora, declaramos que los valores asignados para fila y columna en cada uno de los movimientos
serán interpretados por ejex y ejey respectivamente.
Programación
Fuente: propia
• Luego, ordenaremos a los motores paso a paso moverse. Primero, pondremos en 1 la alimentación
del driver del motor vertical un determinado número de veces (pasos), hasta que completen las
veces ordenadas por las ordenes recibidas en el ejeY (columnas). Una vez culminado este proceso
de manera correcta, se saltará al siguiente, el cuál presentará la misma programación para el motor
horizontal (ejeX).
Programación
Fuente: propia
pág. 11
Lab. N° 10 Programación e Implementación del Aplicativo II
• Ahora, programaremos el motor DC, debido a que su labor es simple, solo le otorgaremos una
alimentación de un 1 y 0 en cada uno de sus pines, y luego de un retardo, invertiremos su sentido.
Todo este proceso se realiza una vez culminada la fase anterior.
Programación
Fuente: propia
• Finalmente, para el periodo de regreso a la posición normal, realizaremos la misma programación
que para el periodo de movimiento a la posición, con la única diferencia que, los pines de
alimentación tendrán una tensión inversa; es decir, si antes fue 0, ahora es 1 y viceversa.
Programación
Fuente: propia
pág. 12
Lab. N° 10 Programación e Implementación del Aplicativo II
3. Como tercer paso tendremos la simulación de nuestro programa y la comprobación de su
funcionalidad. En la siguiente imagen se aprecian las conexiones; los LED indican la dirección y
el funcionamiento de cada motor.
Simulación en PROTEUS.
Fuente: propia
4. Por último, se implementó el proyecto de manera física en un protoboard y se analizó el correcto
funcionamiento de cada una de las partes.
Circuito implementado.
Fuente: propia
pág. 13
Lab. N° 10 Programación e Implementación del Aplicativo II
OBSERVACIONES
- Es recomendable diseñar una nueva librería.
- - Pueden utilizar diodos LED para representar los motores y sus direcciones tanto en la
simulación como en la implementación
CONCLUSIONES
1. Utilizamos las instrucciones correspondientes y logramos programar el microcontrolador
PIC16F877, logrando controlar motores paso a paso y un motor DC con un teclado matricial.
2. Utilizamos el software de desarrollo proporcionada por el fabricante y el software de simulación
digital, lo que hizo que nuestro proyecto funcione de manera correcta; además, programamos
una nueva librería única y exclusivamente para la ocasión.
3. Implementamos el aplicativo en el protoboard y pudimos corroborar su buen funcionamiento de
manera física sin presentar retrasos ni problemas.
pág. 14
Lab. N° 10 Programación e Implementación del Aplicativo II
Observaciones Generales
1. La presentación del informe se realiza al ingresar al Laboratorio. En la clase siguiente a su
realización.
2. Se tomará en cuenta las reglas de ortografía en la redacción del informe.
3. La evaluación se realizará del siguiente modo
Curso: Programación de Microcontroladores Sección
Lab. No: 10 Mesa No:
Implementación de
Tema: Fecha:
Aplicativo 2
Participantes:
1 Chávez Pineda Luis Rodrigo
2 Córdova Vente Luis Diego
3 Alva Rojas Vagnert
4 Quevedo García Edison
pág. 15