0

我对编程很陌生,我正在尝试用树莓派控制直流电机。我正在尝试使用 guizero 滑块来更改全局变量,motorspeed但是如果我运行代码,电机将仅在初始变量集上运行。

真的非常感谢你!

import RPi.GPIO as GPIO
from time import sleep
from guizero import App, Text, TextBox, PushButton, Slider

#GPIO SETUP
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(5, GPIO.OUT)
GPIO.setup(5, GPIO.LOW)

motorspeed = 50

def changemotorspeed(slider_value):
    global motorspeed
    slider_value = motorspeed

#MOTOR SETUP
def motorstart():
    GPIO.setup(13, GPIO.OUT)
    GPIO.setup(25, GPIO.OUT)
    GPIO.setup(25, GPIO.HIGH)
    pwm = GPIO.PWM(13, 100)
    pwm.start(0)
    pwm.ChangeDutyCycle(motorspeed)
    sleep(1)
        
def motorstop():
    GPIO.cleanup()
    
#GUI SETUP
app = App(title = "MOTOR CONTROL")
start_button = PushButton(app, text = "START", command = motorstart)
stop_button = PushButton(app, text = "STOP", command = motorstop)
text_size = Slider(app, command = changemotorspeed, start = 0, end = 100)
app.display()
4

1 回答 1

0

当您设置slider_value=motorspeed时 ,它会锁定滑块值而不是更改电机速度。

改成这个

motorspeed = slider_value
于 2022-01-05T23:43:02.940 回答