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