-1

我是树莓派和硬件的新手。我正在尝试用 ESC 旋转无刷电机。下面是代码(取自 youtube 视频),它将电机旋转到 9 点,然后将其减速到 4 点。但我想在没有循环且不改变占空比的情况下运行电机。意味着当我运行程序时电机应该旋转,当我停止程序时电机应该停止旋转。请更新以下代码。

对不起,我的英语不好。我希望我清楚我需要什么。

以下是我从视频中获取的代码。

代码:

p = GPIO.PWM(7, 50)

p.start(0)
print ("starting 0")
time.sleep(3)

p.ChangeDutyCycle(3)
print("start")
time.sleep(5)



while True:
    i = 4
    while i<10:
        
        print(i)
        p.ChangeDutyCycle(i)
        time.sleep(.05)
        i +=.02
    
    while i>4:
        print(i)
        p.ChangeDutyCycle(i)
        time.sleep(.05)
        i -=.05
4

1 回答 1

0

我假设您要控制的电机是有刷直流电机而不是无刷电机,否则您需要在 RPI 和电机之间安装一个驱动器。对于有刷直流电机,您可以通过更改 PWM 输出的占空比来控制电机的速度。如果您不想更改速度,只需设置一个占空比并保持不变。根据https://sourceforge.net/p/raspberry-gpio-python/wiki/PWM/检查此示例:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)

p = GPIO.PWM(7, 50)
p.start(10)
input('Press return to stop:') 
p.stop()
GPIO.cleanup()

这里我们使用 GPIO 7,开关频率为 50Hz,占空比为 10%。调整值以满足您的需要。

于 2021-01-21T16:48:34.177 回答