标题: 关于RGB灯的灰度/亮度调节 [打印本页]

作者: 老夫任我行    时间: 2020-11-4 10:32
标题: 关于RGB灯的灰度/亮度调节
最近在写RGB点灯的程序。
通过PWM三路,实现了RGB的调色。
电路大致是这种。


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


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

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

LED.png

作者: wulin    时间: 2020-11-4 13:02
这个电路已经是比较合理的设计,3路PWM驱动分别控制亮度,调整3个电阻比值确定白平衡。
作者: 郑汉松    时间: 2020-11-4 14:53
用驱动IC吧,WS2812,很方便
作者: 老夫任我行    时间: 2020-11-4 16:42
wulin 发表于 2020-11-4 13:02
这个电路已经是比较合理的设计,3路PWM驱动分别控制亮度,调整3个电阻比值确定白平衡。

3路pwm控制亮度调出来是不同的颜色,要保持某种颜色,然后不同的亮度,这个要怎么做呢?
比如我想显示粉红色,然后有10级不同的亮度
作者: 器车人    时间: 2020-11-4 16:46
老夫任我行 发表于 2020-11-4 16:42
3路pwm控制亮度调出来是不同的颜色,要保持某种颜色,然后不同的亮度,这个要怎么做呢?
比如我想显示粉 ...

这涉及到调节色温和亮度的比例问题,关键在于三个颜色的灯的功率调节
作者: 老夫任我行    时间: 2020-11-4 17:02
器车人 发表于 2020-11-4 16:46
这涉及到调节色温和亮度的比例问题,关键在于三个颜色的灯的功率调节

调色温和亮度这些,应该就是HSV,YUV这些吧,我知道RGB数值是可以转成HSV的值,但是转了之后还是用3路PWM输出控制LED吗?
HSV取值范围是百份比,PWM取值是用占空比,是一样用法吗?比如HSV中,S的值是30%,pwm用占空比30%输出?
作者: 老夫任我行    时间: 2020-11-4 17:05
郑汉松 发表于 2020-11-4 14:53
用驱动IC吧,WS2812,很方便

嗯,我也觉得是要用专用的驱动IC
作者: 器车人    时间: 2020-11-4 17:11
老夫任我行 发表于 2020-11-4 17:02
调色温和亮度这些,应该就是HSV,YUV这些吧,我知道RGB数值是可以转成HSV的值,但是转了之后还是用3路PWM ...

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

作者: 老夫任我行    时间: 2020-11-4 17:23
器车人 发表于 2020-11-4 17:11
比如,你的两个灯都是100W,这里举例白色和暖色。假如此时你的整个灯的亮度100w,白色和暖色各50w,这时亮 ...

你说的这种方法就是我题目里说到的方法一:三种基色同时递加或递减来实现亮度的调节。
但是网上的资料说这种方法会造成颜色偏移问题,所以我想问问还有没有其它方法
作者: 老夫任我行    时间: 2020-11-4 17:27
郑汉松 发表于 2020-11-4 14:53
用驱动IC吧,WS2812,很方便

像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频低的应该也有压力
作者: 1068956    时间: 2022-12-1 09:50
我现在也在是
作者: 1068956    时间: 2022-12-1 09:52
我现在也是遇到这样的问题,楼主解决了吗?怎么在不改变它的色温情况下,调节亮度。可以分享一下你的建议吗?谢谢啦
作者: 1068956    时间: 2022-12-1 09:55
我现在也在做这个实验,楼主成功了吗?再不改变色温的情况下,去改变灯的亮度。能说说建议吗?谢谢啦
作者: 1068956    时间: 2022-12-1 10:24
我也在做这个实验,楼主做出来了吗?在色温不变的情况下,去调节它的亮度。有什么好的建议吗?求分享谢谢啦
作者: wwh2382    时间: 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足够用
作者: huangchengsh    时间: 2023-3-29 11:31
我现在也是遇到这样的问题,楼主解决了吗?怎么在不改变它的色温情况下,调节亮度。可以分享一下你的建议吗?谢谢啦
作者: zhuls    时间: 2023-3-29 14:06
本帖最后由 zhuls 于 2023-3-29 14:10 编辑
老夫任我行 发表于 2020-11-4 17:27
像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频 ...

那怕是12T的51,当晶振提升到30M时,也是会驱动2812的。网上有你搜一下
作者: wangyuejia2015    时间: 2023-3-29 16:05
WS2812方便,PWM调节占空比,频率快点
作者: Longan.Wang    时间: 2023-3-30 15:17
老夫任我行 发表于 2020-11-4 17:27
像WS2812这种芯片,据说通信时序是达到1微秒甚至是纳秒级的,这种要求51单片机应该玩不转吧?
stm32主频 ...

WS2812没用过,
用你的描述通信时序达到1us甚至ns级,并不是你想的那样要控制它的MCU输出时序必须达到这个等级;而指MCU输出的控制时序不能超过这个极限参数,如果超过了WS2812就反应不过来了。
一句话,你说的通信时序达到1us甚至ns级是限制MCU输出时序上限的,不是限制下限的!!!!!!!
作者: wfqxgw    时间: 2023-3-30 20:18
一直用STC15W系列驱动WS2812,一点问题都没有。
作者: li64331218    时间: 2023-3-30 22:56
测试了才会知道。有实物只管做实验就好了。动动手来的更直观




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1