大家好,
我目前正在使用恩智浦 FRDM-MCXN236 开发板学习嵌入式系统,并使用 mcuxPresso SDK ctimer_pwm_example 尝试板载 RGB LED。
我的目标是在板载 RGB LED 上生成橙色。由于橙色通常是通过混合高亮度的红色和较低亮度的绿色来生成的,同时保持蓝光关闭状态,因此我希望通过PWM占空比控制来实现这一目标。
以下是我目前的发现。
原始示例的配置是
port4_19 -> CT3_MAT3
板载 RGB 指示灯亮绿色。
然后,我进行了实验,只更改了密码:
PORT_SetPinConfig(PORT4, XX,&port4_19_pinR10_config);
意见:
PORT4_19 点亮绿色
PORT4_18 点亮红色
PORT4_17 点亮蓝色
如果使用相同的配置同时配置 PORT4_17 和 PORT4_18,就会得到品红色(红+蓝)。
这让我想到,同一个 CTIMER 输出信号被路由到多个 RGB 通道。
主要问题是,改变 DUTY_CYCLE 值(如 0、25、50、75、99 或 100)似乎不会产生有意义的亮度变化。因此,我无法独立控制红色和绿色通道的强度,也就无法生成橙色。
我目前的理解是,我可能使用相同的 PWM 输出驱动多个 RGB 通道,这意味着所有通道都具有相同的占空比,不能有独立的亮度级别。
请帮助我解决以下问题:
如果能对该主板上的 RGB LED 硬件路由、引脚多路复用以及推荐的 RGB 混色方法进行任何解释,我们将不胜感激。
谢谢!
谢谢你的帖子!
1.RGB 的每种颜色亮度均可独立调节。
2.
P4_17:CTimer 3 MAT 1
P4_18:CTimer 3 MAT 2
P4_19:CTimer 3 MAT 3
3. 您可以选择相同的通道来控制其余 3 个信号的 PWM 周期。
4. 是的,该示例的预期用途是演示PWM。
5. 我在本地测试了一下,PWM 成功控制了亮度,但混合后的颜色并非橙色,而是更偏向黄色。这可能是主板上RGB Led的局限性。
嗨@carlos_o !感谢你的回复。这样我就可以控制多个通道的占空比,产生除了橙色以外的不同颜色,例如粉色和紫色。
由于绿色部分的功率增加,为了获得橙色,绿色的值被设置为较低的值(我认为是更高的占空比,因为我修改了 SDK 函数)。
现在准备尝试使用单独的RGB LED灯泡。再次感谢您的帮助。