一、背景

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

led-module.PNG

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

board-logo.PNG

二、颜色表

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

color-table.PNG

颜色组合关系表

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

三、电路

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

leds.png

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

circuit.png

四、程序设计

初始化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:青色