android 通过串口来控制pwm的输出_用Python控制硬件9-PWM呼吸灯

c0b4f5f8b04965d0029838d1d9d50d31.png

PWM占空比调制是嵌入式系统很实用功能,常用于控制输出功率。下面用上次搭建的简易实验板演示如何使用PWM生成渐变的呼吸灯效果。

先打开串口终端,看看PWM命令语法:

=>pwm --help
usage: pwm [-i <pwm_index>] [-v <value>] [-f <frequency>] [-r <range>] [-n] [-I] [-D]
options:
 -i/--index      index from 0
 -v/--value      value param
 -f/--frequency  1~100000(default 1000)hz
 -r/--range      default 100
 -n/--number     query
 -I/--init       init
 -D/--deinit     deinit
=>

实验板的PA0~PA3对应4个PWM输出,先初始化如下:

=>pwm -I
=>

此时4个输出口都已配置成默认的1kHz频率输出,50%占空比的方波,可调范围0~100。

将4个通道分别改成20%、40%、60%、80%。

=>pwm -i 0 -v 20
=>pwm -i 1 -v 40
=>pwm -i 2 -v 60
=>pwm -i 3 -v 80
=>

使用后同样需要释放资源。

=>pwm -D
=>

下面用Python控制三色LED交替实现呼吸灯效果。

# PWM breathing LEDs
import time
import math
from mcush import *
s = Mcush.Mcush('/dev/ttyACM0') 
s.pwm_init(init_value=0)
while True:
    for i in [0, 1, 2]:
        t0 = time.time()
        while True:
            t = time.time()
            if t > t0 + 2*math.pi:
                break
            val = int(100*(math.sin((t-t0)/2)**2))
            s.pwm( index=i, value=val )
            print( "%d %d" %(i, val) )
        s.pwm( index=i, value=0 )
73b2f161861fba37f731a1bff969c307.png
用PWM控制呼吸灯https://www.zhihu.com/video/1163754490779062272
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值