Hola
Tengo un motor paso a paso 28BYJ-48 con su driver y una placa arduino uno.
Necesito hacer girar el motor 90 grados con un pulsador y 90 grados en sentido contrario con otro pulsador.
No se programacion y no encuentro en la web un codigo para esto.
Quiero usar este motor paso a paso porque necesito que sea silencioso y un servo motor hace demasiado ruido.
Podrán ayudarme?
Muchas gracias
Buen dia
no encuentro en la web un codigo para esto.
Obviamente es muy difícil que encuentres un codigo a tu medida. Lo que debes hacer es ir por partes.
Puedes empezar con escribir en el buscador: 28BYJ-48 arduino y salen muchos resultados como éste:
https://programarfacil.com/blog/motor-paso-a-paso/
o éste Motor paso a paso 28BYJ-48 con Arduino y driver ULN2003
Ahí tienes el primer paso...
Ahora es buscar pulsadores arduino y salen muchisimos resultados como este: Cómo utilizar pulsadores sin saber nada de electrónica con Arduino
o este: Leer un pulsador con Arduino
Ya solo es unir los 2 puntos y ahí está lo que necesitas.
Te recomiendo esas 2 paginas son muy buenas
Una duda que tengo es que cómo piensas resolver el problema de saber en qué posición está el motor paso a paso cuando arranca el Arduino. Con un servo no hay problema, cuando arranca el Arduino le dices que se ponga a cero grados y no importa como estuviera el servo que él solo se posiciona a cero grados si ya no lo estaba. Pero un motor paso a paso "no va a la posición que tú le digas", sino que "avanza o retrocede según tú le digas". Es decir, si tu Arduino, al arrancar, asume que está en la posición de cero grados, cuando realmente el motor está en la de 90 grados, entonces cuando tú le mandes posicionarse a 90 grados, el Arduino le dirá que se mueva más allá de los 90 grados en los que se encuentra realmente, tratando de posicionar el motor a los 180 grados.
Cuando se trabaja con motores paso a paso lo que se suele hacer es usar al menos un final de carrera que se active cuando esté en una posición conocida. En tu caso, por ejemplo, se podría poner un final de carrera que se active cuando está a cero grados. Así, cuando se enciende el Arduino, si no está activo el final de carrera entonces supondrá que el motor está en una posición mayor de cero grados, tal vez 90 o tal vez se quedó a medias la última vez que se apagó o reinició el Arduino. Así que si no está a cero grados moverá el motor para llevarlo a cero grados hasta que se active el final de carrera. Una vez activado el final de carrera ya el Arduino sabe dónde está el motor (a cero grados en este supuesto) y lo puede mandar a los 90 grados con la tranquilidad de saber que no se pasa de 90 grados.
Repito mi duda. ¿Cómo piensas resolver el problema de saber en qué posición está el motor paso a paso cuando arranca el Arduino?