Generando pulsos motor PaP

Buenas!! Estoy escribiendo un programa para control de un motor pap donde necesito enviar un número de pulsos determinado (50%dutty). Establezco en HIGH el pulso, aplico el dalayMicroseconds() y luego lo mismo con LOW, el retardo es el correspondiente a la velocidad de rotación que necesito en cada momento, todo ello mediante un bucle for que limita la cantidad de pulsos. Puedo usar un long para la iteracion del bucle? El int se me queda corto. Ayer hice pruebas y no consegui que funcionara.. o existe una forma más correcta de hacer esto? La función AnalogWrite no me permite mandar un número exacto de pulsos.

Muchas gracias!!

busca Arduino motor PaP o arduino stepper e incluso en el IDE tiene un ejemplo con la librería stepper.

Muchas gracias surbyte, ya busqué previamente la documentación y no encontré nada similar: Quería poder hacerlo sin librerías para tener control total de los parámetros. Finalmente lo he podido solucionar añadiendo un cast en las operaciones, y así obtener el valor real del número de pulsos.

Gracias de nuevo por tu ayuda. Un saludo.

Cuando armas algo con arduino siempre hay dos partes involucradas: software y hardware.

Probar el código ejemplo de la librería stepper te permite saber si tu stepper o PaP funciona bien. Lo has verificado?

Luego prueba como quieras.

Hay igualmente información por todos lados sin librerías. Si algo hay es justamente eso. De hecho la librería es una pavada de comandos que puedes usar.

Mira un ejemplo encontrado en google 4ta opcion Busqueda arduino stepper motor code https://www.electronicshub.org/stepper-motor-control-using-arduino/

Claro surbyte, comprobé que el motor funcionaba correctamente enviándole los pulsos correspondientes a una vuelta completa. El ejemplo que me muestras es con 4 salidas, mientras que yo uso un driver de 2 para ahorrar salidas digitales. El problema era un overflow de la variable que almacenaba el número de pulsos. Ya funciona correctamente.

Gracias por tu ayuda :wink:

Ahh bueno me alegro que lo resolvieras!

Por eso es bueno siempre poner el código y toda la información posible cuando se plantea una pregunta porque no queda claro nada de lo que resultó ser tu solución en tu comentario inicial, menos que usaras un driver en el proceso.

Puedo usar un long para la iteracion del bucle? El int se me queda corto.

Ahora en mi auto crítica. No leí que ponías énfasis en el tipo de variable y apunté para otro lado. Asi que mi respuesta nada tuvo que ver con tu problema.