最近搞了个步进电机和驱动板,尝试用树莓派来驱动。看了下资料,发现只要将4个IN依次设置为高电平即可。
代码如下:
import RPi.GPIO as GPIO import time def setMotorGPIO(A, B, C, D): GPIO.output(GPIO_DATAA, A); GPIO.output(GPIO_DATAB, B); GPIO.output(GPIO_DATAC, C); GPIO.output(GPIO_DATA4, D); def motorRunOnce(sleeptime): setMotorGPIO(GPIO.HIGH, GPIO.LOW, GPIO.LOW, GPIO.LOW); time.sleep(sleeptime); setMotorGPIO(GPIO.LOW, GPIO.HIGH, GPIO.LOW, GPIO.LOW); time.sleep(sleeptime); setMotorGPIO(GPIO.LOW, GPIO.LOW, GPIO.HIGH, GPIO.LOW); time.sleep(sleeptime); setMotorGPIO(GPIO.LOW, GPIO.LOW, GPIO.LOW, GPIO.HIGH); time.sleep(sleeptime); def motorRun(times): GPIO_DATAA = 22; GPIO_DATAB = 23; GPIO_DATAC = 24; GPIO_DATA4 = 25; GPIO.setmode(GPIO.BCM); GPIO.setup(GPIO_DATAA,GPIO.OUT); GPIO.setup(GPIO_DATAB,GPIO.OUT); GPIO.setup(GPIO_DATAC,GPIO.OUT); GPIO.setup(GPIO_DATA4,GPIO.OUT); GPIO.output(GPIO_DATAA, GPIO.LOW); GPIO.output(GPIO_DATAB, GPIO.LOW); GPIO.output(GPIO_DATAC, GPIO.LOW); GPIO.output(GPIO_DATA4, GPIO.LOW); cnt = 0; while cnt < times: motorRunOnce(0.5); cnt = cnt + 1; GPIO.cleanup(); if __name__ == "__main__": motorRun(10);
备注:
步进电机的运转速度较慢,如果想要比较高的转速,还是得用直流电机。
发表评论