欢迎来到天天文库
浏览记录
ID:60782572
大小:277.50 KB
页数:13页
时间:2020-12-18
《电磁循迹复习过程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、精品好文档,推荐学习交流基于电磁感应的循迹小车的设计作者:陈仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流一、硬件设计电机驱动LM298N单片机Stc89c52传感器1、传感器模块由10mh的电感与6.8nf电容并联组成谐振电路用于检测轨道中的电线产生的交变磁场。由于传感器转换得到的电信号为交流信号且较为微弱,难以被AD模块采集利用,所以需经过检波运放电路处理后输入AD模块再给单片机。因为其信号频率为20kHz,因此可以采取包络检波将其峰值转换为直流信号,再经过LM358运算放大器进行电压放大(采用电压反馈放大)。2、此次单片机选用51单片机,型号为stc
2、89c52,其操作简单,价格低廉,性能也足以满足设计所需,但由于其片内资源有限,无自带AD模块,所以外加一个16位4路AD模块ADS1115。3、电机驱动模块采用常见的LM298N用于驱动直流电机,并且给其12V供电可引出5v给单片机供电,解决电源问题。检波放大电路图如下:单片机与AD模块连接图如下:仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流一、软件设计开始IIC协议读取左右两路AD数字量A1、A2A1==A2?直行命令是即A1-A2<设定值设定值需根据实际调试测得否右拐命令(PWM左>右)A1>A2?是左拐命令(PWM右>左)A13、考资料ADS1115中文资料.pdf主要通过IIC时序读取返回值,需要配置三个寄存器,详见参考资料。仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流一、调试数码管显示返回数值,在跑道上纪录直道,左右转各自的数值范围,用于程序调试最终适应相关跑道。(因完成的比较仓促,并未运用PID算法,在低速下足以循迹)二、附录电路仿真图:仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流实物图:参考程序:#include#include#defineucharunsignedchar#defineuintunsi4、gnedintsbitpwm_r=P2^0;sbitpwm_l=P2^1;sbitSDA=P1^0;sbitSCL=P1^1;sbitDU=P2^6;//数码管段选sbitWE=P2^7;//数码管位选uintwidthL=39;uintwidthR=37;uintfre=40;inta;ucharcodetable[]={//0123456780x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,//9ABCDEF-.关显示0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x80,0x00};仅供学习与交流,如5、有侵权请联系网站删除谢谢13精品好文档,推荐学习交流/*====================================数码管位选码====================================*///第1位2位3位4位5位6位7位8位ucharcodeT_COM[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//数码管位码/*5us延时*/voiddelay_5us(){_nop_();}/*1Ms延时*/voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=114;y>0;y-6、-);}voidDisplay(uintValue){//------------------------------DU=1;P0=table[Value/10000];DU=0;P0=0xff;WE=1;P0=T_COM[0];WE=0;delay(3);//-------------------------------DU=1;P0=table[Value%10000/1000];DU=0;P0=0xff;WE=1;P0=T_COM[1];WE=0;仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流delay(3);//-----------------7、--------------DU=1;P0=table[Value%10000%1000/100];DU=0;P0=0xff;WE=1;P0=T_COM[2];WE=0;delay(3);//-------------------------------DU=1;P0=table[Value%10000%1000%100/10];DU=0;P0=0xff;WE=1;P0=T_COM[3];WE=0;delay(3);//------------------------------
3、考资料ADS1115中文资料.pdf主要通过IIC时序读取返回值,需要配置三个寄存器,详见参考资料。仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流一、调试数码管显示返回数值,在跑道上纪录直道,左右转各自的数值范围,用于程序调试最终适应相关跑道。(因完成的比较仓促,并未运用PID算法,在低速下足以循迹)二、附录电路仿真图:仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流实物图:参考程序:#include#include#defineucharunsignedchar#defineuintunsi
4、gnedintsbitpwm_r=P2^0;sbitpwm_l=P2^1;sbitSDA=P1^0;sbitSCL=P1^1;sbitDU=P2^6;//数码管段选sbitWE=P2^7;//数码管位选uintwidthL=39;uintwidthR=37;uintfre=40;inta;ucharcodetable[]={//0123456780x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,//9ABCDEF-.关显示0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x80,0x00};仅供学习与交流,如
5、有侵权请联系网站删除谢谢13精品好文档,推荐学习交流/*====================================数码管位选码====================================*///第1位2位3位4位5位6位7位8位ucharcodeT_COM[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//数码管位码/*5us延时*/voiddelay_5us(){_nop_();}/*1Ms延时*/voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=114;y>0;y-
6、-);}voidDisplay(uintValue){//------------------------------DU=1;P0=table[Value/10000];DU=0;P0=0xff;WE=1;P0=T_COM[0];WE=0;delay(3);//-------------------------------DU=1;P0=table[Value%10000/1000];DU=0;P0=0xff;WE=1;P0=T_COM[1];WE=0;仅供学习与交流,如有侵权请联系网站删除谢谢13精品好文档,推荐学习交流delay(3);//-----------------
7、--------------DU=1;P0=table[Value%10000%1000/100];DU=0;P0=0xff;WE=1;P0=T_COM[2];WE=0;delay(3);//-------------------------------DU=1;P0=table[Value%10000%1000%100/10];DU=0;P0=0xff;WE=1;P0=T_COM[3];WE=0;delay(3);//------------------------------
此文档下载收益归作者所有