前情提要❤
本人是训练营老学员,算上这次的RA MCU开发,一共3届了,每次都能让自己进步一点点。从一开始学习分析电路原理,到绘制PCB,再到后来的代码编写、测试与烧录验证,一步一个脚印。个人一直对从硬件到软件的电子设计全流程开发很感兴趣,在此感谢立创和RA共同举办的本届训练营活动,让我懂得了能让你熬夜的不只有追剧和游戏,还有设计电路和代码调试 ( ̄▽ ̄)~*
闲话少说,这次使用RA系列的芯片,我打算做一款精巧简约、模块化的智能感应灯。虽然它支持触摸按键,但是我认为触摸按键太过占用空间,所以选用了小体积的常规按键。通过搭配RGB灯带(WS2812B)、12864OLED模块、光线传感模块、DHT11温湿度模块、HC-SR04超声波测距模块,实现了RGB灯带的模式切换、测距、测温湿度、测光照强度,并使用OLED屏幕实时显示这些信息。
正文~~
概述
MCU:选用 R7FA2E1A72DFL芯片,提供 SW & TTL 两种烧录方式;
供电:Micro-USB接口(5PIN),仅使用 5V供电引脚 & GND引脚;LDO降压至3.3V,给光线传感模块和OLED屏幕供电;
按键:BOOT 烧录按键;RESET 重置按键;LIGHT_ONOFF 灯带开关按键;LIGHT_MODE 灯带模式切换按键;
模块:RGB灯带(WS2812B)、12864OLED模块、光线传感模块、DHT11温湿度模块、HC-SR04超声波测距模块;
外壳:定制亚克力板(其实是上次训练营没用完的,不能浪费嘛,要节约~(<ゝω・)☆),使用M3铜柱螺丝固定,保护电路。
代码:代码已公开,在附件的压缩包里,如果觉得贴心请点赞、收藏~
功能介绍
已开发
LIGHT_ONOFF键 控制 灯带开关;LIGHT_MODE键 切换 灯带模式(4种:“高亮白光”、“高亮红光”、“高亮绿光”、“高亮蓝光”)。
使用 DHT11 测量温湿度;使用 光敏电阻 测量光照强度;使用HC-SR04测量距离。
OLED屏显示:灯带 开关状态 & 当前模式;当前 温度-℃ & 湿度-%;距离-cm;光照强度(量化电平值,越低表示光照强度越大)。
待开发
记录关灯前的灯带模式,下次开灯后不必再将灯带模式重置为“高亮白光”;通过长按 LIGHT_ONOFF键,调节灯带亮度。
计算光照强度,显示实际值。
完善灯带开关机制:(可选)光照强度高/低,自动关/开灯;(可选)距离远/近,自动关/开灯;(注意与按键开关进行合理搭配!)。
绘制3D打印外壳。
成品拍摄图
(提示:有一颗灯珠坏掉了,不听使唤,不过不影响展示~)

RGB灯带(WS2812B)
引脚:P213 - 模式 TXD;P014 - 模式 Input;P015 - 模式 Input;配置 - SPI(r_sci_spi)。
描述:灯带含30颗灯珠,3引脚(5V、DATA、GND);使用SPI,设置波特率为6000000,输出码元信号,控制灯带状态;按键配置GPIO输入,检测输入电平值。
WS2812B驱动IC
使用说明
根据芯片参数,设置 SPI波特率=6000000,因此1位持续时间=1÷6000000≈155ns;
使用 8位二进制 表达 单极性归零码;
0码:0b 1100 0000(二进制);0x c0(十六进制);
1码:0b 1111 0000(二进制);0x f0(十六进制)。
数据传输方式

12864OLED模块
引脚:P400 - 模式 SCL0;P401 - 模式 SDA0;配置 - IIC Master(r_iic_master)。
描述:参考官方教程,移植STM32中的12864OLED,并添加特殊字符至oledfont.h。
12864OLED
4PIN 0.96寸 12864OLED屏(GND、VCC、SCL、SDA),使用3.3V供电。
光线传感模块
引脚:P000 - 模式 AN000;配置 - ADC(r_adc)。
描述:使用光敏电阻(已集成至PCB中),3.3V供电,通过读取光敏电阻的量化电平值,判断光照强度(电平值越高,光照强度越低)。
GL4516光敏电阻
DHT11温湿度模块
引脚:P208 - 模式 Input;配置 - 无。
描述:使用DHT11模块,编写驱动,以5V供电,读取温湿度值。
DHT11
3PIN(Signal、5V、GND);
采用单总线数据格式,单个数据引脚端口完成输入输出双向传输;数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出;
数据格式:8bit湿度整数数据 + 8bit湿度小数数据 + 8bit温度整数数据 + 8bit温度小数数据 + 8bit校验和;
发送时序:主机发送开始信号,变为输出模式低电平,保持至少18ms时间,再高电平20~40us时间,然后变为输入模式,读取DHT11的响应;DHT11接收到主机发送的开始信号,会输出低电平,保持80us时间,作为响应信号,然后输出高电平,保持80us时间后,开始输出数据,待40bit数据传输结束后,上拉电阻拉高总线。
HC-SR04超声波测距模块
引脚:P101 - 模式 IRQ01;P102 - 模式 Output;配置 - IRQ(r_icu) - Timer(r_gpt)
描述:使用HC-SR04模块,编写驱动,以5V供电,读取距离(单位cm);设置外部中断,使用定时器记录HC-SR04传入的高电平持续时间,进而计算出距离。
说明:电路设计时,TRIG引脚和ECHO引脚设置失当,在实际使用时,需要进行调换(设备的TRIG接HC-SR04的ECHO)
HC-SR04
4PIN (VCC, TRIG, ECHO, GND);
IO trigger ranging requires at least 10us high-level signal; automatically sends 8 40KHz square waves to detect whether there is a signal return; if there is a signal return, output through IO High level, high level duration = the time from transmission to return of ultrasonic wave; distance (unit : cm) = high level
time Although the ecology of the chip is not rich enough, it also exercises oneself and allows one to deeply understand the underlying logic of the chip. Finally, I would like to thank Lichuang and Renesas RA for jointly organizing the training camp. I hope it will continue to be held in the future. I will definitely support it!