(警告!我没有受过这个话题的教育)
嘿伙计。我在这里发帖是因为我有一个朋友在她的项目上急需帮助。我熟悉脚本,但对编程不太熟悉。我在 IT 部门工作,所以我会尽力提供必要的信息。她正在尝试使用 Python 3 对 Raspberry Pi Zero 进行编程以控制步进电机。就这么简单。
她遵循了这些教程。看起来她使用了#1 中的部件和接线以及#2 中的代码:
有用的图片在这里。这是她的实际设置: https ://photos.app.goo.gl/WJbCo4UU3wAdo8913
有用的说明:她提到她没有在电源和 L293D 驱动器 IC 之间使用电阻器。
使用的零件:
- Raspberry Pi Zero(建议使用 Pi 2 或 3,但 Zero 的引脚与 2 和 3 相同。她只需要焊接自己的双头)
-12V 直流移动电源
-Nema 17 步进电机(https://www.amazon.com/STEPPERONLINE-17HS13-0404S1-Stepper-Motor-Printer/dp/B00PNEQ9T4)
-L293D电机驱动IC(https://www.amazon.com/NDRTJM-SHOMP FL1045-L293D-Stepper-Driver/dp/B008XCGLNM )
-带有跨接电缆的面包板(Duh!)
她使用的代码如下。当她试图运行它时,电机只是振动。似乎它在不断地前进和后退。没有收到错误代码。她还尝试使用另一台电流为 2A 的 Nema 17 步进电机,但下降到电流为 0.4A 的 Nema 17 并得到相同的结果。
import RPi.GPIO as GPIO
import time
#variables
delay = 0.05
steps = 500
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
#Enable GPIO pins for ENA and ENB for stepper
enable_a = 18
enable_b = 22
#Enable pins for IN1-3 to control step sequence
coil_A_1_pin = 17 #black
coil_A_2_pin = 4 #green
coil_B_1_pin = 24 #red
coil_B_2_pin = 23 #blue
#Set pin states
GPIO.setup(enable_a, GPIO.OUT)
GPIO.setup(enable_b, GPIO.OUT)
GPIO.setup(coil_A_1_pin, GPIO.OUT)
GPIO.setup(coil_A_2_pin, GPIO.OUT)
GPIO.setup(coil_B_1_pin, GPIO.OUT)
GPIO.setup(coil_B_2_pin, GPIO.OUT)
#set ENA and ENB to high to enable stepper
GPIO.output(enable_a, True)
GPIO.output(enable_b, True)
#function for step sequence
def setStep(w1, w2, w3, w4):
GPIO.output(coil_A_1_pin, w1)
GPIO.output(coil_A_2_pin, w2)
GPIO.output(coil_B_1_pin, w3)
GPIO.output(coil_B_2_pin, w4)
#loop through step sequence based on number of steps
for i in range(0, steps):
setStep(1,1,0,0)
time.sleep(delay)
setStep(0,1,1,0)
time.sleep(delay)
setStep(0,0,1,1)
time.sleep(delay)
setStep(1,0,0,1)
time.sleep(delay)
#reverse previous step sequence to reverse motor direction
for i in range(0, steps):
setStep(1,0,0,1)
time.sleep(delay)
setStep(0,0,1,1)
time.sleep(delay)
setStep(0,1,1,0)
time.sleep(delay)
setStep(1,1,0,0)
time.sleep(delay)
如果有任何我错过的或您需要的更多信息,请告诉我,我会尽快回复!任何帮助是极大的赞赏!提前致谢!