nRF24l01 自制无
线遥控小车(51 单
片机版)
nRF24l01 模块 STC89c52 单片机 L298N 电机控制模块 智能小车
山东大学(威海) 机电与信息工程学院
底板
山东大学(威海) 机电与信息工程学院 09 通信工程
2012/1/7
引言
距离上一篇文章已经有四五个月了,其实这部遥控小车早就做的差不错了,
因为课程实在是太紧张,没有空写成报告的形式和大家一起交流心得,还有一个
原因就是小车还有一些功能没有完善,原本想做的完美之后再发上百度和大家一
起交流,但是大三了嘛,课程紧,而且要做要学的东西特别多,以后就不一定有
机会了再做这部小车了,而且小车的大部分功能都已经差不多了,可以实现前进
后退,左转右转,前面还加了一个小风扇,可以用来灭火哈哈~所以就趁着刚刚
考完试有点儿时间写这篇报告和大家交流一下喽~后面会有很多图图和源程序,
无偿奉送给大家~~撒花~~~
关键词:nRF24l01 模块 STC89c52 单片机 L298N 电机控制模块 智能小
车底板 稳压模块 变压器
小车概述
先上一张全家福来介绍介绍
左上方的就是小车成品了,一会儿会有细节截图,两个之后电动机作为动力
源,小车底盘是从网上买的,话说质量真是不咋地~用的集成的 L298N 驱动模块,
没有神马技术含量,不过车的板上控制系统是自己焊的,很累的说~后面的是从
不用的充电台灯上拆下来的两块蓄电池,电量很足,可是说实话不是很好用,电
压不够稳定,偶是没钱买锂电车呀;中间的是自己焊的遥控器~前后左右四个方
向,中间的是停止键,左边的三个是扩展按钮,本来是想用来控制电扇和车头灯
的,后来由于时间紧就没有安装,道理很简单,大家可以自己装;最右边的是自
己做的 5 伏变压器,用来给小车充电,很好用的说~
硬件制作过程
小车的安装与焊接
这是小车的底盘,所有的元件都是装到上面的,小车是由两个直流电动机来
控制行动的,道理很简单,就不过多的叙述了~
上图是控制齿轮组与买的 L298N 电机控制模块,控制道理很简单,程序部分
一看就会,也不多说了~不太清楚的亲们可以百度一下呦~
这是电池组合 51 单片机的最小系统,最有为了方便和扩展都用杜邦线来连
接,上面的小孔是用来固定到小车上的~
上面四张图是做好的小车片上系统最后都用杜邦线来连接,左上图可以看到
一个双向开关,用来控制小车的充电还是启动,还有 nRF24l01 模块的连接,此
处做了一个小小的模块,因为单片机系统用的是 5 伏电源,而无线发射模块用的
是 3.3 伏电源,如右上图下面焊接了 AMS1117 用作 5 伏到 3.3 伏的电压转换,最
后还是用杜邦线连接到单片机控制系统上的~
~~~来几张小车的整体效果图图~~~
小车的前面加了一个直流小风扇,上面是一个小手电筒上拆下来的,想作为
车头灯,但是没用加到控制系统上,因为后来没时间做了,不过风扇还是加到系
统的扩展槽上可以用的,不过都不能控制风扇和小灯的开关,大家要是想做的话
只要加一个三极管开关电路连上就行了,功率不够大的话可以用达林顿管,很简
单,看了后面的程序一个道理,不明白的亲们百度哈,不多说了~~~
上面两张图片时自制遥控器的细节图,说白了就是一个 51 单片机最小系统
加上一个无线发射模块~当然这上面牵扯到电平的转换,因为是遥控器嘛,为了
遥控方便所以我用的是 9 伏的干电池,再加一个 7805 就能给单片机最小系统供
电了~同样的道理哦~无线发射模块也是这么安装上去的~~
小车就这样大体完成了,当然还有好多小细节,因为很简单我就不说了,看
着很简单,可是焊接过程我用了大约两个星期的课余时间吧~真的很累人,不过
最后成功后还是很有成就感的~其实吧,最费时间的还是程序的调试,因为必须
用特定的实验环境模拟好了,程序加载进去能用了以后才能着手焊接,所以程序
是灵魂呢~~
程序编写及调试过程
整个程序编写过程是花费时间最多的,虽然无线发射模块儿的驱动程序是现
成的,但是我从来没用把它应用到控制直流电动机上,在模拟环境下运行中,我
用 LED 灯来检测发射接收信号,就单单调试发射模块我就花费了一个多周的时
间,当 LED 灯在我的程序控制下变亮变灭的时候,我的心情那叫一个激动呀(LED
的亮灭就是电平的高低,用来控制电机驱动模块)~~可是当加到控制模块儿的时
候小车的电机只是发出嗡嗡的声音却不转动,这个问题又让我郁闷了好长时间,
后来请教了软件的同学(小弟我是学通信的,软件不是专业),并查阅了很多的
资料,终于想到了运用中断处理程序的方法~总之最后还是成功了呢~~
程序的主要思想就是外部信号(方向控制信号电平)给单片机,单片机信号
打包后编码,无线发射模块打包发送,当接收模块收到信号后,根据相应的数组
(方向控制信号被单片机打包为不同的数组形势,程序中有介绍)来传给单片机,
单片机发出不同的控制信号来控制小车的驱动模块,从而使小车能够前后左右行
驶~~下面上几张图片,然后就是程序部分了
我的工作台,其实就是宿舍的桌子~
上面两张图片就是编写调试程序时候的实验环境发射部分和接受部分,发射
部分直接用的 51 单片机开发板,因为下载程序比较方便~接收部分后来就顺便加
到小车上了,就是小车的片上控制系统~
好了,说了够多的挺累了,估计同学们也看晕了,直接上你们最期待的源程
序部分吧,我个人觉得吧,硬件其实很简单,一个系统的程序才是灵魂!虽然我
不是软件工程专业的,唉,后悔 C 语言没学好呀,所以编程的时候才会吃这么多
苦头~~~
源程序
发射部分~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include
#include
=P1^3;
=P1^4;
=P1^2;
=P1^1;
=P3^2;
=P3^3;
typedef unsigned char uchar;
typedef unsigned char uint;
//****************************************NRF24L01
***************************************
sbit MISO
sbit MOSI
sbit SCK
sbit CE
sbit CSN
sbit IRQ
//************************************
***************************************************
//sbit
sbit KEY0=P2^3;
sbit KEY1=P2^0;
sbit KEY2=P2^4;
sbit KEY3=P2^1;
sbit
xx=P0^5;
KEY4=P2^3;
端
口
定
义
按
键