要求:
- DTMF解码
- 3.5mm音频线(用于手机连接DTMF模块)
- 法
- 7805
- 的直流电机
- 电池(10 - 12 v)
- 11.0592 mhz的水晶
- L293D IC(电机驱动)
- 轮子的汽车
图1:基于8051单片机的移动操控机器人背面图片
图2:基于8051单片机的移动操控机器人俯视图图像
图3:基于8051单片机的移动操控机器人正面图片
图4:基于8051单片机的移动操控机器人侧视图图像
描述:
移动控制主要通过DTMF解码器实现。DTMF代表双音多频。该模块一次可以接收4位数据(即0-15个十进制值)。
DTMF需要两个移动平台,一个用于发送指令,另一个用于接收指令。
该模块包含一个IC,该IC对接收到的信号进行解码,并将其转换为4位数据。
当您按下键盘上的按钮时,就会建立一个连接,同时产生两个音调。
图5:图像显示数字键盘的DTMF频率的键映射
产生1336hz和697 Hz的音调。当然,音调697对于两个数字是相同的,但它需要两个音调当您按下键盘上的数字1时,您产生音调1209 Hz和697 Hz。按数字2就会
做出一个数字,解码设备就会知道完成这个数字的1209赫兹之间的区别
1,和1336hz,完成一个数字2。
上表显示了DTMF解码器模块按按按钮输出的4bit数据(逐位):
图6:表列出了DTMF中使用的频率和各自的数字输出
在这个项目中,我只使用了5个键;它们是:
2 (向前移动)
4 (移动左)5(用于停止机器人)6 (移动)
8(反向运动)
一个特定的DTMF模块包括信号引脚(通过3.5 mm插孔从移动设备输入信号),4个引脚(D0, D1, D2, D3,)用于传输4位数据和一个DV引脚,DV引脚在每次成功的数据解码时成为高电平。
在这个项目中,我的DTMF 4位引脚连接到MC的PORT2 (1.e。引脚P2^ 0,1,2,3)。
L293D输入分别连接到引脚P1^1、2、3、4。
L293D将帮助我们完美地驱动直流减速电机。
在编码部分,我使用了一个用户定义的头文件L293D.h来控制L293D根据DTMF输入。
项目源代码
# # #编码(主要):# include# include void main() {P2=0xff;停止();while(1) {if(P2==0xf2) {forward();而(P2 = = 0 xf2);} if(P2==0xf4) {left();而(P2 = = 0 xf4);} if(P2==0xf5) {stop();而(P2 = = 0 xf5);} if(P2==0xf6) {right();而(P2 = = 0 xf6); } if(P2==0xf8) { backward(); while(P2==0xf8); } } }编码(L293D):sbit MRp = P1 ^ 4;sbit MRn = P1 ^ 3;sbit MLp = P1 ^ 2;sbit MLn = P1 ^ 1;void forward() {MRp=1;MRn = 0;延时= 1;MLn = 0;} void backward() {MRp=0;MRn = 1; MLp=0; MLn=1; } void left() { MRp=1; MRn=0; MLp=0; MLn=1; } void right() { MRp=0; MRn=1; MLp=1; MLn=0; } void stop() { MRp=0; MRn=0; MLp=0; MLn=0; } ###
与本文相关的问题?
询问并讨论EDAboard.com和Electro-Tech-Online.com论坛。
告诉我们你的想法!!
你必须登录发表评论。