Controlar motor a pasos Mikro C.
Enviado por Alexis S R • 22 de Marzo de 2017 • Apuntes • 1.350 Palabras (6 Páginas) • 264 Visitas
/* Programa para controlar un motor a pasos con un PIC16f886.
La secuencia que debe seguir el programa es:
-avanzar en sentido horario de 90° en 90° con una pausa de 2seg cada 90°
-regresar al punto de incio de 90° en 90° con pausas de 2 segundos
-avanzar 360° con una velocidad mayor a la secuencia anterior
-luego de 2seg avanzar 180°
-luego de 2seg regresar 180°
*/
void config(); //declara una funcion para la configuracion del pic
void derecha(); //secuencia que gira a la derecha 90°
void izquierda(); //secuencia que gira a la izquierda 90°
void derecha_rapido(); //secuencia de 90° de giro la derecha a una velocidad rapida
void izquierda_rapido(); //secuencia de 90° de giro la izquierda a una velocidad rapida
unsigned int pasos,y; //declara variables sin signo llamadas "pasos" y "y"
#define bobinas PORTC
#define arranque RA0_bit
void main()
{
config(); //llama a la configuración
while(1) //inicia el cliclo infinito
{
if(arranque==1) //si el boton de arranque se presiona realizar...
{
derecha(); //giro de 0 a 90°
delay_ms(2000);
derecha(); //giro de 90 a 180°
delay_ms(2000);
derecha(); //giro de 180 a 270°
delay_ms(2000);
derecha(); //giro de 270 a 360°
delay_ms(2000);
izquierda(); //giro de 360 a 270°
delay_ms(2000);
izquierda(); //giro de 270 a 180°
delay_ms(2000);
izquierda(); //giro de 180 a 90°
delay_ms(2000);
izquierda(); //giro de 90 a 0°
delay_ms(2000);
derecha_rapido(); //giro en sentido horario desde 0°
derecha_rapido(); //180
derecha_rapido(); //270°
derecha_rapido(); //hasta 360° a una velocidad rapida sin pausas
delay_ms(2000);
derecha_rapido(); //giro desde 0°
derecha_rapido(); //hasta 180° a velocidad rapida
delay_ms(2000);
izquierda_rapido(); //giro antihorario desde 180°
izquierda_rapido(); //hasta 0° sin pausas
}
}
}
void config() //parametros de configuración
{
ANSEL=ANSELH=0; //desactiva E/S analogicas
TRISC=0B00000000;
...