基于Arduino单片机的nRF24L01+无线遥控装置设计(爆肝制作)

发布于:2023-01-22 ⋅ 阅读:(10) ⋅ 点赞:(0) ⋅ 评论:(0)

目录

前言

一、总体思路

二、硬件介绍

(一)主机

(二)从机

三、电路设计

(一)主机

(二)从机

四、程序代码

(一)主机

(二)从机

五、总结及改进

六、所用到的文献链接


前言

        此文章只涉及单片机应用的简单入门环节,仅为初入门同学提供参考,大神勿喷。本人也并非电子专业出身,此遥控装置设计为本人毕业设计的主体内容,部分错误及漏洞仍未改进,欢迎提出点评意见!

        文章中所用到的基础接线和操作,会通过链接在文末分享给大家。

一、总体思路

        本装置基于Arduino单片机,通过nRF24L01+PA+LNA无线透传模块,实现远程遥控或通信,并实现一对多互联互通。装置分为遥控端和被遥控端两个部分,以下简称主机和从机,一个主机可最多连接六个从机。另外,主机遥控装置使用OLED显示屏和矩阵薄膜键盘,实现剩余电量显示、对多个从机的实时状态显示及倒计时显示等功能,其中,通过旋转主机的电位器完成对倒计时的调节,将从机的LED灯作为模拟用电器。

        下图分别为主机和从机的实物图。

        其中,主机的电源模块可以单独脱离出来,通过SM-2P对插线实现物理断电,也就是说,对电源的开启实际上有三重保护。电源模块分开如下图:

  

二、硬件介绍

硬件部分也将分为两个部分介绍,即主机和从机,首先介绍主机的主要硬件模块及选择理由。

(一)主机

1. 电源模块

         最开始,我打算直接使用5号电池作为电源,但考虑到不能多次充电循环使用,所以又在某宝网购了一款7.4v可充电锂电池,外接XH-3P和SM-2P接口(XH-3P接口为充电口,SM-2P为放电口),商家配有配套的充电线,完美解决了电源的充电问题。但其实7.4v电压是不足以提供足够电压,使单片机带动OLED等多个负载的,需要更换其他9-12v的电源。

        此外,为了实现电源开关的双重保护机制,我在拨动开关实现电源开关的基础上,又加装了EC190807芯片,在长按开关按键3秒后完全实现电源的导通,避免误触拨动开关而开机。在这里,要提醒新同志的是,尽量不要单独购买EC190807芯片自己安装,能买到配套的拓展组件最好,否则焊接会很崩溃,尤其是像我这样器材短缺的穷X。但在这里存在一个芯片、电源与单片机之间的电压冲突,电源的电压可以通过购买不同的电池来改变,但芯片的输入输出电压都有额定数值,输入输出的额定电压仅为5v,不足以使单片机带动其他负载,输入电压可以通过分压电路来调整,但输入电压无法解决。

        下图为EC190807芯片引脚连接图:


        下图为自制EC190807芯片拓展模块:

2. 剩余电量检测模块

        该模块所涉及到的电子元件只有一种,就是两个电阻,使用了一个分压电路,具体的阻值需要根据电源电压来计算得出,计算公式及电路在第三章中会介绍。

3. 单片机模块

        在本次的遥控装置设计中,为了节省占用空间,使用了Arduino nano单片机,至于为什么使用Arduino而不用51和STM,纯粹是因为Arduino对新手更友好,而且我也只会Arduino。

        在使用Arduino nano单片机进行编程时,一定要注意切换处理器的新旧版本,如下图,由于最开始没有切换为旧版本,我曾一度以为是单片机被烧坏了。购买时可直接在某宝购买便宜的版本作实验用。

4. 无线传输模块

        在设计遥控装置版本一时,我使用的是nRF24L01无线模块,但由于该模块特别容易被烧坏,且连接效果和距离也不理想,我在版本二中改用了nRF24L01+PA+LNA无线透传模块,虽然字面上看知识多了两个后缀,但使用效果和稳定性确实是改善了不少,介绍说传输距离可以达到1100M,当然是在安装了信号增强天线的基础上,具体没有试验过,但最起码没有再被烧坏过,并且也是一次连接成功,满足了装置设计的需要。

        nRF24L01+PA+LNA无线透传模块如下图:

5. 矩阵薄膜键盘模块

        这个模块其实没什么好介绍的,我使用的是3×4薄膜矩阵键盘,相较于按钮的优势基本不用多说,既节省了单片机的I/O口资源,又能避免接线繁杂。

6. 显示屏模块

        本装置选择0.91寸OLED液晶显示屏,分辨率为128×32像素,完全冲着节省空间去的,基本满足显示需求。

7. 其他元器件

        另外,还使用了单联滑动可调电位器、SM对插线、电容若干、镀锡跳线若干、亚克力板若干。

(二)从机

        从机部分并没有太多复杂的元器件,电源就选择了三节5号电池,单片机仍然是Arduino nano单片机,无线模块也是选择了nRF24L01+PA+LNA无线透传模块,外接信号增强天线,使用两个LED灯分别代表被选中和用电器启动,另有其他元器件。

三、电路设计

        本章节主要介绍自己设计或借鉴的部分电路,网上容易找到的电路不再赘述,仅在文末提供链接。为直观展示单片机与其他电子元件的连接,将主机的电路图直接分为电源模块和单片机模块两部分

(一)主机

1. 电源模块

        话不多说,直接上图。

         其中,SW1拨动开关和KEY1按键开关实现电源开关双重保护机制,先打开SW1拨动开关,再长按KEY1按键开关3秒,电源开启。R1、R2组成分压电路,使得输入U1的VDD电压保持在5V(注意:U1的OUT输出为5V,实际上是不足以提供单片机和负载工作所需电压的),分压电路中R1、R2的阻值与输入输出电压相互关系公式如下:

Vout=Vs*R2/(R1+R2)

2. 单片机模块

       

        其中,R1和R2的阻值可以通过上文提到的分压电路公式算出,其余元器件的使用连接细节可在文末的链接中查阅。

(二)从机

        从机的电路较为简单,直接一张电路图搞定!

         其中,D1和D2分别为被选中时的显示和开始工作的显示。

四、程序代码

        初学入门水平,请大神指点!同时,有需要Arduino各类库文件或者需要解释的,请在评论区留言,看到后一定尽早回复。

   

        基于Arduino单片机的nRF24L01+无线遥控装置设计(代码篇)

五、总结及改进

        毕业设计几乎是在最后半个月加班加点完成的,所以许多方面的设计并不完善,譬如倒计时调节的实时显示、剩余电量的代码也未完成,只是一个遥控装置的初步框架,具体的细节还需要更长时间的完善。

        本装置的主机和从机在后期还可以做出许多升级改进。譬如主机可以显示每个从机的剩余电量,从机可以通过无人机进行远程机动,或者利用遥控汽车进行中远程操控······

六、所用到的文献链接

1. Arduino Nano 引脚分配图及定义详解

2. nRF24L01模块应用的简单例子

3. 如何使用多个NRF24L01模块搭建一个Arduino无线网络

4. 剩余电量百分比检测电路

5. 剩余电量检测电路视频解释

6. Arduino点亮OLED显示屏

7. Arduino-OLED屏图片显示

8. Arduino检测外部电池电量方法

9. 【Arduino基础教程】4*3矩阵键盘

10. 3X4矩阵按键 轻触薄膜按键模块 ARDUINO驱动测试

11. 使用arduino读取电位器的数值

12. 长按开关机功能实现(含EC190807)