问答
直播中

GalaIO

9年用户 38经验值
擅长:MEMS/传感技术 嵌入式技术
私信 关注

【MiCOKit试用体验】MICOKIT的呼吸三色LED

本帖最后由 GalaIO 于 2015-9-27 13:46 编辑
. B' o. b& E  q$ l6 n) o0 p
; }: C* l' Q' ?$ ~- S- M     上次的帖子简单介绍了MICOKIT的调试环境和使用KEIL的基本开发流程以及简单开发框架,下载我们对MICO的编程框架有一定认识,值得一提是,在MICO发布的sdk中,有一个demo的文件夹,里面有好多的现成例子,可以知道我们使用MICO的外设资源。位置如下。( V, z# n6 z4 @1 ~6 y/ c$ {
2015-09-27_132627.png
7 s1 M6 G+ q, `. l下图是MICO给出的RGB_LED的原理图和简单时序: 2015-09-27_132502.png % r) e/ o# P2 ~$ {8 O0 z3 K$ U
如下是一个简单的使用rgb_led的例子。
; n5 c; z4 I% J9 ~- u" D9 d* V

  1. % q8 p+ b7 f. @) r! \
#include "MICO.h"
#include "micokit_ext.h"

+ x, E. P& s; ^' l; `! A$ r  S
  • #define ext_rgb_led_log(M, ...) custom_log("EXT", M, ##__VA_ARGS__)

    6 k+ z+ d# [% r) a! p* ^
  • int application_start( void )
    {
      ext_rgb_led_log("rgb led conrtol demo(RGB_MODE)");
      /*init RGB LED(P9813)*/
      rgb_led_init();
      while(1)
      {
        /*open red led,#FF0000*/
        rgb_led_open(255, 0, 0);
        mico_thread_sleep(1);
        /*open green led #00FF00*/
        rgb_led_open(0, 255, 0);
        mico_thread_sleep(1);
        /*open blue led,#0000FF*/
        rgb_led_open(0, 0, 255);
        mico_thread_sleep(1);
      }
    }

  • - K. b1 ?# p9 G; _9 a
    " M5 J* W& p# e2 d
    2 W' D& t* C. Cled初始化:
    ' x0 p0 b( l, s8 o3 p" h) F( G
    1. /*init RGB LED(P9813)*/
    led的RGB颜色配置:9 ?0 }3 d! O; c1 p
    1. /*open red led,#FF0000*
    如上的函数,传入RGB颜色模型的三个值,对于RGB模型来说,RGB模型是由真实的人眼颜色匹配实验得出的模型,RGB分别表示那三个固定波长的光的份量。RGB是基于色光混合的原理设计的,是一种以硬件为导向的色彩模型,它描述了显示器的电子枪打在Red红、Green绿、Blue蓝三色发光极上的显色方式。当红绿蓝三色光的亮度均为最大值(255)的时候,屏幕上重现的颜色就是最亮的白色,都为0的时候,结果就是黑色。
    & G/ @" m, o0 W! `5 ?& A如果想要得出刚才提到的“海棠红”,我们就要把红光调到最亮,把绿光的亮度调到1/5左右,再把蓝光的亮度调到1/3左右,如下图:' E- T3 ?  s! t2 F' K- m
    2015-09-27_133904.png / r6 Z6 V1 B) P7 Z* T4 g7 r
    这是我在互联网上找到的颜色,都比较常用,一共有200多种颜色。* s+ m  I: F4 a/ P! ]
    2015-09-27_132438.png
    5 e9 J1 e" b. s7 _7 _
    1 L. v5 r0 E: O3 y( u" u然后把他们生成代码了。
    ! y) Y1 o( p$ ]7 [; F* g; G9 D" [) l 2015-09-27_132236.png 5 ^- R# w: u1 u8 F6 Y- M' {

    $ E7 T5 A/ f) c* K9 Q3 g7 T% f& i0 C# h! y. T! a
    8 K, S, N+ G2 E; k" d
    + b' _- e1 V* z- ?& n# }5 r
    现在我们就可以用他们来生成各种颜色了。! Y1 C- \  T9 w9 C6 h3 K
    IMG_20150925_225201.jpg IMG_20150925_225202.jpg IMG_20150925_225203.jpg IMG_20150925_225204.jpg * N3 L1 |2 N% f: p" J
      p( V7 I, v! E0 P
    最后,通过修改RGB的某一分量,然后通过渐变方式就获得呼吸灯了哦~~相当绚丽~~
    5 `8 o. R4 h9 c0 }$ |0 ]% i5 r" a  O

    7 L9 [0 O$ F5 x/ R" M7 E: |+ _. f' s( L0 ~! V

    更多回帖

    相关帖子

    发帖
    登录/注册
    ×
    20
    完善资料,
    赚取积分