Controlar motor a pasos Mikro C.
Enviado por Ensa05 • 5 de Julio de 2018 • 1.358 Palabras (6 Páginas) • 275 Visitas
...
}
}
}
void config() //parametros de configuración
{
ANSEL=ANSELH=0; //desactiva E/S analogicas
TRISC=0B00000000; //declara PUERTO C como salidas
PORTC=0B00000000; //valor inicial del PUERTO C
TRISA=0B00000001; //declara el RA0 como (entrada para el arranque)
PORTA=0; //valor inicial del PUERTO A
}
void derecha() //secuencia de giro horario
{
for(pasos=0;pasos<13;pasos++) //repite 13 veces la activacion de cada bobina para dar 90° de giro
{
for(y=0,bobinas=1;y<4;y++) //ciclo for que se repite 3 veces
{
delay_ms(40); //cada 40ms activa bobinas
bobinas=bobinas<<1; //empezando desde el bit 1,2,4,8 del puerto C
}
}
}
void izquierda() //secuencia de giro antihorario
{
for(pasos=0;pasos<13;pasos++) //repite 13 veces la activacion de cada bobina para dar 90° de giro antihorario
{
for(y=0,bobinas=8;y<4;y++) //ciclo for que se repite 3 veces
{
delay_ms(40); //cada 40ms activa bobinas
bobinas=bobinas>>1; //empezando desde el bit 8,4,2,1 del puerto C
}
}
}
void derecha_rapido() //secuencia de giro RAPIDO en sentido horario
{
for(pasos=0;pasos<13;pasos++) //repite 13 veces la activacion de cada bobina para dar 90° de giro horario
{
for(y=0,bobinas=1;y<4;y++) //ciclo for que se repite 3 veces
{
delay_ms(7); //cada 7ms se activan las bobinas (al ser menor tiempo hay mayor velocidad)
bobinas=bobinas<<1; //empieza activando el bit 1,2,4,8 del puerto C
}
}
}
void izquierda_rapido() //secuencia de giro RAPIDO en sentido antihorario
{
for(pasos=0;pasos<13;pasos++) //repite 13 veces la activacion de cada bobina para dar 90° de giro antihorario
{
for(y=0,bobinas=8;y<4;y++) //ciclo for que se repite 3 veces
{
delay_ms(7); //cada 7ms se activan las bobinas
bobinas=bobinas>>1; //empieza activando el bit 8,4,2,1
}
}
}
...