donatello1996 发表于 2018-8-23 09:35

【pyboardCN V2】PWM呼吸灯&ADC&PWMDAC

       pyboard板子的四盏LED灯中,LED3和LED4即黄灯和蓝灯是支持PWM输出的,也就是可以改变亮度,邵版主给出的固件中,LED外设可以直接通过intensity()函数改变LED亮度。值得注意的是,intensity()函数的参数必须是int型,整数。我可以用while循环、for循环、delay结合的方式实现PWM呼吸灯:

while True:
        for value in range(0,255):
                pyb.LED(3).intensity(value)
                pyb.delay(10)
        pyb.delay(500)
        for value in range(0,255):
                pyb.LED(3).intensity(255-value)
                pyb.delay(10)
        pyb.delay(500)
        for value in range(0,255):
                pyb.LED(4).intensity(value)
                pyb.delay(10)
        pyb.delay(500)
        for value in range(0,255):
                pyb.LED(4).intensity(255-value)
                pyb.delay(10)
        pyb.delay(500)




       然后是通过ADC输入的方式改变PWM灯的亮度。pyboard中,ADC引脚都预先初始化好了的,直接用pyb.ADC(pyb.Pin('pin'))方法就可以启用ADC引脚,pin为具体的引脚,如我们都知道的PA0 PA1等,这次,我在PA0上接一个电位器,通过ADC值改变PWM的亮度,并打印ADC数值:


adc = pyb.ADC(pyb.Pin('A0'))
while True:
        value=int(adc.read()/16)
        pyb.LED(4).intensity(value)
        print(value)

页: [1]
查看完整版本: 【pyboardCN V2】PWM呼吸灯&ADC&PWMDAC