【MicroPython+ESP32+rgb三色灯实现PWM控制基色光强,可照出千万种颜色光】

您所在的位置:网站首页 三基色每种颜色的取值范围 【MicroPython+ESP32+rgb三色灯实现PWM控制基色光强,可照出千万种颜色光】

【MicroPython+ESP32+rgb三色灯实现PWM控制基色光强,可照出千万种颜色光】

2024-07-13 12:47:11| 来源: 网络整理| 查看: 265

MicroPython+ESP32+rgb三色灯 MicroPython实现【RGB3色LED】的千万种颜色闪烁1、PWM控制LED的亮度2、什么是RGB色值 ?3、如何用函数实现RGB色值4、保存色值并调用5、实验效果与源码

MicroPython实现【RGB3色LED】的千万种颜色闪烁

众所周知,只要拥有了红、绿、蓝三种基本颜色就可以调配出上千万种其他颜色,无论是颜料,还是灯光同理。 在 “rgb三色LED模块”上就是有红/绿/蓝3个LED灯,改变三个LED的灯光强弱,混合后就会照射出不同的颜色光。

RGB3色LED模块

1、PWM控制LED的亮度

1.1、具体PWM原理相信大家都知晓,这里直接上程序:

from machine import Pin from machine import PWM #定义LED控制对象 led = PWM(Pin(2),freq=1000,duty=0) #设置占空比,改变LED亮度 value = 1000 led.duty(value) # value取值范围: 0 ~ 1023

LED的亮度便是通过改变 value值来控制PWM输出

1.2、为后文铺垫就是: 三个LED(红、绿和蓝)分别有三PWM输出控制其亮度

#定义对象 红/绿/蓝LED控制的PWM 输出 rgbR = PWM(Pin(2), freq=1000,duty=0) rgbG = PWM(Pin(4), freq=1000,duty=0) rgbB = PWM(Pin(16), freq=1000,duty=0) 2、什么是RGB色值 ?

2.1、 色值:指的是该种颜色在不同的颜色模式中所对应的颜色值。

红色在RGB颜色模式中所对应的值就是255,0,0;绿色在RGB颜色模式中所对应的值就是0,255,0;蓝色在RGB颜色模式中所对应的值就是0,0,255。 RGB色值

2.2、 在RGB颜色模式中,每一个颜色都由红色、绿色、蓝色混合而成。将颜色由一个十六进制符号来定义,这个符号由红色、绿色和蓝色的值组成(RGB)。每种颜色的最小值是 0(十六进制:#00)。最大值是 255(十六进制:#FF)

2.3、 通过计算 256 x 256 x 256,从 0 到 255 的红色、绿色和蓝色的值一共可以组合出 1600 万种不同的颜色。

3、如何用函数实现RGB色值

3.1、十进制参数(red, green, blue)

# 设置颜色函数 def set_color(red, green, blue): rgbR.duty(int(red * 1023 / 255)) rgbG.duty(int(green * 1023 / 255)) rgbB.duty(int(blue * 1023 / 255))

改变的是三个rgb颜色LED的PWM占空比,分成255等分 红绿蓝三个参数就控制在0 ~ 255,符合常理了

例如: #rgb三色LED显示颜色如下 set_color(255,255,255) # 白色 set_color(255, 255, 0) # 黄色

3.2、十六进制参数(color_hex) 取值范围:000000 ~FFFFFF

def coler_HexDec(hex_color): r = int(hex_color[0:2], 16) g = int(hex_color[2:4], 16) b = int(hex_color[4:6], 16) set_color(r,g,b)

是,将一个6位十六进制数分解成 3个十进制数 并传入 set_color() 函数

例如:# rgb三色LED显示颜色如下 coler_HexDec("FFFFFF") # 白色 coler_HexDec("FFFF00") # 黄色 4、保存色值并调用

一些链接: 查 看 :RGB 颜色表 好用的工具:RGB颜色选择器

4.1、常用的颜色可用 字典 保存 这里两种字典方法,分别保存了十进制色值和十六进制色值:

# 十进制颜色值 RGB_color = ['红','绿','蓝','黄','青' , '橙','紫','白','黑','灰'] RGB_value = ['(255,0,0)','(0,255,0)','(0,0,255)','(255, 255, 0)','(0, 255, 255)', '(255, 165, 0)', '(128, 0, 128)','(255,255,255)','(0,0,0)','(128, 128, 128)'] color_dict = dict(zip(RGB_color, RGB_value)) # 十六进制颜色值 colorhex = {"红": "FF0000", "绿": "00FF00", "蓝": "0000FF", "黄": "FFFF00", "紫": "FF00FF", "白": "FFFFFF", "黑": "000000", "碧绿": "70DB93", "巧克力": "5C3317", "米": "f5f5dc"}

通过上面两个颜色设置函数,就可以实现字典里颜色的显示。

如: # 循环点亮 color_dict 字典里的颜色 for i in range(len(colorname)): get_color(colorname[i]) time.sleep(2) # 循环点亮 colorhex 字典里的颜色 HEX_colors = tuple(colorhex.keys()) HEX_values = tuple(colorhex.values()) for i in range(len(HEX_values)): coler_HexDec(HEX_values[i]) print(f'{HEX_colors[i]}色:{HEX_values[i]}') time.sleep_ms(500)

4.2、用文本保存颜色

假如 RGBcolors.txt 内容为: {"黑": "000000","白": "FFFFFF", "红": "FF0000", "绿": "00FF00", "蓝": "0000FF", "黄": "FFFF00", "青": "00FFFF","银": "C0C0C0"} 读取 文本内容 并用 json 来转化为字典的函数 import json def read_colortxt(txt_path): """注释: *****给一个txt文本路径,获取内容并用json转换为字典。 *****注意:文本保存的格式应符合 json字符串转字典的要求 *****文本保存内容格式为:{"name": "XiaoMing", "age": "17", "address": "China"} param txt_path : 保存颜色的TXT文本路径,(例如:"d/colors.txt") 返回值: 一个保存颜色hex数据的字典 """ try : with open(txt_path, mode='r', encoding="uft-8") as file: dcit =json.loads(file.read()) return dcit except Exception as e: print(f'读取发生错误: {e}') return None

结合上述两个函数,读取文本中的颜色保存到字典并调用显示:

例如: colors = read_colortxt("RGBcolors.txt") # 打开并获取RGBcolors.txt的颜色 coler_HexDec(colors['白']) 5、实验效果与源码

1)RGB三色LED实验效果

2)本文用到的程序和文本:点击获取,密码:rgb32



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭