物联网开发笔记(49)

编程入门 行业动态 更新时间:2024-10-11 17:22:42

物联网开发<a href=https://www.elefans.com/category/jswz/34/1770047.html style=笔记(49)"/>

物联网开发笔记(49)

一、目的

        这一节我们学习如何使用我们的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 Simulator

五、购买

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

.htm?spm=a230r.1.14.91.4cb63fb9SXgxMz&id=548418198148&ns=1&abbucket=8

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

.htm?spm=a230r.1.14.21.77d55a8dxNHnGO&id=527867095097&ns=1&abbucket=8#detail

.htm?spm=a230r.1.14.16.77d55a8dxNHnGO&id=529198654104&ns=1&abbucket=8#detail

 

 

更多推荐

物联网开发笔记(49)

本文发布于:2024-03-14 01:06:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735288.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!