树莓派4B解析PWM

在这里插入图片描述

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time

pin=18

GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.IN)

while True:    
    #等待低电平结束,然后记录时间
    while GPIO.input(pin) == 0:  #捕捉信号端输出上升沿
        pass
    time1 = time.time()  
    
    #等待高电平结束,然后记录时间
    while GPIO.input(pin) == 1:  #捕捉信号端输出下降沿
        pass
    time2 = time.time() 
    #等待低电平结束,然后记录时间
    while GPIO.input(pin) == 0:  #捕捉信号端输出上升沿
        pass
    time3 = time.time()
    #print(time1)
    #print(time2)
    #print(time3)
    
    period = time3 - time1
    high_time = time2 - time1
    low_time = time3 - time2
    duty_cycle = (int)(high_time * 100 / period*100)
    print(duty_cycle)
    time.sleep(0.1)
    #print("-------------------------")

猜你喜欢

转载自blog.csdn.net/u014492512/article/details/124983273