尝试使用手机控制两个LED灯的亮度。本次是在nRF51822_SimpleControls基础上修改的。因为redbear的app只能控制一个LED,所以手机上配合通用的BLE调试工具完成。不求功能复杂,只要控制亮度就行,玩转整个流程。
删除servo.cpp和servo.h
service只留下一个可写的LIGHT_CHAR
- #define BLE_UUID_LIGHT_SERVICE 0x0000 /**< The UUID of the Nordic UART Service. */
- #define BLE_UUID_LIGHT_CHARACTERISTIC 0x0002 /**< The UUID of the TX Characteristic. */
复制代码控制单元只留下两个灯,都是PwmOut
- PwmOut LEDR(LIGHT_R);
- PwmOut LEDB(LIGHT_B);
复制代码修改串口Pin,显示调试信息。
注释掉所有的长UUID,测试只用短的UUID是否可行。
手机发送控制命令2个字节,第一字节指定控制哪个LED,1 for LEDR,2 forLEDB。第二个字节表示灯的亮度,0是熄灭,0xff是最亮。对应的代码也要修改,因为PWM接的是LED的阴极。
- float value = 1.0-(buf[1]/255.0);
- LEDR = value;
复制代码效果看视频。控制命令格式如上所述,测试结果,短UUID是可以的。用通用app控制还是有点慢啊,可是app不会写!!
其他七七八八修改的东西都是细节,一并附在附件里面吧。
ble light main.txt
(5.15 KB, 下载次数: 4)
ble light main.txt
(5.15 KB, 下载次数: 4)