FRDM-MCXN947开发板之RGB灯

一、背景

  • RGB LED:通过红、绿、蓝三种颜色组合发光的LED,可以理解由三个不同发光属性的LED组成,这个是LCD平板显示原理的基础,一个LED相当于屏幕上面的一个像素

  • FRDM-MCXN947集成了一块RGB LED,它由三个GPIO口驱动,这里由于GPIO的电平只能是0或者1,所以这里的RGB LED并不能像LCD的单个像素那样合成256x256x256种颜色

二、颜色表

三原色合成颜色关系表如图所示

颜色组合关系表

颜色 Red Green Blue 英文名
1 0 0 Red
绿 0 1 0 Green
0 0 1 Blue
品红 1 0 1 Pink
1 1 0 Yellow
0 1 1 Cyan
1 1 1 White

三、电路

电路引脚对应关系:R -> P0_10,G -> P0_27,B -> P1_2

驱动方式:上拉接VCC,通过灌电流方式接入GPIO,低电平发光

四、程序设计

初始化RGB LED

#include "drv_pin.h"
#define LEDR_PIN ((0*32)+10)
#define LEDG_PIN ((0*32)+27)
#define LEDB_PIN ((1*32)+2)
......
{
rt_pin_mode(LEDR_PIN, PIN_MODE_OUTPUT); /* Set GPIO as Output */
rt_pin_mode(LEDG_PIN, PIN_MODE_OUTPUT); /* Set GPIO as Output */
rt_pin_mode(LEDB_PIN, PIN_MODE_OUTPUT); /* Set GPIO as Output */
}

动态展示各种混合颜色

while (1)
{
// Red
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_HIGH);
rt_pin_write(LEDB_PIN, PIN_HIGH);
rt_thread_mdelay(delay);
// Green
rt_pin_write(LEDR_PIN, PIN_HIGH);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_HIGH);
rt_thread_mdelay(delay);
// Blue
rt_pin_write(LEDR_PIN, PIN_HIGH);
rt_pin_write(LEDG_PIN, PIN_HIGH);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
// Yellow
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_HIGH);
rt_thread_mdelay(delay);
// Pink
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_HIGH);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
// Cyan
rt_pin_write(LEDR_PIN, PIN_HIGH);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
// White
rt_pin_write(LEDR_PIN, PIN_LOW);
rt_pin_write(LEDG_PIN, PIN_LOW);
rt_pin_write(LEDB_PIN, PIN_LOW);
rt_thread_mdelay(delay);
}

五、总结

纸上得来终觉浅,绝知此事要躬行,曾经在大学学过LCD平板显示原理,知道像素的显示原理,知道三原色,但一直没有机会实操,我也不大清楚青色(cyan)居然由绿色(green)和蓝色(blue)合成的

六、术语

  • RGB:red green blue,红色、绿色、蓝色三种颜色的通称
  • LED:light emittiing diode,发光二极管
  • LCD:Liquid Crystal Display,液晶显示
  • pink:品红、粉红
  • cyan:青色
posted @   hywing  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示