PPM理论基础看这篇文章:
t.zoukankan.com/qiyuexin-p-7071420.html
其实主要是这张图
具体代码如下
from machine import Pin, PWM
import utime
rc = Pin(0, Pin.IN)
#板载LED灯
led = PWM(Pin(25))
led.freq(200)
#等待下一个帧头
while True:
#等待低电平结束
while rc.value() == 0:
print(rc.value())
pass
tL=utime.ticks_us()
#等待高电平结束
while rc.value() == 1:
print(rc.value())
pass
tH=utime.ticks_us()
#高电平持续超过4ms时认为此阶段为帧尾
if tH-tL>4000:
break
print("NEW")
channel=0
def onChannel_0(t):
print("0=",t)
def onChannel_1(t):
a=0
def onChannel_2(t):
a=0
def onChannel_3(t):
a=0
def onChannel_4(t):
a=0
def onChannel_5(t):
a=0
def onChannel_6(t):
a=0
def onChannel_7(t):
a=0
def onChannel_8(t):
a=0
def onChannel_9(t):
a=0
#新帧头开始了
while True:
#等待低电平结束
while rc.value() == 0:
pass
t1=utime.ticks_us()
#等待高电平结束
while rc.value() == 1:
pass
t2=utime.ticks_us()
t=t2-t1
if t>4000:
channel=0
# print("----------")
continue
if channel==0:
onChannel_0(t)
elif channel==1:
onChannel_1(t)
elif channel==2:
onChannel_2(t)
elif channel==3:
onChannel_3(t)
elif channel==4:
onChannel_4(t)
elif channel==5:
onChannel_5(t)
elif channel==6:
onChannel_6(t)
elif channel==7:
onChannel_7(t)
elif channel==8:
onChannel_8(t)
elif channel==9:
onChannel_9(t)
channel+=1