Micropython 呼吸灯,使用 machine.pwm

学习 ESP32 micropython,使用网路课件最方便:

三、PWM呼吸灯

利用PWM的调制作用,制作呼吸灯,pwm() 没有解释的很清楚,再来一个连接

PWM (脉宽调制)

1
2
3
4
5
6
7
8
9
10
from machine import Pin, PWM
 
pwm0 = PWM(Pin(0))      # 从1个引脚中创建PWM对象
pwm0.freq()             # 获取当前频率
pwm0.freq(1000)         # 设置频率
pwm0.duty()             # 获取当前占空比
pwm0.duty(200)          # 设置占空比
pwm0.deinit()           # 关闭引脚的 PWM
 
pwm2 = PWM(Pin(2), freq=20000, duty=512) # 在同一语句下创建和配置 PWM

 

套上 ESC32-C3 CORE开发板

保存 + 执行 breath_pwmt_ESP32-C3_USB.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 合宙CORE ESP32-C 核心板板载2颗LED +  16MB Flash(原4MB)
# D4(GPIO12) 高电平有效
# D5(GPIO13) 高电平有效
 
from machine import Pin, PWM
import time
 
# pwm2 = PWM(Pin(2), freq=20000, duty=512) # 在同一语句下创建和配置 PWM
led_d4 = PWM(Pin(12), freq=1024, duty=0) # create PWM object from D4-GPIO12
led_d5 = PWM(Pin(13), freq=1024, duty=1023) # create PWM object from D5-GPIO13
# led_d4.freq(1024)            # set PWM frequency from 1Hz to 40MHz
# led_d5.freq(1024)            # set PWM frequency from 1Hz to 40MHz
time.sleep_ms(1000)
 
while True:
    for i in range(0, 1024):
        led_d4.duty(i)
        led_d5.duty(1023-i)
        time.sleep_ms(1)
    for i in range(1023, -1, -1):
        led_d4.duty(i)
        led_d5.duty(1023-i)
        time.sleep_ms(1)

  

 

 LED D4/ D5 交替呼吸,心得:

  1. pwm2 = PWM(Pin(2), freq=20000, duty=512) # 在同一语句下创建和配置 PWM

  2. line 17 报错,竟然是 line 16 for 循环漏了冒号:。低级错误,呵呵

 

posted @   mickey_163  阅读(514)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示