我的覆盆子Pi3B+有点麻烦。首先,我想控制两个电机使用树莓Pi和L289n MotorDriver。我的主要问题是马达发动不了..。如果我用我的万用表,上面写着马达上没有电。不过,可能是密码,甚至是电路,我真的不知道。所以我决定问她,上传不仅我的代码,而且我的电路作为一张照片。也许你能帮我。

import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
#Motor 1
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27,GPIO.OUT)
GPIO.output(17, 0)
GPIO.output(27, 0)
#Motor 2
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24,GPIO.OUT)
GPIO.output(23, 0)
GPIO.output(24, 0)
#Control Motor 1
GPIO.output(27, 1)
GPIO.output(17, 0)
#Control Motor 2
GPIO.output(23, 0)
GPIO.output(24, 1)发布于 2019-10-20 19:22:35
您可以尝试以下方法:
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.....")如果您仔细地查看代码,您可以很容易地理解工作。运行脚本。
您将收到一条关于电机的默认速度和方向的消息。后面跟着一个命令列表,您必须使用这些命令来控制电机。下面给出了这些命令。
https://stackoverflow.com/questions/58476433
复制相似问题