#import required libraries
import RPi.GPIO as GPIO
import time
# Configure GPIO setting
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
#constants for motor control
PWMA = 36
PWMB = 33
AIN1 = 40
AIN2 = 38
BIN1 = 37
BIN2 = 35
#Speed set to
speed_input = int(25)
speed = speed_input
left_speed = None
right_speed = None
def drive_init():
global left_speed, right_speed
print("Initializing the GPIO ports supporting drive ops.")
#GPIOsettings
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
#MC directions as output
GPIO.setup(AIN1, GPIO.OUT, initial = False)
GPIO.setup(AIN2, GPIO.OUT, initial = False)
GPIO.setup(BIN1, GPIO.OUT, initial = False)
GPIO.setup(BIN2, GPIO.OUT, initial = False)
#Set motors to off first
GPIO.output(AIN1, False)
GPIO.output(AIN2, False)
GPIO.output(BIN1, False)
GPIO.output(BIN2, False)
#set pins as out
GPIO.setup(PWMA, GPIO.OUT, initial = True)
GPIO.setup(PWMB, GPIO.OUT, initial = True)
left_speed = GPIO.PWM(PWMA, 50)
right_speed = GPIO.PWM(PWMB, 50)
left_speed.start(0)
right_speed.start(0)
#Enable MC with high on enable
GPIO.output(PWMA, True)
GPIO.output(PWMB, True)
尝试在我的程序中运行操作时,例如:
def forward(speed, sec):
print(f"Moving forward for at {speed}")
GPIO.output(AIN1, False)
GPIO.output(AIN2, True)
GPIO.output(BIN1, False)
GPIO.output(BIN2, True)
left_speed.ChangeDutyCycle(speed)
right_speed.ChangeDutyCycle(speed)
time.sleep(1)
GPIO.output(AIN1, False)
GPIO.output(AIN2, False)
GPIO.output(BIN1, False)
GPIO.output(BIN2, False)
程序按照第一个输入的预期工作,但在输入另一个输入时,返回错误“此GPIO通道已存在PWM对象”,参考行“left_speed=GPIO.PWM(PWMA,50)”和“GPIO.setup(BIN2,GPIO.OUT,initial=False)”。我对编码还是相当陌生,不能100%确定问题到底是什么。感谢您的帮助
目前没有回答
相关问题 更多 >
编程相关推荐