Python、RPi和GPIO控制引擎

2024-05-20 21:28:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的树莓Pi上,我有用Python编写的代码来控制我车上的引擎。我用GPIO控制引擎。它工作,但问题是,当我设置io去,然后我设置io改变方向停止。为什么它不能同时做两件事? 这是我的密码:

import RPi.GPIO as io
import time
import serial

class TankManager:
    pLeft = 0
    pRight = 0
    turnBarrel = 0
    liftBarrel = 0

    def __init__(self):
        io.setmode(io.BCM)

    def goahead(self, speed):
        if(speed > 25) : speed = 25

        io.setup(12, io.OUT)

        TankManager.pLeft = io.PWM(12, 2.2)
        TankManager.pLeft.start(1)

        io.setup(13, io.OUT)

        TankManager.pRight = io.PWM(13, 2.2)
        TankManager.pRight.start(1)

        io.setup(20, io.OUT)
        io.output(20, False)

        io.setup(21, io.OUT)
        io.output(21, False)
        return

 def gostop(self):
        if 'pLeft' in globals():
            TankManager.pLeft.stop()
        if 'pRight' in globals():
            TankManager.pRight.stop()
        io.cleanup();
        return

    def turnright(self):
        io.setup(12, io.OUT)

        TankManager.pLeft = io.PWM(12, 2.2)
        TankManager.pLeft.start(1)

        io.setup(21, io.OUT)
        io.output(21, False)
        return

 def turnbarrelstop(self):
        if 'turnBarrel' in globals():
            TankManager.turnBarrel.stop()

        io.cleanup();
        return

举个例子,当我让turnbarrelstop停在坦克上的时候,桶也停了。可能是因为我打电话io.清除() ? 它能阻止所有的GPIO信号吗? 我想停止桶,但不停止去坦克。你知道吗


Tags: ioimportselfgpioreturnifdefsetup
1条回答
网友
1楼 · 发布于 2024-05-20 21:28:52

不要打电话io.清除(). 我建议不要在gostop()函数中调用它。只有在退出程序时才使用它。你知道吗

您只需更改特定io引脚的(电平或脉宽调制(PWM)即可。你知道吗

相关问题 更多 >