通过使用 XMC1202 和 Arduino 以及 RGB LED 保护板,学习如何通过简单的 I²C 命令来控制 LED 灯带
扫描二维码
随时随地手机看文章
带有 XMC1202 的 RGB LED 照明护板是一款用于驱动高亮度 RGB 灯带的智能评估板。它集成了 XMC1202 微控制器,并内置了亮度颜色控制单元(BCCU),能够实现无闪烁的调光和精确的颜色控制。该护板与 Arduino 兼容,并通过简单的 I²C 接口与主机板进行通信。
主要特点:
•与Arduino兼容,可直接安装在英飞凌的XMC1100启动套件以及Arduino Uno R3 上。
•集成式 XMC1202 微控制器搭配内置 BCCU,用于实现智能且无闪烁的 LED 控制。
•三个独立的恒流通道(红/绿/蓝),每个通道具有 12 位的分辨率。
•宽范围的直流输入电压,可针对 12V/24V 灯具应用进行配置。
•简单的 I²C 接口,支持 Arduino 库。
•高速脉冲密度调制,实现平滑调光和色彩混合。
本教程将指导您如何在 Arduino IDE 中使用 XMC1202 来设置和使用 RGB LED 照明模块。您将学习如何配置硬件、安装必要的软件库,并通过简单的 API 调用来控制 RGB 灯带的色彩混合和亮度调节。
您将达成的目标:在本教程结束时,您的 RGB 灯带将能够流畅地循环显示基本颜色(红、绿、蓝)以及预设颜色(如紫红色、绿色和橄榄色),并且亮度可调节(可调暗)。
1. 硬件设置
1.1 将 RGB 灯板安装在启动套件上
•在继续操作之前,请将引脚插头焊接到英飞凌启动套件的 XMC1100 上。
•将英飞凌 RGB LED 屏蔽板(型号为 XMC1202)通过与 Arduino 兼容的接口连接到英飞凌启动套件(型号为 XMC1100)上。
•务必确保所有插针都已对齐并完全插入到位。
1.2 连接 RGB 灯带
•识别屏蔽层上的 R、G、B 和供电端子。
•按照护套的使用说明连接 DEKO-Light SAUNA-COB-24V 灯带:——红色通道 → R 输出——绿色通道 → G 输出——蓝色通道 → B 输出——根据灯带类型提供 24 伏电源及公共回路(注意极性!)
•将电线完全插入压入式接线端子中,以确保接触良好。
1.3 连接电源
将一个 24 伏直流电源(额定电流 0.5 安培,功率不超过 15 瓦)连接到防护罩的电源输入端口。DEKO-Light SAUNA-COB-24V 灯带需要 24 伏的输入电压——在通电之前,请确保您的电源电压符合这一要求。
在开启设备之前,请再次确认极性(正极“V+”和接地“GND”)是否正确。
1.4 将板子连接到电脑上
使用 USB 数据线将 XMC1100 启动套件连接到您的电脑上。
在 Arduino IDE 中,请确认板子和 COM 端口已被正确检测到。
2. 软件安装设置
在继续操作之前,请务必从这里下载 Arduino 开发环境,并从这里下载适用于 Arduino 的 XMC 支持软件。
我们将使用 Arduino 库来驱动 RGB 灯光控制板。在 Arduino 调试环境中,依次点击“文件”→“包含库”→“管理库”。在弹出的搜索框中输入“RGB-LED-Lighting-Shield”进行搜索。
注意:请务必安装“RGB-LED-照明护板”(带连字符),而非较旧的“RGB LED 照明护板 XMC1202”版本。
安装好库并打开 Arduino IDE 后,请配置您的板子:
点击“工具”→“板卡”→“KIT_XMC1100_BOOT_001”板卡,将其设为您的活动板卡。
在“工具”菜单下的“端口”选项中选择正确的 COM 端口,以确保与板卡能够进行正常通信。
3. 代码演示/代码走查
在本节中,我们将详细介绍 RGB-LED-照明扩展板库所提供的主要功能,并提供一些示例代码以展示该扩展板能够实现的功能。
主要功能:
•setIntensityRGB(r, g, b):直接设置 R/G/B 通道的强度(每个通道均为 12 位,范围为 0x000 到 0xFFF)。
•setColor(COLOR_NAME):设置预定义的命名颜色,例如红色、绿色、蓝色、紫红色、橄榄绿、黑色。
•setIntensityRed(value) / setIntensityGreen(value) / setIntensityBlue(value):可独立调整单个通道的亮度,而不会影响其他通道。
•setDimmingLevel(level):设置全局亮度(调暗程度),范围为 0x000(关闭)至 0xFFF(最大值)。
•setFadeRate(value):控制亮度变化发生的速度。
•setWalkTime(value):控制颜色之间平滑线性过渡的时间。
该代码首先会包含必要的头文件:
在添加了头文件之后,我们创建了一个名为“RGB_Shield”的屏蔽对象,以便通过 I²C 来访问所有控制接口。
3.1 设置功能
“setup()”函数用于初始化防护装置:
RGB_Shield.begin() 函数用于启动与板载 XMC1202 控制器的 I²C 通信。RGB_Shield.setDimmingLevel(0xFFF) 会将全局亮度设置为 100%,从而确保所有色彩效果都能清晰可见。
3.2 基于直接 RGB 值的颜色控制
若要设定精确的通道强度,请使用以下方法:RGB_Shield.setIntensityRGB(红色、绿色、蓝色),每个通道均为 12 位(范围为 0x000 至 0xFFF),因此您可以精确混合颜色:
当您希望完全手动控制颜色混合时,这种方法是最理想的。
3.3 基于预设颜色名称的色彩控制
对于更简单的代码,您可以使用命名颜色:RGB_Shield.setColor(COLOR_NAME
例如:
这在演示中很有用,因为该代码比直接的 RGB 十六进制值更容易阅读。
3.4 独立通道控制
如果您想调整一个频道而无需改动其他频道,请使用:
这对于条带校准或检查通道线路连接来说尤其有用。
3.5 亮度与过渡效果
除了静态颜色外,该护盾还支持动态效果。RGB_Shield.setFadeRate(value) 用于控制亮度变化的快慢程度。RGB_Shield.setWalkTime(value) 用于控制颜色目标之间的线性过渡时间。
这两个参数的取值范围是从 0x000(立即生效)到 0xFFF(最慢)。
时间计算:实际的转换时间取决于内部时钟频率。其近似公式为:
衰减率时间 ≈ 值 × 10 毫秒(对于值小于 0x100 的情况)
WalkTime 时间 ≈ 值 × 10 毫秒(对于值小于 0x400 的情况)
例如:
注意:这些数值为近似值。您可能需要根据您的硬件配置和视觉偏好进行适当调整。
快速参考值:
3.6 简单测试示例
基于上述介绍的功能,下面这个简单的示例可用于快速验证 RGB LED 照明模块是否正常工作。该程序首先循环显示三种基本颜色,然后切换到几个预设颜色,最后演示亮度调节和简单的过渡效果。
这个简短的例子证实了防护罩运行正常,且主要的颜色控制功能也按预期效果发挥着作用。
结论
现在您已经拥有了一个功能完备的 RGB LED 照明系统,该系统采用了英飞凌 RGB LED 照明模块(搭配 XMC1202)以及 XMC1100 启动套件。
只需进行几次 API 调用,您就能:
•循环切换基本颜色和预设颜色。
•将自定义颜色与全 12 位每通道精度相结合。
•实时调整全局亮度。
•添加平滑的渐隐和色彩过渡效果,以营造动态的环境照明效果。
这种设置提供了一个灵活的基础平台,可以向多个方向进行扩展,涵盖从建筑氛围照明、互动展示系统到智能家居装饰照明等诸多领域。
本文编译自hackster.io





