物联网开发笔记(49)- 使用Micropython开发ESP32开发板之控制RGB全彩LED模块

news2024/12/28 18:05:20

一、目的

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

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

万字长文,精美插图,带你玩转redis

资料下载: 链接: https://pan.baidu.com/s/1ue4Bnv4b4ifp0S0I_yOJ_w?pwdd9x9 提取码: d9x9 Redis学习笔记 1. 认识Redis 1.1 什么是NoSQL? SQL是关系型数据库,NoSQL是非关系型数据库 下面是几种非关系型数据库及其优缺点和应用场景。 分类…

[附源码]java毕业设计网上书店系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【分隔结构】动宾分离

动宾分离 动词 宾语 状语:如果宾语较长,状语较短,会转化为 动词 状语 宾语 While I disapprove of what you say, I would defend to the death your right to say it. 名词 引导词 主语 及物动词 You are the man that I will marry…

【K8S】学习笔记(一)

K8S学习笔记一、Kubernetes1.1、K8S功能1.2、K8S架构组件1.2.1、架构细节1.3、K8S核心概念1.3.1、Pod1.3.2、Volume1.3.3、Controller1.3.4、Deployment1.3.5、Service1.3.6、Label1.3.7、Namespace1.3.8、API二、搭建K8S2.1、K8S搭建规划2.1.1、单master集群2.1.2、多master集…

Html5的新增特性

Html5的新增特性主要是针对以前的不足,增加了一些新的标签,新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是IE9以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性。 声明&#xff1…

m基于迫零ZF准则的通信均衡器的matlab仿真

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 在数字通信系统中,码间串扰和加性噪声是造成信号传输失真的主要因素,为克服码间串扰,在接收滤波器和抽样判决器之间附加一个可调滤波器,用…

STM32CubeMX:串口DMA

DMA:直接储存区访问,DMA传输将数据从一个地址空间复制到另一个空间。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM何IO设备开辟一条直接传输数据的通道,从而可以提高C…

WSL下安装ubuntu 18.04 +meep进行FDTD仿真计算

WSL下安装ubuntu 18.04 meep进行FDTD仿真计算前言WSL安装过程打开虚拟环境下载Ubuntu并修改安装路径更改软件源MeepVScode远程访问测试程序前言 使用meep进行FDTD开发,开源。这里记录一下自己的安装过程,可以不安装在C盘,有助于后面进行修改…

【JVM】java的jvm类加载器和类加载子系统

JVM类加载器和类加载子系统一、JVM体系结构二、ClassLoader类介绍三、类加载子系统3.1 加载阶段3.1.1 引导类加载器(Bootstrap ClassLoader)3.1.2 扩展类加载器(Extension ClassLoader)3.1.3 应用程序类加载器(Applica…

Android入门第32天-Android中的Alert Dialog的使用大全

写在我的第200篇博客中的“前言” 这篇是我的第200篇博客。落笔写正文前我感触彼深。自从一个小P孩那时写博客只是为了一时的好玩,到逐步发觉只有让越来越多的人理解了技术,把技术普及到门槛越来越低,才会反推技术人员的处镜越来越好。因为必…

Allegro如何输出STP文件操作指导

Allegro如何输出STP文件操作指导 Stp文件用于查看实物,Allegro支持输出STP格式的文件,下面介绍如何输出,操作步骤如下 选择File-export-STEP 根据自己的需要选择参数 如果需要输出电气过孔,选electronic hole,需要外层铜皮,勾选External Copper 常规默认值就可以了,…

UE5笔记【六】流明引擎Lumen简介;Lumen处理发光物体。

RealTimeGlobal illumination System。实时全局照明系统。 打开Lumen 从设置中,打开【项目设置】往下找【渲染Render】 然后再GI中将途中两项选择为Lumen。 同时需要一个后期处理量PostProcessVolume。刚好场景中有。 需要勾选【全局光照GI】中的【方法】选定为【…

Spring七天速成:入门必看(二)

-----持续更新Spring入门系列文章----- 如果你也喜欢Java和算法,欢迎订阅专栏共同学习交流! 你的点赞、关注、评论、是我创作的动力! -------希望我的文章对你有所帮助-------- 前言: 在前篇文章当中我们已经大概了解了Spring的…

QT布局之QGridLayout嵌套QHBoxLayout

搞嵌入式系统开发的,往往都是真全栈开发者。从硬件到驱动到操作系统到应用以及功能界面,是哪里需要搞哪里。这不,最近需要开发一个基于QT的界面功能,涉及到控件布局。因为不熟悉,走了一些弯路。这里将相关调试记录下来…

计算机网络面试题【面试】

计算机网络面试题前言OSI 七层网络模型应用层表示层会话层传输层网络层数据链路层物理七层总结输入URL后会发生什么1. DNS域名解析2. 三次握手建立TCP连接3. 发送HTTP网络请求4. 服务器处理请求5. 服务器返回响应6. 四次挥手断开TCP连接7. 解析HTMLDNS解析过程DNS解析&#xff…

Froala Editor JavaScript WYSIWYG HTML 编辑器

Froala Editor JavaScript WYSIWYG HTML 多用途、易于使用的 WYSIWYG 编辑器,优雅 每次点击,我们都会让网络编辑变得更简单、更强大、更愉快 安全、快速、智能和稳健。 Froala Editor 是一个 用 JavaScript 编写 的轻量级 WYSIWYG HTML 编辑器&#xff0…

【计算机毕业设计】小型OA系统设计与实现Springboot

一、系统截图(需要演示视频可以私聊) 摘 要 在Internet高速发展的今天,我们生活的各个领域都涉及到计算机的应用,其中包括小型OA系统设计与实现的网络应用,在国外小型OA系统设计与实现已经是很普遍的方式,不…

G1D17-研究方向rce45-49不快乐就去敲敲代码

现在每天晚上都觉得一天结束的好快呀~每天早上都很幸福,因为还有一天的时间呐!!! 今天主要的事情是完成老师的作业——论文主题阅读的report,看一下动态规划(emm最近喜欢啃这种让人掉头发的问题~&#xff0…

JADE: Adaptive Differential Evolution withOptional External Archive

0、论文背景 本文在DE的基础上,提出了一种新的差分进化(DE)算法JADE,通过实现一种新的突变策略DE/current-to-pbest,采用可选的外部存档和参数的自适应更新,来提高优化性能。上述两种操作使种群多样化,并提高了收敛性…

Mybatis源码解析(六):缓存执行器操作流程

Mybatis源码系列文章 手写源码(了解源码整体流程及重要组件) Mybatis源码解析(一):环境搭建 Mybatis源码解析(二):全局配置文件的解析 Mybatis源码解析(三):映射配置文件的解析 Mybatis源码解析(四):s…