如何在类的初始化函数中使用Raspberry pi gpio设置和pwm命令?

2024-10-01 22:36:42 发布

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

我是面向对象编程的新手,我正在使用Raspberry pi,我正在构建许多具有不同GPIO引脚的类。我不知道如何建立设置和pwm命令。它们都应该不在类中,或者我应该为每个类将它们放入init函数中?在init函数中,OOP将如何更改?你能给我举个这个代码的例子吗?你知道吗

GPIO.setup(33, GPIO.OUT)
pwmservo=GPIO.PWM(33,50)
pwmservo.start(6)

class zmove(object):
    def __init__(self):
        pass

    def update(self,angle):
        duty=float(angle)/10.0+2.5
        pwmservo.ChangeDutyCycle(duty)
        time.sleep(0.3)

Tags: 函数代码命令selfgpioinitdefpi
1条回答
网友
1楼 · 发布于 2024-10-01 22:36:42

Question: gpio setup and pwm commands in init function of a class?

class PWMServo:
    """
    Base class doing setup and get PWM instance
    """
    def __init__(self, pin):
        GPIO.setup(pin, GPIO.OUT)
        self.pwm = GPIO.PWM(pin, 50)
        self.pwm.start(6)

    def change_duty_cycle(self, duty):
        self.pwm.ChangeDutyCycle(duty)
        time.sleep(0.3)

class ZMove(PWMServo):
    """
    Inherit from class PWMServo
    ZMove use PIN 33
    """
    def __init__(self):
        super().__init__(pin=33)
        self.pwm.start(6)

    def update(self,angle):
        duty=float(angle)/10.0+2.5
        self.change_duty_cycle(duty)

if __name__ == '__main__':
    zmove = ZMove()

    zmove.update(45.0)

    # Or, call direct
    zmove.change_duty_cycle(45.0/10.0+2.5)

相关问题 更多 >

    热门问题