来源于https://oshwhub.com/rushairer/micro-curtain-remote-control-dev
前阵子朋友找我帮他设计一个无线遥控装置,需求是遥控器用两个按钮在2-3米范围内遥控电机进行前后转动。因为要做成产品量产,所以在实现功能之外,还要控制成本。正好赶上STC与嘉立创举办的这次单片机创意设计大赛,于是我决定使用STC的MCU来完成这个项目。我设计了两个版本,一个版本是STC8H8K64U版本,主打性能,一个是STC8G1K08A版本,主打性价比。这也正好体现出STC产品线丰富的优势,给用户丰富的选择空间。考虑成本问题,放弃蓝牙、WiFi这两个方案,最后我选择了433Mhz的无线通信方案。这是第一次接触433通信方式,先在立创商城查找了433相关的芯片,最终决定使用WF480RA 和 WF4455TD,在淘宝上看相关产品的介绍里,提到了EV1527解码,我大概搜索了一下,EV1527可以软件解码,不需要单独购买芯片。遥控器端使用纽扣电池,不需要升压降压稳压模块。这也多亏了STC芯片的宽工作电压特性,让我进一步节省了成本。电机控制正好用我上次做AbenFan的那个电机驱动芯片,可以输出正反转和刹车信号。方案选型定下来了,开始画电路图,提交审核,申请到了耗材券,下单打板,焊接... 一套熟悉的流程下来,到了写软件的环节。源代码已经上传到Github 完全开源。
https://github.com/rushairer/STCEV1527Transmitter 遥控器的固件源码
https://github.com/rushairer/STCEV1527Receiver 接收器的固件源码

这是遥控器,预留四个按钮,目前只用了P3.0和P3.3。按钮旁边的上拉电阻不需要焊接,直接使用MCU内部上拉即可。

这是接收端,MotorA/B外接电机,BAT+/-外接电池,背面预留一个按钮,可以扩展功能:比如学习对码。
最后还给遥控器设计了外壳。

项目花絮:
之前对STC的了解也就是点个灯,真到了具体项目的时候,有点蒙。没办法,现学吧。找群里的大佬帮我搞了一份STC8G for SDCC的头文件,配置好基本环境后,用基本的GPIO,把遥控器发送信号,接收器接收信号,都调通了。
在写EV1527的软解码的时候,卡了我两天。在网上找了很多相关资料,先搞明白了EV1527协议是怎么个交互流程,然后搜了很多别人分享的代码,一个个的读代码。
重新学习STC的中断机制,时间中断先得确定好晶振的频率,通过示波器,捕捉信号波形,验证我的代码对不对。明明遥控器发出的信号波形都OK,就是解析不出来,我都绝望的怀疑算法有问题了,突然在玩弄示波器的时候,想起来测量了一下两个波形之间的时间差,最后发现时间间隔并不是我预想的400us,而是500us,于是重新调整了delay的时间间隔,问题解决了!
