找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7550|回复: 20
打印 上一主题 下一主题
收起左侧

关于RGB灯的灰度/亮度调节

  [复制链接]
跳转到指定楼层
楼主
最近在写RGB点灯的程序。
通过PWM三路,实现了RGB的调色。
电路大致是这种。


现在我想调节亮度,网上查了,一种方法是三种基色同时递加或递减来实现亮度的调节,但是会造成颜色发生偏移问题。
另一种方法是采用HSV空间颜色来实现亮度调节,查阅HSV相关资料,知道可以将RGB转成HSV,但是HSV的数据要怎么
显示呢?


除了上面说的两种方法,还有什么方法可以调RGB的亮度呢?硬件上电路需要改变吗?或者是需要使用专用的驱动IC?

LED.png (36.14 KB, 下载次数: 64)

LED.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2020-11-4 13:02 | 只看该作者
这个电路已经是比较合理的设计,3路PWM驱动分别控制亮度,调整3个电阻比值确定白平衡。
回复

使用道具 举报

板凳
ID:514901 发表于 2020-11-4 14:53 | 只看该作者
用驱动IC吧,WS2812,很方便
回复

使用道具 举报

地板
ID:525511 发表于 2020-11-4 16:42 | 只看该作者
wulin 发表于 2020-11-4 13:02
这个电路已经是比较合理的设计,3路PWM驱动分别控制亮度,调整3个电阻比值确定白平衡。

3路pwm控制亮度调出来是不同的颜色,要保持某种颜色,然后不同的亮度,这个要怎么做呢?
比如我想显示粉红色,然后有10级不同的亮度
回复

使用道具 举报

5#
ID:278840 发表于 2020-11-4 16:46 | 只看该作者
老夫任我行 发表于 2020-11-4 16:42
3路pwm控制亮度调出来是不同的颜色,要保持某种颜色,然后不同的亮度,这个要怎么做呢?
比如我想显示粉 ...

这涉及到调节色温和亮度的比例问题,关键在于三个颜色的灯的功率调节
回复

使用道具 举报

6#
ID:525511 发表于 2020-11-4 17:02 | 只看该作者
器车人 发表于 2020-11-4 16:46
这涉及到调节色温和亮度的比例问题,关键在于三个颜色的灯的功率调节

调色温和亮度这些,应该就是HSV,YUV这些吧,我知道RGB数值是可以转成HSV的值,但是转了之后还是用3路PWM输出控制LED吗?
HSV取值范围是百份比,PWM取值是用占空比,是一样用法吗?比如HSV中,S的值是30%,pwm用占空比30%输出?
回复

使用道具 举报

7#
ID:525511 发表于 2020-11-4 17:05 | 只看该作者
郑汉松 发表于 2020-11-4 14:53
用驱动IC吧,WS2812,很方便

嗯,我也觉得是要用专用的驱动IC
回复

使用道具 举报

8#
ID:278840 发表于 2020-11-4 17:11 | 只看该作者
老夫任我行 发表于 2020-11-4 17:02
调色温和亮度这些,应该就是HSV,YUV这些吧,我知道RGB数值是可以转成HSV的值,但是转了之后还是用3路PWM ...

比如,你的两个灯都是100W,这里举例白色和暖色。假如此时你的整个灯的亮度100w,白色和暖色各50w,这时亮度一定,你要改变灯的颜色,就是要调节这个100W中,白色灯和暖色灯的比例,比如一个30W,那么另外一个就是70w,以此类推,当要保持色温不变,亮度变量或者变暗时,就要保持功率比例不变,两个颜色的功率整体上升或者下降,但比例不变。
回复

使用道具 举报

9#
ID:525511 发表于 2020-11-4 17:23 | 只看该作者
器车人 发表于 2020-11-4 17:11
比如,你的两个灯都是100W,这里举例白色和暖色。假如此时你的整个灯的亮度100w,白色和暖色各50w,这时亮 ...

你说的这种方法就是我题目里说到的方法一:三种基色同时递加或递减来实现亮度的调节。
但是网上的资料说这种方法会造成颜色偏移问题,所以我想问问还有没有其它方法
回复

使用道具 举报

10#
ID:525511 发表于 2020-11-4 17:27 | 只看该作者
郑汉松 发表于 2020-11-4 14:53
用驱动IC吧,WS2812,很方便

像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频低的应该也有压力
回复

使用道具 举报

11#
ID:1054970 发表于 2022-12-1 09:50 来自手机 | 只看该作者
我现在也在是
回复

使用道具 举报

12#
ID:1054970 发表于 2022-12-1 09:52 来自手机 | 只看该作者
我现在也是遇到这样的问题,楼主解决了吗?怎么在不改变它的色温情况下,调节亮度。可以分享一下你的建议吗?谢谢啦
回复

使用道具 举报

13#
ID:1054970 发表于 2022-12-1 09:55 来自手机 | 只看该作者
我现在也在做这个实验,楼主成功了吗?再不改变色温的情况下,去改变灯的亮度。能说说建议吗?谢谢啦
回复

使用道具 举报

14#
ID:1054970 发表于 2022-12-1 10:24 来自手机 | 只看该作者
我也在做这个实验,楼主做出来了吗?在色温不变的情况下,去调节它的亮度。有什么好的建议吗?求分享谢谢啦
回复

使用道具 举报

15#
ID:748788 发表于 2022-12-1 13:14 | 只看该作者
老夫任我行 发表于 2020-11-4 17:27
像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频 ...

51没问题的,你可以看看这篇:http://www.51hei.com/bbs/dpj-170852-1.html
8条腿的stc足够用
回复

使用道具 举报

16#
ID:1068875 发表于 2023-3-29 11:31 | 只看该作者
我现在也是遇到这样的问题,楼主解决了吗?怎么在不改变它的色温情况下,调节亮度。可以分享一下你的建议吗?谢谢啦
回复

使用道具 举报

17#
ID:69038 发表于 2023-3-29 14:06 | 只看该作者
本帖最后由 zhuls 于 2023-3-29 14:10 编辑
老夫任我行 发表于 2020-11-4 17:27
像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频 ...

那怕是12T的51,当晶振提升到30M时,也是会驱动2812的。网上有你搜一下
回复

使用道具 举报

18#
ID:775776 发表于 2023-3-29 16:05 | 只看该作者
WS2812方便,PWM调节占空比,频率快点
回复

使用道具 举报

19#
ID:77589 发表于 2023-3-30 15:17 | 只看该作者
老夫任我行 发表于 2020-11-4 17:27
像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频 ...

WS2812没用过,
用你的描述通信时序达到1us甚至ns级,并不是你想的那样要控制它的MCU输出时序必须达到这个等级;而指MCU输出的控制时序不能超过这个极限参数,如果超过了WS2812就反应不过来了。
一句话,你说的通信时序达到1us甚至ns级是限制MCU输出时序上限的,不是限制下限的!!!!!!!
回复

使用道具 举报

20#
ID:419909 发表于 2023-3-30 20:18 | 只看该作者
一直用STC15W系列驱动WS2812,一点问题都没有。
回复

使用道具 举报

21#
ID:291668 发表于 2023-3-30 22:56 | 只看该作者
测试了才会知道。有实物只管做实验就好了。动动手来的更直观
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表