hola amigos!
Probando la nueva
tarjetita smd antes de regalarla , realice un programa muy sencillo con ayuda de otro hardware , la
controladora de motores paso a paso unipolar.
Al presionarl el Boton1 se inicia secuencia del motor a pasos , si se presiona nuevamente el boton 1 cambia entre medio paso y paso completo.Si presionamos el boton 2 , cambia de direccion.
Muy sencillito pero ahi esta xD
http://img32.imageshack.us/img32/9471/pboardmuni.jpg#include <16F88.h>
#FUSES HS,NOWDT,PUT,NOMCLR,NOBROWNOUT,NOLVP,NOPROTECT,NODEBUG,CCPB0,NOFCMEN,NOIESO
#use delay(clock=8M)
#use fast_io(A)
#use fast_io(B)
///////////////////////////////////////////////////////////
// Control L297 ////
#define Direccion PIN_A1 //Dir = 1 - 0
#define Clock PIN_A0 //Clock = 0
#define Enable_L297 PIN_B5 //Enable=1
#define Half_Full_step PIN_B4 //FULL=0;
///////////////////////////////////////////////////////////
/// Tarjeta ///
#define Boton_1 PIN_B3
#define Boton_2 PIN_B2
#define Boton_EN PIN_A5
#define Led PIN_A4
///
void main(){
output_a(0); //Latch puertos
output_b(0); //Latch puertos
set_tris_a(0b00000000); //Congif Puertos
set_tris_b(0b00001100);
delay_ms(100);
///////////////////////////////
Output_low(Direccion);
Output_low(Half_Full_step);
output_low(Enable_L297); //Activamos el driver
/////// Programa ////////////
while(input(Boton_EN)){ //Mientras no se presione el boton_1
Output_High(LED);
delay_ms(200);
Output_low(LED);
delay_ms(200);
}
delay_ms(200);
while(1){
output_toggle(Clock);
delay_us(800); //Velocidad paso
if(!input(Boton_1)){
while(!input(Boton_1))delay_ms(500);
Output_toggle(Half_Full_step); //Half-Full
} //end if
if(!input(Boton_2)){
while(!input(Boton_2))delay_ms(500);
Output_toggle(Direccion); //Cambio de direccion
} //end if
if(!input(Boton_EN)){
while(!input(Boton_EN))delay_ms(500);
Output_toggle(Enable_L297);
Output_toggle(LED);
} //end if
}//while infinito Loop
} //end main
////////////////////
Saludos!