当前位置:   article > 正文

FRDM-MCXN947开发板之RGB灯

FRDM-MCXN947开发板之RGB灯

一、背景

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

在这里插入图片描述

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

在这里插入图片描述

二、颜色表

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

在这里插入图片描述

颜色组合关系表

颜色RedGreenBlue英文名
100Red
绿010Green
001Blue
品红101Pink
110Yellow
011Cyan
111White

三、电路

电路引脚对应关系: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 */
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

动态展示各种混合颜色

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);               
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

五、总结

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

六、术语

  • RGB:red green blue,红色、绿色、蓝色三种颜色的通称
  • LED:light emittiing diode,发光二极管
  • LCD:Liquid Crystal Display,液晶显示
  • pink:品红、粉红
  • cyan:青色
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/425251
推荐阅读
相关标签
  

闽ICP备14008679号