您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 51单片机驱动智能小车原理图
课程设计说明书制控机算计题目:车小迹循学生姓名:王荣明学号:200706040123(系):院电信学院(自动化系)专业:测控技术与仪器指导教师:刘文波、姜丽波2011年日25月2循迹小车方案书循迹小车一、课设题目:二、课设要求:字型的黑色轨迹一周)“8“(顺利走一个、完成基本设计功能1、所用时间长短2、自己发挥部分(音乐、彩灯、壁障、显示等)3刘文波姜丽波黄建兵周强、指导老师:郑恩让4器件相关参数。元器件及元号完成方案的大体框架,确定大致6-4月元、1:三、任务时间表号完成电路图绘制7月元、2器件清单元号确定8月元、3进行编程,仿真10-9月元、4器件元号购买11月元、5四、框架图e偏差控制器执行器被控对象+r给定值车速和方向单片机电机车小迹循|值馈反光电传感器1图循迹小车框架图五、小车各模块电路图及说明1电源部分:稳压后给支流电机供电,给单片机系统和其他7805,经9v干电池供电,电压达到1.5V节6采用:1方案芯片供电。但干电池电量有限,使用大量的干电池给系统调试带来很大的不便,因此,我们放弃了这种方案。的电压变换后给支流电机7805给直流电机供电,经过8.6V可充电式锂电池串联共4.2V节2:采用2方案供电,给单片机系统和其他芯片供电。但由于电压不太够,价格昂贵,因此,我们放弃了。电压降压、稳压后给单片机系统和其他芯片供电。蓄电池12V蓄电池为直流电机供电,将:9V:采用3方案具有较强的电流驱动能力以及稳定的电压输出性能。但蓄电池的体积过于庞大,使用极为不方便,因此弃了。供单片5V稳压到7805直流电,再经9V交流电转换为220v直流电源,由稳压模块将9V:直接采用4方案机,电机使用。但其不能用于远距离,且在运行中要注意电线的干扰。由于用于本次设计演示的标轨道不太大,:下如图路电。惠实济经最它为因,案方此用采们我以所,分部线源电制控为人以可们我时示演在电源模块电路图2图、电机驱动控制部分:2,它可同时对两个电机进行驱动控制,电路简单,控制效果好,干扰L298这部分采用专门的电机控制芯片小,因此我们采用此方案,电路图如下3图电机驱动控制部分电路图的具体参数如下:L298管脚排列如下:L2983传感器探测部分::用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到1方案白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值但是这种方案受光照影响很大,不能够会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。稳定的工作。因此我们考虑其他更加稳定的方案。:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照2方案射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。是一种一体化反射型光电探测器,其发射器是一个砷化镓RPR220型光电对管。RPR220:用3方案二极管,而接收器是一个高灵敏度,硅平面光电三极管。封装,其具有如下特点:DIP4采用RPR220塑料透镜可以提高灵敏度。内置可见光过滤器能减小离散光的影响。体积小,结构紧凑。4如别分图理原路电,路电理调及测检管对电光种两了证论并计设们我图和5:示所图1光电对管检测电路4图的上端变为高R2起限流电阻的作用,当有光反射回来时,光电对管中的三极管导通,R1所示电路中,4饱和导通,三极管集电极输出低电平。VT1电平,此时截至,其集电极输出高电平。VT1当没有光反射回来时,光电对管中的三极管不导通,在该电路中起到滤波整形的作用。VT1经试验和示波器验证,该电路工作性能一般,输出还有杂散干扰波的成分。如果输出加施密特触发器就可以实现良好的输出波形。但是这种电路用电量比较大,给此种传感器调理电路供电的电池压降较快。究其原因,是因为光敏三极管和导通时的导通电流较大。VT1三极管因此我们考虑用比较器的方案。5图2光电对管检测电路参数如下:RPR220六、总电路原理图图:6图循迹小车电路图(详见附页)器件清单:元七、器件元数量电机(带轮)2L8921LM9332RPR0224M232xa1S(带底座)15c98tc1104电容1010fu电容21k电阻52k电阻5510欧姆510K电阻55K.1电阻210K电位器2个开关5电路板133fp212M晶振1Lde178051K1排阻14二极管14810八、程序流程图开始启动寻迹程序线黑测探否是否探测到黑线是h)itcsw(判断处理程序左轮探测到黑线右轮探测到黑线左右轮同时探测到黑线转左向转右向继续前进进前续继结束九、循迹小车程序#includereg52.h***************************************Start第一部分*********************//管脚位声明L298以下是点击驱动芯片IN1=P1^0;//sbitPWM1=P1^1;sbitIN2=P1^2;sbitIN3=P1^3;sbitPWM2=P1^4;sbitIN4=P1^5;sbit管脚位声明RPR220此处是传感器RPR1=P1^6;//sbitRPR2=P1^7;sbit用于定时计数的两个全局变量位声明count1=0;//intcount2=0;int***************************************End第一部分*********************//****************************Start子函数定义第二部分*********************//前进1电机//turn1()_forwardvoid{IN1=0;IN2=1;}后退1电机//rutn1()_reversevoid{IN1=1;IN2=0;}前进2电机//turn2()_forwardvoid{IN3=0;IN4=1;}后退2电机//rutn2()_reversevoid{IN1=1;IN2=0;}波形的比较基准PWM为生成sd速度控制函数,其中参数1电机//sd)ct,intspeed1(intvoid{if(ct=sd)PWM1=1;elsePWM1=0;}波形的比较基准PWM为生成sd速度控制函数,其中参数2电机//sd)ct,intspeed2(intvoid{if(ct=sd)PWM2=1;elsePWM2=0;}*********************End子函数定义第二部分*********************//********Start小车直线前进,左转,右转函数定义第三部分**********//小车直线前进函数//sd2)ct2,intsd1,intct1,intadvance(intvoid{;turn1()_forward;turn2()_forward;speed1(ct1,sd1);speed2(ct2,sd2)}******************************通过使两轮一快一慢来实现转向,1以下是方案*************//小车左转//sd2)ct2,intsd1,intct1,intturn1(int_leftvoid{;turn1()_forward;turn2()_forward;speed1(ct1,sd1);speed2(ct2,sd2)}小车右转//sd2)ct2,intsd1,intct1,intturn1(int_rightvoid{;turn1()_forward;turn2()_forward;speed1(ct1,sd1);speed2(ct2,sd2)}************************通过使两轮一正传,一反转来实现转向,2以下是方案*************//小车左转//sd2)ct2,intsd1,intct1,intturn2(int_leftvoid{;turn1()_forward;rutn1()_reverse;speed1(ct1,sd1);speed2(ct2,sd2)}voidturn2(int_rightct1,intsd1,intct2,int小车右转//sd2){;turn1()_forward;rutn1()_reverse;speed1(ct1,sd1);speed2(ct2,sd2)}第三部分**********//小车直线前进,左转,右转函数定义********End********************************Start主函数部分4第**********//main(){中断模式设置TMOD=0x11;//初始化1定时器/256;//1000)-TH0=(65536%256;1000)-TL0=(65536EA=1;ET0=1;TR0=1;初始化2定时器/256;//1000)-TH1=(65536%256;1000)-TL1=(65536EA=1;ET1=1;TR1=1;while(1){未检测到黑线,小车继续前进//if(RPR1==0&&RPR2==0){;advance(count1,500,count2,500)}仅左轮检测到黑线,小车向左转弯//if(RPR1==1&&RPR2==0){;turn1(count1,200,count2,500)_left}仅右轮检测到黑线,小车向右转弯//if(RPR1==0&&RPR2==1){;turn1(count1,500,count2,200)_right}/*左右轮均检测黑线,小车继续前进*/if(RPR1==1&&RPR2==1)/*字型路线交叉处小车如何前进的问题)8(此处用来处理*/{;advance(count1,500,count2,500)}}}********************************End主函数部分4第**********//********************************Start中断服务程序第五部分**********//1interrupttime0()void{1ms定时/256;//1000)-TH0=(65536%256;1000)-TL0=(65536;++count11s周期是//if(count1=1000)count1=0;}3interrupttime1()void{1ms定时/256;//1000)-TH0=(65536%256;1000)-TL0=(65536;++count21s周期是//if(count2=1000)count2=0;********************************End中断服务程序第五部分**********}//十、总结语言的编程,让我对自动控制领C51这次课程设计,不仅锻炼了我单片机硬件设计的能力,也进一步掌握了的相关理论有了更深刻的认识,同时也看到了教学知识与工业应用的差距。语言编写的,这不但要求设计者具有较强的编程能力,还要对C单片机,程序是用C51这次运用的处理器是多年了,计算机现在已成为了一种工具,编程能力强的人不胜枚举,60硬件相当熟悉。从计算机诞生到现在已有熟悉硬件的同志比比皆是,然而既有较好的编程能力,又能熟悉硬件,并且能基于硬件进行开发的工程师仍是稀DSP位的16位的单片机发展到8缺资源,这是以后发展的一个亮点,也是我们奋斗的一个方向。微控制领域已从ARM,大到航空航天,应用领域十分广泛,MP4的嵌入式控制技术已经成熟,小到ARM位的基于32器件,而目前的课程,ARM之类的处理器已势在必行。遗憾的是学校没有开始ARM以上的份额,可见学习75%占据嵌入式处理器这就需要我们在学好专业课的基础上自行奋斗!不懈努力!十一、参考文献1.2005李正军。计算机控制系统。北京:机械工业出版社,2.2003童诗白,华成英。模拟电子技术基础。北
本文标题:51单片机驱动智能小车原理图
链接地址:https://www.777doc.com/doc-7355131 .html