物联网开发笔记(49)- 使用Micropython开发ESP32开发板之控制RGB全彩LED模块
创始人
2024-04-10 21:19:27

一、目的

        这一节我们学习如何使用我们的ESP32开发板来控制RGB全彩LED模块。

二、环境

        ESP32 + RGB全彩LED模块 + Thonny IDE + 几根杜邦线

1,共阴极接线方法

 2,共阳极接线方法

 

三、代码

        1,亮指定的颜色,比如百度蓝。

我们使用取色工具或者截图工具,获得“百度一下”按钮的RGB值:78,110,242。我使用的工具名字是:Snipast ,大家可以百度一下下载,这个截图工具非常好用。

共阴极代码:如果使用Wokwi仿真,需要设置RGB LED的公共极的极性为阴极,默认状态为阳极。

 共阴极代码:

from machine import Pin, PWM
import time# 创建引脚对象
led_r = Pin(4, Pin.OUT)
led_b = Pin(2, Pin.OUT)
led_g = Pin(15, Pin.OUT)# 创建PWM对象
pwm_led_r = PWM(led_r)
pwm_led_r.freq(100)
# 注意公共极为负GND,对应LED引脚输出1即高电平才亮
pwm_led_r.duty(int(78 / 255 * 1023))  # 设置红色R的值pwm_led_g = PWM(led_g)
pwm_led_g.freq(100)
pwm_led_g.duty(int(110 / 255 * 1023))  # 设置绿色G的值pwm_led_b = PWM(led_b)
pwm_led_b.freq(100)
pwm_led_b.duty(int(242 / 255 * 1023))  # 设置蓝色B的值print("请看你想要的颜色。。。")  # 
time.sleep(1)

共阳极代码:如果使用Wokwi仿真,需要设置RGB LED的公共极的默认状态为阳极。

from machine import Pin, PWM
import time# 创建引脚对象
led_r = Pin(4, Pin.OUT)
led_b = Pin(2, Pin.OUT)
led_g = Pin(15, Pin.OUT)# 创建PWM对象
pwm_led_r = PWM(led_r)
pwm_led_r.freq(100)
# 注意公共极为正VCC,对应LED引脚输出0即低电平才亮
# 注意,占空比如果设置为1023可以理解为全部是高电平,0表示全部是低电平,又因为对应LED引脚输出0即低电平才量,所以要用1023减去
pwm_led_r.duty(1023 - int(78 / 255 * 1023))  # 设置红色R的值pwm_led_g = PWM(led_g)
pwm_led_g.freq(100)
pwm_led_g.duty(int(1023 - 110 / 255 * 1023))  # 设置绿色G的值pwm_led_b = PWM(led_b)
pwm_led_b.freq(100)
pwm_led_b.duty(int(1023 - 242 / 255 * 1023))  # 设置蓝色B的值print("请看你想要的颜色。。。")  
time.sleep(1)

我们使用共阳极,来实现呼吸灯的效果:

from machine import Pin, PWM
import time# 创建引脚对象
led_r = Pin(4, Pin.OUT)
led_b = Pin(2, Pin.OUT)
led_g = Pin(15, Pin.OUT)# 创建PWM对象
pwm_led_r = PWM(led_r)
pwm_led_r.freq(100)
# 注意,占空比如果设置为1023可以理解为全部是高电平,0表示全部是低电平,又因为对应LED引脚输出0即低电平才量,所以要用1023减去
pwm_led_r.duty(1023 - int(255 / 255 * 1023))  pwm_led_g = PWM(led_g)
pwm_led_g.freq(100)
pwm_led_g.duty(1023 - int(206 / 255 * 1023))pwm_led_b = PWM(led_b)
pwm_led_b.freq(100)
pwm_led_b.duty(1023 - int(70 / 255 * 1023))print("sleep 1...")     
time.sleep(1)# ------------ 以下是呼吸灯效果代码---------------
pwm_led_r.duty(1023)
pwm_led_g.duty(1023)
pwm_led_b.duty(1023)# 创建列表,存储pwm对象
leds = [pwm_led_r, pwm_led_g, pwm_led_b]while True:for led_pwm_obj in leds:for i in range(1023, -1, -1):led_pwm_obj.duty(i)time.sleep_ms(1)for i in range(1024):led_pwm_obj.duty(i)time.sleep_ms(1)led_pwm_obj.duty(1023)

四、演示效果

        1,百度蓝演示效果

共阴极:

共阳极:

 

         2,呼吸灯的效果

 也可点击如下链接查看呼吸灯效果:Wokwi Arduino and ESP32 Simulatoricon-default.png?t=M85Bhttps://wokwi.com/projects/348834521740739156

五、购买

共阴极彩色RGB模块,某宝链接如下,我给大家找了两个链接:
https://detail.tmall.com/item.htm?spm=a230r.1.14.215.4cb63fb9SXgxMz&id=41727902744&ns=1&abbucket=8

https://detail.tmall.com/item.htm?spm=a230r.1.14.91.4cb63fb9SXgxMz&id=548418198148&ns=1&abbucket=8

共阳极的RGB模块,某宝的链接如下,也是两个链接,大家按需购买即可:

https://item.taobao.com/item.htm?spm=a230r.1.14.21.77d55a8dxNHnGO&id=527867095097&ns=1&abbucket=8#detail

https://item.taobao.com/item.htm?spm=a230r.1.14.16.77d55a8dxNHnGO&id=529198654104&ns=1&abbucket=8#detail

 

 

相关内容

热门资讯

最新或2023(历届)长江大学... 长江大学文理学院是2004年4月,经湖北省教育厅同意、国家教育部批准成立,由长江大学举办的独立学院。...
最新或2023(历届)湖北商贸... 湖北商贸学院(原湖北工业大学商贸学院),是经国家教育部批准成立的一所全日制普通本科高等学校。校区占地...
最新或2023(历届)湖北汽车... 湖北汽车工业学院科技学院(国标代码:13248)创办于2003年,是一所经国家教育部批准成立的本科层...
最新或2023(历届)湖北医药... 湖北医药学院药护学院(原郧阳医学院药护学院)是经国家教育部批准(教发函[2004]12号)、湖北省唯...
最新或2023(历届)安阳师范... 安阳师范学院人文管理学院成立于 2003 年 4 月,是经国家教育部批准设立的独立学院。  学院坐落...