TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: marcoscab1166 en 04 de Mayo de 2019, 20:43:57

Título: Libreria para motores Paso a Paso
Publicado por: marcoscab1166 en 04 de Mayo de 2019, 20:43:57
Hola, les dejo una libreria que hice para el control de motores paso a paso Unipolares y Bipolares, de los que tienen 4 cables.
Cualquier duda pueden consultarme.

https://github.com/marcos1166/Stepper/blob/master/stepper/es/step.c (https://github.com/marcos1166/Stepper/blob/master/stepper/es/step.c)
Título: Re:Libreria para motores Paso a Paso
Publicado por: kidpic en 11 de Mayo de 2019, 14:04:10
Buenas tardes. estoy iniciandome en esto de los PASO A PASO. ya tengo armado el driver. no lo compre lo hice yo y lo pruebo en forma manual y anda. Solo tengo que hacer un programa para incrementar su giro cada vez que acciono un pulsador . Este programa trabaja con pulsadores? Gracias
Título: Re:Libreria para motores Paso a Paso
Publicado por: marcoscab1166 en 12 de Mayo de 2019, 15:08:35
Si, lo podes usar tranquilamente con pulsadores. Como tenes armado el driver? Con que integrado?
Título: Re:Libreria para motores Paso a Paso
Publicado por: kidpic en 12 de Mayo de 2019, 18:27:48
Hola. NO tengo ningun integrado. Armé un driver con mosfet irf540 , resistencia y diodos. Las señales de comando entran por los gates de los mosfet en secuencia de giros horarios y antihorarios, si seleccionados uno de cada dos pulsadores.
gracias. 
Título: Re:Libreria para motores Paso a Paso
Publicado por: marcoscab1166 en 19 de Mayo de 2019, 10:05:27
Ok, si deberia funcionarte sin problemas. La libreria consta de una sola funcion ademas de algunas variables para configuraciones basicas.
Por ejemplo, supongamos que tenes los botones en los pines A0 y A1, y que queres mover el motor de a 10 pasos por vez, podes armar algo asi

Código: [Seleccionar]
void main(void){
   int cant_pasos = 10;
   while(1){
      if(input(PIN_A0){
         move_stepper(CLOCKWISE, cant_pasos);
      }
      else if(input(PIN_A1)){
         move_stepper(ANTICLOCK, cant_pasos);
      }
   }
}

Eso es solo un ejemplo para que veas como usar la funcion. Despues como armes el driver es independiente.