InicioLinuxRaspberry Pi: Como usar un driver de motores de paso A4988
Hola a todos este post es para explicarles como utilizar un driver de motores utilizando un Raspberry Pi 2 y codigo elaborado en Python. Tengo publicado el codigo en  github.com/nepturio  por si quieren copiar mis repositorios. Tambien tengo ejemplos para Arduino.


A mi me gusta ser directo por lo que no les voy a dilatar la explicación

Vamos directo a lo que nos interesa:

materiales necesarios:

Raspberry Pi 2 Model B (pueden usar las versiones anteriores sin cambian los pines en el codigo)

Driver para motores Allegro A4988

Motor de paso bipolar

Basicamente el codigo funciona de la siguiente manera. Se configuran los puertos a utilizar como salidas. Solamente necesitamos dos. Un puerto para enviar los pulsos al puerto Step del A4988 y otro para enviar el estado del puerto Dir (para cambiar el sentido de giro del motor)

Luego lo que hacemos es enviar pulsos al puerto step y cada pulso representa un paso en el motor. Yo estoy utilizando un motor de 200 pasos como los que se utilizan en las impresoras 3D, por lo que 200 pasos representa 360 grados.

Para variar la velocidad cambiamos el tiempo de cada pulso. Mientras mas cortos sean los pulsos mas rapido gira el motor.

A continuacion el codigo en Python: (les recomiendo verlo en github para que vean la sangria en el codigo)

https://raw.githubusercontent.com/nepturio/raspberry-pi-examples/master/a4988.py

print "RPi + A4988"

import RPi.GPIO as GPIO ## Import GPIO library
import time ## Import 'time' library. Allows us to use 'sleep'

GPIO.setwarnings(False)

enable = 13
dirPin = 11
stepperPin = 12


GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(dirPin, GPIO.OUT)
GPIO.setup(enable, GPIO.OUT)
GPIO.setup(stepperPin, GPIO.OUT)


GPIO.output(enable,False)
def step(dir,steps):

GPIO.output(dirPin,dir)

time.sleep(1)## Wait

for i in range(0,steps):
print "Step " + str(i+1)## Print current loop

GPIO.output(stepperPin,True)

time.sleep(.004)## Wait



GPIO.output(stepperPin,False)

time.sleep(.004)## Wait



print "Done" 


for i in range(0,5):
step(True,300)
time.sleep(1)## Wait
step(False,300)
time.sleep(1)## Wait



GPIO.output(enable,True)
GPIO.output(stepperPin,False)
time.sleep(1)## Wait







Ese codigo deben guardarlo con la extension .py por ejemplo a4988.py


luego abren un terminal y escriben:


sudo python a4988.py 


presionan enter y listo el motor girara 300 pasos en sentido horario y luego 300 en sentido antihorario


si te gusto este post por favor compartelo y dale me gusta
Datos archivados del Taringa! original
0puntos
2visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
10visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

n
neoivan🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.