TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: [)estroyer en 14 de Junio de 2010, 03:25:23
-
Que tal, un saludo a todos los presentes
hace poco hice un tema, solicitando ayuda para mi proyecto, y como es natural, me dijieron, "ponte a leer compadre ;D"
y de hecho lei, y aprendi mucho durante el proceso, pero! tengo un inconveniente
se trata del motor paso a paso en PROTEUS
estoy usando stepper motor Unipolar
este es mi codigo
#INCLUDE <16F887.h>
#USE DELAY(CLOCK=4000000)
#FUSES XT,NOWDT,NOBROWNOUT,NOPUT, NOLVP
#BYTE PORTB=6
#BYTE PORTC=7
VOID MAIN()
{
SET_TRIS_B(0); //Configura el puerto B
SET_TRIS_C(255); //CONFIGURA EL PUERTO C
WHILE(TRUE) //Haga por siempre
{
switch (PORTC) {
case 0:PORTB=0;
break;
case 1:PORTB=0b00000001;
DELAY_MS(200);
PORTB=0b00000010;
DELAY_MS(200);
PORTB=0b00000100;
DELAY_MS(200);
PORTB=0b00001000;
DELAY_MS(200);
PORTB=0b00010000;
DELAY_MS(200);
PORTB=0b00100000;
DELAY_MS(200);
break;
case 2:PORTB=0b00000001;
DELAY_MS(100);
PORTB=0b00000010;
DELAY_MS(100);
PORTB=0b00000100;
DELAY_MS(100);
PORTB=0b00001000;
DELAY_MS(100);
PORTB=0b00010000;
DELAY_MS(100);
PORTB=0b00100000;
DELAY_MS(100);
break;
case 4:PORTB=0b00000001;
DELAY_MS(50);
PORTB=0b00000010;
DELAY_MS(50);
PORTB=0b00000100;
DELAY_MS(50);
PORTB=0b00001000;
DELAY_MS(50);
PORTB=0b00010000;
DELAY_MS(50);
PORTB=0b00100000;
DELAY_MS(50);
break;
case 8:PORTB=0b00000001;
DELAY_MS(10);
PORTB=0b00000010;
DELAY_MS(10);
PORTB=0b00000100;
DELAY_MS(10);
PORTB=0b00001000;
DELAY_MS(10);
PORTB=0b00010000;
DELAY_MS(10);
PORTB=0b00100000;
DELAY_MS(10);
break;
default:
break; } // el default es lo que pasa, cuando ningún case se cumple
}
}
pero el motor se comporta muy raro, no logro hacer que gire con normalidad
-
Hola
Veo que en tu código desplazas el "1" en 6 posiciones, no se como estarás conectando el pap, pero me resulta raro. Los unipolares (al menos los q conozco yo) tienen 5 o 6 cables, y en cualquiera de los dos casos sólo debes excitar 4 bobinas. Es decir, deberias desplazar el "1" en cuatro posiciones, no 6.
Acá se explica muy bien, http://www.todorobot.com.ar/informacion/tutorial%20stepper/stepper-tutorial.htm
espero que sirva