你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MiCO分享贴】开发板光敏控灯

[复制链接]
micolover2015 发布时间:2015-8-24 09:38
    话说收到 [MicroKit-3288] 后就一直出差,看到大家都有作品出来 赶紧折腾下别落了大队伍
    微信控制RGB的还是有些复杂 暂时没弄通,  索性先来个 根据光线强度 控制RGB灯的小实验吧
    实验目的:
         1、采集光线强度传感器数据
         2、根据光线强度 改变 RGB灯的亮度
         3、通过KEY1、KEY2来调整 RGB的色调
         4、OLED屏的信息显示
     以上都是最基本的功能,但拿到庆科的SDK源码后 发现程序封装的层较多  阅读起来还是有些繁琐,但熟悉了后,移植起来会很方便

     实验步骤:
         1、下载官方SDK_MiCOKit_V2.2.0.6_Beta   
         2、选择 MiCokit_Enjoy-Micokit-3288 工程
         3、在MicoEntrace.c 增加如下函数
            #ifdef USE_MiCOKit_EXT
                     if(MicoShouldEnterTestMode()==true){
                           mico_log( "Enter test mode by user button" );
                          micokit_ext_mfg_test(context);  // MicoKit-EXT board mfg test
                     }
                 #endif
                 micokit_ext_mfg_Mytest(context);  //20150819 ++ //新增加的函数

              4、Micoket_ext_mfg.c函数增加 micokit_ext_mfg_Mytest(context);  实体

void micokit_ext_mfg_Mytest(mico_Context_t *inContext)
{
  OSStatus err = kUnknownErr;
  char str[64] = {'\0'};

  int rgb_led_hue = 0;

  int light_ret = 0;
  uint16_t light_sensor_data = 0;

  UNUSED_PARAMETER(inContext);

  mico_rtos_init_semaphore(&mfg_test_state_change_sem, 1);
  err = MICOAddNotification( mico_notify_WIFI_SCAN_COMPLETED, (void *)mico_notify_WifiScanCompleteHandler );
  require_noerr( err, exit );

  //获取当前light sensor value
  //根据 LightValue 值改变 RGB灯亮度
  //按key1、key2键 分别切换 RGB灯的颜色
  user_key1_init();
  user_key2_init();

  while(1)
  {
        //while(kNoErr != mico_rtos_get_semaphore(&mfg_test_state_change_sem, 0))
        {
          light_ret = light_sensor_read(&light_sensor_data);  
        }

        //若key2按下 则将颜色 rgb_led_hue+10
        if( MicoGpioInputGet((mico_gpio_t)USER_KEY2)==false)
        {   rgb_led_hue+=10;  }
        if(rgb_led_hue >360)
        {  rgb_led_hue=0; }

        //若key1按下 则将颜色 rgb_led_hue-10
        if( MicoGpioInputGet((mico_gpio_t)USER_KEY1)==false)
        {
          if(rgb_led_hue>10)
          {  rgb_led_hue-=10; }
          else
          {  rgb_led_hue =360; }
        }


        if(light_ret==0) //光线传感器数据 读取成功  
        {   
           light_ret =(light_sensor_data-1300)/5;
           hsb2rgb_led_open(rgb_led_hue, 80, light_ret);   
        }
        memset(str, '\0', sizeof(str));
        sprintf(str,"My_test: #43");
        OLED_ShowString(OLED_DISPLAY_COLUMN_START, OLED_DISPLAY_ROW_1, (uint8_t*)str);

        memset(str, 0x00, sizeof(str));
        sprintf(str,"Light: %d",light_sensor_data);
        OLED_ShowString(OLED_DISPLAY_COLUMN_START, OLED_DISPLAY_ROW_2, (uint8_t*)str);

        memset(str, 0x00, sizeof(str));
        sprintf(str,"Bright: %d   ",light_ret);
        OLED_ShowString(OLED_DISPLAY_COLUMN_START, OLED_DISPLAY_ROW_3, (uint8_t*)str);

        memset(str, 0x00, sizeof(str));
        sprintf(str,"RgbHue: %d   ",rgb_led_hue);
        OLED_ShowString(OLED_DISPLAY_COLUMN_START, OLED_DISPLAY_ROW_4, (uint8_t*)str);

        mico_thread_msleep(50);
  }

exit:
  mico_thread_sleep(MICO_NEVER_TIMEOUT);
}  
     编译下载后 就能实现上述预期功能

视频链接:
https://v.youku.com/v_show/id_XMTMxMzc0MzY5Mg==.html


原作者:3466756555
感谢!

收藏 评论1 发布时间:2015-8-24 09:38

举报

1个回答
shaoziyang 回答时间:2015-8-25 09:26:09
不错。        

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版