泰凌微TLSR825x智能照明解决方案开发之实例解析
2023-09-11 14:17:11 时间
一 前记
前几天,看到了一个笑话,一个朋友在群里吼道,老婆送的皮带,用了半年之后,怎么里面掉出来一个电路板,这个是是啥?
笔者看了回复道,哥们,老婆不放心你啊。
在这个万物都可智能的时代,产品不加上智能,都不好意思说你的产品是高科技产品。这不来了,客户提出新的需求了,他要做
做一个智能的灯。咋个智能法呢?
1 有流光,冷白,暖白,渐变等灯光的效果可以切换。
2 可以根据时间和周围环境亮暗来调整灯光亮度。
3 可以通过手机APP和按键双重控制开关。
本着有求必应的态度,我这不就开始倒腾起来了。
二 代码解析
1 ble无线通信,这个就是通过APP下发命令进行解析,以前讲过ble的通信流程,这里不做赘述了。
2 灯光效果函数:
流光函数:
void app_fluxay_mode_set(void) { uint8_t tmp_rgb_a = OFF,tmp_rgb_b = OFF,tmp_rgb_c = OFF,tmp_rgb_d = OFF; #if 1 if(ON == fluxay_flow_four) { fluaxy_flow_mode_reset_out(); if(APP_MODE_ID_FLUXAY != app_xp_get_mode_id()) { app_xp_set_mode_id_no_flash(APP_MODE_ID_FLUXAY); } }
渐变灯函数:
void app_pwm_led_loop(int data,uint8_t from_state) { printf("app_pwm_led_loop data :%d\r\n",data); static uint8_t local_led_state = 0; //daylight if (data>=0&&data<=100) { app_pwm_rgb_stop(); local_led_state = 1; app_pwm_cw_on(100-data); app_pwm_ww_on(data); }
3 按键处理:
unsigned int key_debounce_filter( u32 mtrx_cur[], u32 filt_en ){ u32 kc = 0; #if (LONG_PRESS_KEY_POWER_OPTIMIZE) unsigned char matrix_differ = 0; #endif static u32 mtrx_pre[ARRAY_SIZE(drive_pins)]; static u32 mtrx_last[ARRAY_SIZE(drive_pins)]; foreach_arr(i, drive_pins){ u32 mtrx_tmp = mtrx_cur[i]; #if (STUCK_KEY_PROCESS_ENABLE) stuckKeyPress[i] = mtrx_tmp ? 1 : 0; #endif if(
4 传感器处理
一个光敏传感器,通过ADC信号,来采集光线的强度,这个后期进行专门的讲解。
三 效果展示
初步的demo已经搭建好,接下来就是产品的细节打磨和PCBA的适配了。
四 总结备忘
825x系列作为一个mcu+ble的平台芯片,在氛围灯市场占有一定的市场份额。具有性价比高,功耗低,功能强大等特点。
加上自研的系统,开发这个产品真是速度快啊。
相关文章
- Android实例-从照相机或图库获取照片(XE8+小米2)
- iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例
- python连接mysql实例分享_python
- 浅谈 vue实例 和 vue组件
- Linux中使用SecureCRT上传、下载文件命令sz与rz用法实例
- Json转换利器Gson之实例
- [ASP.NET Core 3框架揭秘] 依赖注入[8]:服务实例的生命周期
- 删除所有正在运行和退出的docker实例
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Qt-sqlite3数据库编程实例
- 信息增益计算实例
- C#中实现可变参数实例
- 【数据库管理】①实例与数据库
- 第一章: Instance (实例)和DB(数据库)
- Python - Opencv应用实例之头发自动分割、计数、特征统计智能分析系统