Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ontrol Giro Motor Ejercicio
Ontrol Giro Motor Ejercicio
Objetivo.
Controlar el sentido de giro de un motor en CD utilizando un PIC y
dispositivos de acoplamiento entre éste y el motor. Además,
utilizar la computadora como interfaz con el usuario para ofrecerle
un menú de control del motor.
Introdu cción .
Una de las aplicaciones prácticas de los micro-controladores es el
control de un motor de CD. En la industria y en la robótica se hace
uso de este tipo de motores, donde es necesario configurar al motor
para que gire en un sentido o en otro. Para ello se hace uso de un
Puente H. El puente HL293B es un circuito que simplifica el
control de un motor en CD. No tan sólo ayuda en lo relacionado en
cuanto al giro del motor o paro del mismo, sino también aporta en
cada uno de sus cuatro canales una corriente de 1 A.
Puen te HL293B.
El puente HL293B contiene cuatro drivers push-pull capaces de
entregar corrientes de salida de 1 A por canal. Cada canal es
controlado por una entrada lógica compatible TTL, y cada par de
drivers (un puente completo) está equipada con una entrada des-
1
Figura 1.
Figura 2.
Figura 3.
3
H L H Gira a la derecha.
H H L Gira a la izquierda.
H L L Paro rápido.
H H H Paro rápido.
L * * Giro libre.
Tabla 1 de lógica.
Ejercicio.
Programar un PIC para que controle el sentido de giro de un motor
de CD, utilizando el puente HL293B. Se debe presentar un menú
al usuario a través de la computadora. La programación debe
realizarse en C del CCS. Simular la comunicación serial,
implementar tal comunicación y probar su correcto
funcionamiento.
Progr ama.
#include <16F877A.H>
#use rs232(baud = 9600, bits = 8, parity = N, stop = 1, xmit = pin_C6, rcv = pin_C7)
void main() {
char comando;
//
do {
printf("MENU: \n");
printf("\r");
printf("Giro a la derecha ======> [a]\n");
printf("\r");
printf("Giro a la izquierda ======> [b]\n");
printf("\r");
printf("Parar motor ======> [c]\n");
printf("\r");
printf("Giro libre ======> [d]\n");
printf("\r");
printf("Salir ======> [s]\n");
printf("\n\r");
while(!(comando = getc()));
switch (comando) {
case 'a':
5
output_A(0x05);
break;
case 'b':
output_A(0x06);
break;
case 'c':
output_A(0x04);
break;
case 'd':
output_A(0x00);
break;
case 's':
printf("Bye, Au-revoir, Hasta luego. \n \r");
break;
default:
printf("Comando no existente . \n \r");
printf("\n\r");
}
} while(comando != ('s' || 'S'));
}