Autor Tema: Control motor paso a paso unipolar pic16f88-L297  (Leído 6741 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Control motor paso a paso unipolar pic16f88-L297
« en: 09 de Enero de 2010, 05:54:33 »
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

Código: C
  1. #include <16F88.h>
  2.  
  3. #FUSES HS,NOWDT,PUT,NOMCLR,NOBROWNOUT,NOLVP,NOPROTECT,NODEBUG,CCPB0,NOFCMEN,NOIESO
  4. #use delay(clock=8M)
  5.  
  6. #use fast_io(A)
  7. #use fast_io(B)
  8.  
  9. ///////////////////////////////////////////////////////////
  10. // Control  L297  ////
  11. #define Direccion       PIN_A1          //Dir = 1 - 0
  12. #define Clock           PIN_A0          //Clock = 0
  13. #define Enable_L297     PIN_B5          //Enable=1
  14. #define Half_Full_step  PIN_B4          //FULL=0;
  15.  
  16. ///////////////////////////////////////////////////////////
  17. /// Tarjeta   ///
  18. #define Boton_1         PIN_B3
  19. #define Boton_2         PIN_B2
  20. #define Boton_EN        PIN_A5
  21. #define Led             PIN_A4
  22. ///
  23.  
  24. void main(){
  25.  
  26.             output_a(0);               //Latch puertos
  27.             output_b(0);               //Latch puertos
  28.            
  29.             set_tris_a(0b00000000);             //Congif Puertos
  30.             set_tris_b(0b00001100);
  31.            
  32.             delay_ms(100);
  33.      
  34. ///////////////////////////////      
  35.       Output_low(Direccion);
  36.       Output_low(Half_Full_step);
  37.       output_low(Enable_L297);        //Activamos el driver
  38.      
  39.      
  40.  
  41. /////// Programa ////////////
  42.  
  43. while(input(Boton_EN)){                 //Mientras no se presione el boton_1  
  44.       Output_High(LED);
  45.       delay_ms(200);
  46.       Output_low(LED);
  47.       delay_ms(200);
  48. }
  49.  
  50.  
  51.      
  52.       delay_ms(200);
  53.      
  54.       while(1){
  55.       output_toggle(Clock);
  56.       delay_us(800);                  //Velocidad paso
  57.      
  58.          if(!input(Boton_1)){
  59.             while(!input(Boton_1))delay_ms(500);
  60.             Output_toggle(Half_Full_step);         //Half-Full
  61.          }  //end if
  62.          
  63.            
  64.          if(!input(Boton_2)){
  65.             while(!input(Boton_2))delay_ms(500);
  66.             Output_toggle(Direccion);              //Cambio de direccion
  67.             }     //end if
  68.            
  69.          if(!input(Boton_EN)){
  70.             while(!input(Boton_EN))delay_ms(500);
  71.             Output_toggle(Enable_L297);
  72.             Output_toggle(LED);            
  73.  
  74.             }     //end if            
  75.            
  76.       }//while infinito Loop
  77.  
  78.  
  79. }     //end main
  80. ////////////////////


Saludos!

« Última modificación: 12 de Enero de 2010, 05:53:49 por AKENAFAB »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Control motor paso a paso unipolar pic16f88-L297
« Respuesta #1 en: 09 de Enero de 2010, 16:32:12 »
Yo sólo la regalaría si tuviera una igual  :D

Qué bien que funcionó todo.

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Control motor paso a paso unipolar pic16f88-L297
« Respuesta #2 en: 09 de Enero de 2010, 16:38:08 »
Es que tengo 2 xD una con menos "aditamentos" pero ya me esta gustando mucho XD solo que quiero tener una con pic18 xD

Asi que ya lo estoy pensando! :angel:


 

anything