全彩RGB灯

全彩LED灯控制原理

全彩 LED 灯, 实质上是一种把红、绿、 蓝单色发光体集成到小面积区域中的 LED 灯,控制时对这三种颜色的灯管输出不同的光照强度,即可混合得到不同的颜色,其混色原理与光的三原色混合原理一致。

例如,若红绿蓝灯都能控制输出光照强度为[0:255]种等级,那么该灯可混合得到使用RGB888 表示的所有颜色(包括以 RGB 三个灯管都全灭所表示的纯黑色)。

RGB 灯就是一种全彩 LED 灯,前面介绍 LED 基本控制原理的时候,只能控制 RGB 三色灯的亮灭, 即 RGB 每盏灯有[0:1]两种等级, 因此只能组合出 8种颜色。

要使用 STM32 控制 LED 灯输出多种亮度等级,可以通过控制输出脉冲的占空比来实现。
全彩RGB灯_第1张图片
示例图中列出了周期相同而占空比分别为 100%、 80%、 50 和 20%的脉冲波形, 假如利用这样的脉冲控制 LED 灯, 即可控制 LED 灯亮灭时间长度的比例。若提高脉冲的频率,LED 灯将会高频率进行开关切换, 由于视觉暂留效应,人眼看不到 LED 灯的开关导致的闪烁现象,而是感觉到使用不同占空比的脉冲控制 LED 灯时的亮度差别。即单个控制周期内,LED 灯亮的平均时间越长,亮度就越高,反之越暗。把脉冲信号占空比分成 256 个等级, 即可用于控制 LED 灯输出 256 种亮度, 使用三种这样的信号控制 RGB 灯即可得到 256*256*256 种颜色混合的效果。 而要控制占空比,直接使用 STM32 定时器的 PWM 功能即可。

软件设计

控制 RGB 灯的颜色实质就是控制各个 PWM 通道输出脉冲的占空比, 而占空比可以通过设置定时器相应通道的输出比较寄存器值修改,又因为定时器已经把单个控制脉冲周期分成[0:255]份,然后控制时只要把 RGB888 各通道的颜色值直接赋予给输出比较寄存器即可。
全彩RGB灯_第2张图片

你可能感兴趣的:(电子技术)