查看: 5436|回复: 12

[原创] [K64F]串口RGB三色灯-mbed

[复制链接]

该用户从未签到

9

主题

287

帖子

0

高级会员

Rank: 4

积分
907
最后登录
2025-7-21
发表于 2015-11-26 07:19:43 | 显示全部楼层 |阅读模式
用串口控制LED灯
r:红灯亮度加
R:红灯亮度减
g:绿灯亮度加
G:绿灯亮度减
b:蓝灯亮度加
B:蓝灯亮度减
c:灯灭
鲍率9600

预计是个调色盘
但效果不好
之后再修改


1.jpg
IMG_20151125_233239.jpg

  1. #include "mbed.h"
  2. //Basic PWM Led Control In Digital Port
  3. Serial pc(USBTX, USBRX); // tx, rx
  4. DigitalOut RLED(PTB22);
  5. DigitalOut GLED(PTE26);
  6. DigitalOut BLED(PTB21);

  7. unsigned char timebase=0;
  8. unsigned char Rcount=0;
  9. unsigned char Gcount=0;
  10. unsigned char Bcount=0;

  11. int main()
  12. {
  13.     BLED=1;
  14.     RLED=1;
  15.     GLED=1;
  16.     char thisChar = 0;
  17.     printf("R = %d, G = %d, B = %d\n", Rcount,Gcount,Bcount);
  18.     while (true)
  19.     {
  20.             if((Rcount-timebase)>0)
  21.             {
  22.                 RLED=0;
  23.             }
  24.             if((Rcount-timebase)<=0)
  25.             {
  26.                 RLED=1;
  27.             }
  28.             if((Gcount-timebase)>0)
  29.             {
  30.                 GLED=0;
  31.             }
  32.             if((Gcount-timebase)<=0)
  33.             {
  34.                 GLED=1;
  35.             }
  36.             if((Bcount-timebase)>0)
  37.             {
  38.                 BLED=0;
  39.             }
  40.             if((Bcount-timebase)<=0)
  41.             {
  42.                 BLED=1;
  43.             }
  44.             if(pc.readable())
  45.             {
  46.                
  47.                 thisChar = pc.getc();
  48.                 switch(thisChar)
  49.                 {
  50.                     case 'r':
  51.                     if(Rcount<255)
  52.                     {
  53.                     Rcount ++;
  54.                     }
  55.                     break;
  56.                     case 'g':
  57.                     if(Gcount<255)
  58.                     {
  59.                     Gcount ++;
  60.                     }
  61.                     break;
  62.                     case 'b':
  63.                     if(Bcount<255)
  64.                     {
  65.                     Bcount ++;
  66.                     }
  67.                     break;
  68.                     case 'R':
  69.                     if(Rcount>0)
  70.                     {
  71.                     Rcount --;
  72.                     }
  73.                     break;
  74.                     case 'G':
  75.                     if(Gcount>0)
  76.                     {
  77.                     Gcount --;
  78.                     }
  79.                     break;
  80.                     case 'B':
  81.                     if(Bcount>0)
  82.                     {
  83.                     Bcount --;
  84.                     }
  85.                     break;
  86.                     case 'c':
  87.                     Rcount=0;
  88.                     Gcount=0;
  89.                     Bcount=0;
  90.                     break;
  91.                 }
  92.                 printf("R = %d, G = %d, B = %d\n", Rcount,Gcount,Bcount);
  93.             }
  94.             wait_us(1);
  95.             timebase++;
  96.             
  97.     }
  98.    
  99. }
复制代码



回复

使用道具 举报

  • TA的每日心情
    开心
    2024-1-6 07:38
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    21

    主题

    3486

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    5093
    最后登录
    2024-1-7
    发表于 2015-11-26 08:12:56 | 显示全部楼层
    支持一下。。。
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    61

    主题

    965

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2394
    最后登录
    1970-1-1
    发表于 2015-11-26 08:48:00 | 显示全部楼层
    支持            
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    642

    帖子

    0

    高级会员

    Rank: 4

    积分
    748
    最后登录
    1970-1-1
    发表于 2015-11-26 09:18:55 | 显示全部楼层
    感谢分享
    104930kli5jsmlssemljli.png
    回复

    使用道具 举报

    该用户从未签到

    11

    主题

    343

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1260
    最后登录
    2017-11-6
    发表于 2015-11-26 09:32:31 | 显示全部楼层
    在做RGB灯时亮度的校准很难搞,因为没法检测亮度,那样RGB拼出来的颜色就和预想的不一致
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    642

    帖子

    0

    高级会员

    Rank: 4

    积分
    748
    最后登录
    1970-1-1
    发表于 2015-11-26 09:33:31 | 显示全部楼层
    转金币的
    104930kli5jsmlssemljli.png
    回复

    使用道具 举报

    该用户从未签到

    11

    主题

    251

    帖子

    0

    高级会员

    Rank: 4

    积分
    690
    最后登录
    2016-11-3
    发表于 2015-11-26 09:38:56 | 显示全部楼层
    帮顶一下               
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-17 19:57
  • 签到天数: 2310 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    107

    主题

    4270

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    10481
    最后登录
    2023-9-17
    发表于 2015-11-26 10:00:07 | 显示全部楼层
    为什么不用PWM来控制呢?那样更简单啊。

    PwmOut
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9

    主题

    287

    帖子

    0

    高级会员

    Rank: 4

    积分
    907
    最后登录
    2025-7-21
     楼主| 发表于 2015-11-27 07:34:12 | 显示全部楼层
    shaoziyang 发表于 2015-11-26 10:00
    为什么不用PWM来控制呢?那样更简单啊。

    PwmOut

    三色灯的脚位没有硬件PWM
    不确定mbed的PWMout是软件输出还硬件
    所以暂时没使用
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-17 19:57
  • 签到天数: 2310 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    107

    主题

    4270

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    10481
    最后登录
    2023-9-17
    发表于 2015-11-27 09:37:04 | 显示全部楼层
    momososo 发表于 2015-11-27 07:34
    三色灯的脚位没有硬件PWM
    不确定mbed的PWMout是软件输出还硬件
    所以暂时没使用 ...

    K64F的LED的确不支持PWM,KL25Z的支持。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 06:38 , Processed in 0.099838 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表