摘要:本设计是基于AT89S52为控制核心的智能距离感应控制系统。该系统有一个主控端和一个目标终端组成。本系统通过防丢器感应目标终端距离主控端的距离,当该距离大于3米时,主控端进行报警,并通过无线模块告知目标终端,目标终端启动电机阻止自身的运动。
关键词:AT89S52,距离感应,无线通信,直流电机
本系统有一个主控端和一个目标终端构成,主控端和目标终端均使用AT89S52作为核心控制器。当目标终端距离主控端的距离超过3米时,防丢器接收端向主控端单片机连续发送丢失信号,主控端单片机收到信号后立即进行报警,并通过无线模块向目标终端发送制动命令。当目标终端的无线模块收到制动命令后,立即启动电机。系统还设有按键部分,该按键可以不通过单片机直接控制无线模块,使系统的操作更加人性化。系统整体框图如图1所示:
图1 系统整体框图
本系统有以下几个模块构成:主控制器模块、无线收发模块、防丢器模块、电机驱动木块、电源模块、报警模块、键盘控制模块。
主控端的供电电源为6V、800ma电池组,目标终端的供电电源为12Vma电池组(有两块6V、800ma电池组串联构成)。主控端需要5V电源为整个系统供电,目标终端需要12V电源为电机驱动电路供电、5V电源为其它模块供电。
5V稳压芯片使用LM2940-5.0,输入电压5V-30V,输出电压5V,额定电流1A。
其稳压曲线如图2所示:
图2 LM2940-5.0稳压曲线
其电路原理图如图3所示:
图3 LM2940+5V稳压电路
本系统主控制器使用了Atmel公司生产的AT89S52单片机,有32个IO口、3个16位定时器(65535)、2个外部中断、1个全双工UART串行通道,其性能中等,能满足一般中小型系统的设计需要。但该芯片只能反复擦写1000次,而且其下载需要专门的USB-ISP下载线(或并口ISP下载线)接口较为复杂,但下载时再次上电这是其优于STC89C52的地方。
在价格上AT89S52一般是6元左右,STC89C52的价格一般是5元左右。【2011年8月】
本系统使用315M无线收发模块,自带PT2262、PT2272编解码芯片。其实物图如图4所示:
图4 无线收发模块实物图
(1)发射端
工作电压:4—15V,工作电流5mA。其典型应用电路如图5所示:
图5 无线发射端典型应用电路
注意事项:
① 30秒,不然有可能烧坏发射管。
② 使用时应接上天线(长度约为250mm),应远离大的金属体。
③ 由于该模块是大功率器件,单片机IO口无法直接驱动,而且发射端的数据口(10、11、12、13)内部带下拉,直接驱动IO口电压会被拉到只有0.2mV左右,故设计了如图6所示的驱动电路,虽然不是很完美(由于本人身边只有几个1K电阻,所以……),但可以使用(P2^0低电平时,D10为3.65V;P2^0高电平时,三极管截止,D10自然被下拉到0V)。
图6 无线模块发射端数据口驱动电路
(2)接收端
工作电压5V,工作电流<5mA,接收频率315MHz,解码有效时输出TTL电平,输出方式为互锁(L)方式(4个数据输出口只能有一个为1,可以互相取消)。
输出方式总结:
SC2272-T4:自锁输出型(各控各的)
SC2272-L4:互锁输出型(只能控制一个起作用)
SC2272-M4:非锁输出型(点动)
(3)使用心得:
原本以为PT2262很简单,用个单片机就可以控制了,可结果我错了。长期以来,我习惯根据淘宝上讲的原理去学习使用某个模块,基本不会看官方的任何资料,遇到问题就上网搜现成的答案,其实我这种做法很不专业,也没有任何的意义,我认为我要做的应该是这样:
n 首先,看其现有的应用笔记,大致明白其工作原理,建立初步印象。
n 然后,开始看官方的datasheet,因为只有它才能让我真正的掌握这个器件,真正的静下心来,真正的学到知识。
n 最后,做完后写一份详细的学习、分析笔记。我认为这样做不但不会浪费时间,反而会让自己越积越多,越来越快。
(4)疑惑:
我进行了如表1所示的测试,发现了一些问题
表1 无线模块测试
|
数据口 |
发射端 |
接收端 |
实验1 |
D10 |
先给高电平,5s后拉低 |
先变为高电平,之后电压为0 |
实验2 |
D11 |
先给高电平,5s后拉低 |
先变为高电平,之后电压为0 |
实验3 |
D12 |
先给高电平,5s后拉低 |
电压始终为高电平 |
接收端解码芯片标的明明是PT2272-L4,也就是说这是一个互锁输出的芯片,那么实验3是符合逻辑的,实验1和实验2无法解释。
该模块是现成的模块,内部构造不太清楚,但经过测试发现当防丢器的发射端的未被拿开一定距离时,防丢器的接收端的小灯按一定的周期闪烁;当防丢器的发射端的被拿开一定距离时,防丢器的接收端的小灯一直亮。最终,我们将小灯的正极和单片机相连(当然也要共地),当检测到小灯的正极一直为高电平时,即表明物品已丢失。
不过,这个设计中有一个地方比较冒险,那就是小灯的正极是高电平时电压只有3V,再低一点单片机就认为它是低电平了。如果大家手头的器件比较充沛的话,还是用三极管设计个开关电路吧,这样做太危险了。当然如果你用的是3.3V的单片机,那就可以直接用了。
还有一点需要注意的地方,防丢器使用无线测距,易受环境的影响(比如风、手机),故无法实现精确测距,望谅解。
本系统所使用的电机为12V电机,故使用L298N为其提供驱动,电路原理图如图7所示:
图7 L298N驱动电路
(1)电机驱动模块参数如下:
1. 驱动芯片:L298N双H桥直流电机驱动芯片
2. 驱动部分端子供电范围Vs:+5V~+35V ; 如需要板内取电,则供电范围Vs:+7V~+35V
3. 驱动部分峰值电流Io:2A
4. 逻辑部分端子供电范围Vss:+5V~+7V(可板内取电+5V)
5. 逻辑部分工作电流范围:0~36mA
6. 控制信号输入电压范围:
低电平:-0.3V≤Vin≤1.5V
高电平:2.3V≤Vin≤Vss
7. 使能信号输入电压范围:
低电平:-0.3≤Vin≤1.5V(控制信号无效)
高电平:2.3V≤Vin≤Vss(控制信号有效)
8. 最大功耗:20W(温度T=75℃时)
9. 存储温度:-25℃~+130℃
10. 驱动板尺寸:55mm*49mm*33mm(带固定铜柱和散热片高度)
11. 驱动板重量:33g
12. 其他扩展:控制方向指示灯、逻辑部分板内取电接口。
(2)使用心得:
在使用该模块驱动电机时,有一个地方很让人郁闷,那就是上电就令IN1=1、IN2=0,电机不转;当上电先零IN1=0、IN2=0,并延时一定的时间,然后再令IN1=1、IN2=0,电机正常转动,不知道什么原因。
本系统采用蜂鸣器进行报警,电路原理图如图8所示:
图8 蜂鸣器驱动电路
主控端流程图如图9所示:
图9 主控端流程图
目标终端流程图如图10所示:
图10 目标终端流程图
PT2262 |
P2^0 |
|
防丢器 |
P2^4 |
|
蜂鸣器 |
P2^5 |
|
|
|
|
按键1 |
D10 |
|
按键2 |
D11 |
|
按键3 |
D12 |
|
PT2272 |
P2^0 |
|
|
P2^1 |
|
|
P2^2 |
|
|
P2^3 |
|
电机 |
P2^4 |
|
|
P2^5 |
|
光电编码器 |
P2^6 |
暂未用 |
总共4天的时间:7.28日下午、7.29日、7.30日上午、8月2日晚上、8月3日(晚上9点完成所有硬软件设计,经测试后系统运行稳定)、8月4日上午、下午(写总结报告)。
具体清单就不列了,不算工具,总共花费了差不多300元。
在做这个项目的过程中我遇到了很多的问题,但我一直很认真的思考,一直想进一切办法去解决问题。即便是在我写这篇文档的时候,我依然发现了一些问题,当然经过调试,我最终解决这些问题。
我非常用心的写完了这篇总结,用了将近1天的时间,希望对大家有所帮助。
下面是做项目的过程中拍的一些图片:
1. 这是刚开始焊的时候的板子:
2. 中期作品:
3. 最终作品之目标终端:
4. 最终作品值主控端(线比较多,有点乱):
5. 我的工具(现在还是个学生,买不起实验桌,只能放到地上。不过,我相信,明天,实验桌会有的、元器件柜也会有的):
再写一些话,今年的春天,我本来应该参加一个比赛,甚至现在这个时候我也应该为参加另一个比赛而努力。但是,由于我始终认为在大学的主要时间应是去学理论,做实验、做项目只是为了验证理论是否正确、培养更实用的能力以及培养工程意识。所以,我退出了比赛,谎称自己要考研,实际是把自己更多的时间用在了理论的学习及做一些辅助性的实验上。这几个月来,我始终对我的指导老师和队友有所愧疚。如果我的老师或队友能够看到这篇博文,希望你们能原谅我这个过于看重“书本”的学生。确实在这个学校,没有几个人像我这样在外面租个房子整天沉醉在分析、思考、实验之中,而且现在还是暑假。
文章评论(0条评论)
登录后参与讨论