FRDM-MCXN947開發板之RGB燈

hywing發表於2024-04-13

一、背景

  • 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:青色

相關文章