我的Raspberry Pi3B +遇到了一些麻烦。首先,我想使用Raspberry Pi和L289n MotorDriver控制2个电机。我的主要问题是电动机无法启动... 如果使用万用表,则说明电动机上没有电。但是,我可能不知道这可能是代码,甚至是电路。 所以我决定问她,不仅上传我的代码,而且上传我的电路作为图片。也许你可以帮我。
extern int absolute(int);
答案 0 :(得分:1)
您可以尝试以下操作:
import RPi.GPIO as GPIO
from time import sleep
in1 = 17
in2 = 27
en = 25
temp1 = 1
GPIO.setmode(GPIO.BCM)
GPIO.setup(in1, GPIO.OUT)
GPIO.setup(in2, GPIO.OUT)
GPIO.setup(en, GPIO.OUT)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
p = GPIO.PWM(en, 1000)
p.start(25)
print("\n")
print("The default speed & direction of motor is LOW & Forward.....")
print("r-run s-stop f-forward b-backward l-low m-medium h-high e-exit")
print("\n")
while True:
x = raw_input()
if x == 'r':
print("run")
if (temp1 == 1):
GPIO.output(in1, GPIO.HIGH)
GPIO.output(in2, GPIO.LOW)
print("forward")
x = 'z'
else:
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
print("backward")
x = 'z'
elif x == 's':
print("stop")
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
x = 'z'
elif x == 'f':
print("forward")
GPIO.output(in1, GPIO.HIGH)
GPIO.output(in2, GPIO.LOW)
temp1 = 1
x = 'z'
elif x == 'b':
print("backward")
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.HIGH)
temp1 = 0
x = 'z'
elif x == 'l':
print("low")
p.ChangeDutyCycle(25)
x = 'z'
elif x == 'm':
print("medium")
p.ChangeDutyCycle(50)
x = 'z'
elif x == 'h':
print("high")
p.ChangeDutyCycle(75)
x = 'z'
elif x == 'e':
GPIO.cleanup()
break
else:
print("<<< wrong data >>>")
print("please enter the defined data to continue.....")
如果仔细看一下代码,就可以轻松理解其工作原理。运行脚本。
您将收到一条有关电动机默认速度和方向的消息。后面是必须用于控制电动机的命令列表。这些命令如下。