汽车雨刮器仿真设计自动化专业综合设计Word文件下载.docx
- 文档编号:17581535
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:15
- 大小:163.10KB
汽车雨刮器仿真设计自动化专业综合设计Word文件下载.docx
《汽车雨刮器仿真设计自动化专业综合设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《汽车雨刮器仿真设计自动化专业综合设计Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
1.2雨刷故障检测电路
在雨刷工作状态中,最常见的故障便是雨刷电机堵转。
当电机出现堵转现象时,流过电机线圈电流会急剧上升,如果堵转现象不能得到及时解决,可能会导致电机线圈烧毁。
具体解决方法如下:
在电机与接地之间连接一个小电阻,将比较器的正端给定略大于电机正常运行时小电阻两端的电压值,而比较器负端则接在小电阻的高电位上。
电机正常运行情况下,电阻的端电压较小,比较器正端电压会大于或等于负端电压;
而当电机堵转时,由于电流急剧上升,所接小电阻端电压急剧变大,从而导致比较器正端电压小于负端电压的现象出现。
我们利用比较器的特性,通过比较器的正负端电压来判断电机是否出现堵转故障:
若在一定时间内,比较器正端电压与负端电压相差不大,则表明电机正常运转;
若在一定时间内,比较器正端电压低于负端电压,则表明电机堵转。
雨刷故障检测电路见图二
图二雨刷故障检测电路
1.3雨量检测电路
在自动雨刷系统中,控制器通过雨量检测装置检测降雨量大小,进而控制雨刷器摆动速度。
此次设计采用红外式雨量检测装置。
1.3.1红外雨量监测装置工作原理
雨量检测装置由玻璃棱镜、红外线光源发射器和红外线光源接收器等部件组成。
红外线光源发射器将红外光以固定角度投射到挡风玻璃上,经由挡风玻璃、棱镜反射回到红外线接收器;
在挡风玻璃清晰的情况下,红外接收器收到的红外线总量与红外线发射器发出的红外线总量基本相等。
当有雨滴落在挡风玻璃上时,部分红外线会因雨滴的折射而分散到外部,导致红外接收器接收到的红外线总量小于发射器发出的红外线总量。
通过对红外线总量的检测,判断雨量的大小,进而发出刮水请求到雨刷控制器,完成不同档位的刮水行为。
原理图见
图三雨量检测原理图
1.3.2红外发送电路
雨量检测的发送装置采用的是红外发射二极管(TSAL6200),它将周期的电信号转变成一定频率的红外信号。
如果给红外发射端提供频率为38KHZ的方波信号,那么发射端就会发射出相应频率的红外信号。
1.3.3红外接收电路
HS0038B是一种能够接收红外信号的小型接收器件,不需要加红外过滤装置。
当HS0038B在没有接收到红外光时,输出端处于高电平;
当接收端有红外光输入时,输出端为低电平。
实际应用中,由于雨量大小的不同,玻璃的反射率就会有所不同,红外光的反射数量也就不同,红外光接收器输出地脉冲频率也会有相应的变化。
通过单片机的P2.6管脚的捕捉功能,连续捕捉脉冲的两个上升沿,算出脉冲频率值,通过处理就能得到雨量大小变化。
1.4电机驱动电路
电机驱动电路中,由单片机输出一定频率的脉冲,通过三极管驱动继电器工作,当继电器闭合时,直流电机两端承受正向电压,电机启动。
为了保护继电器,我们在继电器两端并联一个反向二极管,起到续流的作用。
电路图如下
图四电机驱动电路
1.5雨刮工作模式显示
雨刮工作模式显示由单片机和数码管共同完成,雨刮工作时,单片机将判断雨刮出于何种工作模式,并有由单片机P0口各引脚和P1口的低四位输出对应的高低电平,控制数码管显示。
电路连接如下:
图五工作模式显示
1.6雨刮控制电路原理图
图六雨刮控制电路原理图
2仿真图设计
仿真图如图七:
图七雨刮控制仿真图
3控制程序编写
3.1程序流程图
图八程序流程图
3.2雨刮控制参考程序源代码
源代码:
#include<
reg51.h>
#defineuintunsignedint
#defineucharunsignedchar
sbitFl=P1^0;
//喷水电机控制位
sbitOff=P1^1;
//停止电机控制位
sbitInt=P1^5;
//间歇转
sbitHi1=P1^3;
//电机高速1
sbitHi2=P1^4;
//电机高速2
sbitdiankong=P1^2;
sbitHi_motor=P3^0;
//雨刷电机
sbitFl_motor=P3^1;
//喷水电机
sbitWE1=P3^4;
sbitWE2=P3^5;
sbitWE3=P3^6;
sbitWE4=P3^7;
//数码管位选
sbitled=P3^3;
uintnum=0,k=0,delta=5,time=0,temp;
uintk1,k2,k3,k4;
uintflag=0;
ucharcodedtable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc8};
//共阳数码管码表
ucharcodelable[]={0xbf,0xc0,0x8e,0xf9,0xab,0x87,0xc7,0x89,0xa4};
//"
-OFIntLH"
字符编码
voiddelay(uintz)
{
uintx,y;
for(x=15;
x>
0;
x--)
for(y=z;
y>
y--);
}
/**********电机、IO口函数************/
voidinit(void)
{
Hi_motor=0;
Fl_motor=0;
P1=0xef;
WE1=0;
WE2=0;
WE3=0;
WE4=0;
P0=0x00;
}
/**********定时器0初始化函数************/
voidInit_timer0()
TMOD=0x01;
//工作模式1
TH0=(65536-100)/256;
TL0=(65536-100)%256;
//定时器0赋初值0.1ms
EA=1;
//开
ET0=1;
//打开定时器0中断
TR0=1;
//启动定时器0
/**********外部中断0初始化函数********/
voidX0_init()
EX0=1;
//允许外部中断0中断
IT0=1;
//跳沿式触
/**********数码管函数************/
voiddisplay1(uintk1,uintk2,uintk3)
WE1=1;
P0=lable[k1];
delay
(1);
WE2=1;
P0=lable[k2];
WE4=1;
P0=dtable[k3%10];
WE3=1;
P0=dtable[k3/10];
/**********雨量检测函数************/
uintcheck_date()//雨量检测
{
uintk;
temp=P2;
temp=temp&
0x0f;
switch(temp)
case0x00:
returnk=0;
break;
case0x01:
returnk=1;
case0x02:
returnk=2;
case0x03:
returnk=3;
case0x04:
returnk=4;
case0x05:
returnk=5;
case0x06:
returnk=6;
case0x07:
returnk=7;
case0x08:
returnk=8;
case0x09:
returnk=9;
case0x0a:
returnk=10;
case0x0b:
returnk=11;
case0x0c:
returnk=12;
case0x0d:
returnk=13;
case0x0e:
returnk=14;
case0x0f:
returnk=15;
default:
break;
/**********main函数************/
voidmain()
init();
//电机初始化
X0_init();
//外部中断0初始化
Init_timer0();
//定时器0初始化
while
(1)
/*if(flag)
display1(0,0,check_date());
elseif(!
Fl)
display1(2,6,check_date());
Fl_motor=1;
else
Fl_motor=0;
}*/
if(!
/**********定时器0中断函数************/
voidtimer0_IRQ()interrupt1//控制电机各种转动
//定时器0赋初值0.1ms
Off)//判断是否按下“Off”键
while(!
Off)
display1(1,2,check_date());
//电机停止
if(Off)
//退出循环
Int)//判断是否按下“Int”键
num++;
//计数值增加
Int)
{display1(3,4,check_date());
if(num<
250)
{
led=1;
Hi_motor=1;
//电机转2.5s
}
if(num>
=2500&
&
num<
5000)
{
led=0;
Hi_motor=0;
//电机停2.5s
}
=5000)
num=0;
if(Int)
//计数值清0,防止干扰
break;
//退出循环
}
diankong)//判断是否按下“Int”键
diankong)
{display1(0,0,check_date());
2000)
=2000)
num=2000;
if(diankong)
else//PWM控制电机的转速
Hi1)//高速1
display1(7,3,check_date());
delta=50;
Hi2)//高速2
display1(7,8,check_date());
delta=0;
else
delta=0;
//高速1
num++;
//计数值增加
time=20+check_date()*5;
//电机运行的时间
time)
//电机转动
=time&
(100+delta))
//电机停止
if(num>
=(100+delta))
num=0;
/**********外部中断0中断函数************/
voidX0_IRQ()interrupt0
{TR0=0;
//关闭定时器0
delay(10000);
//打开定时器0
三设计总结
课程设计中用到了protel(altiumdesigner)和proteus软件来分别设计原理图和仿真图,同时也用到了keil软件来编写运行控制程序。
在解决设计过程中所遇到的各种问题的过程中,在一定程度上加深了对以上软件的认识与理解,也加强了对这些软件的运用和掌握。
此次课程设计中运用到了模拟电子技术、单片机技术、自动控制原理等专业基础课程中的内容,是对我们在大学里面所学习的知识的一个考察与检测,同时,也是在为即将参加工作的同学们提供一次整体知识回顾与运用的机会。
综合设计题目来源于生活,让我们在大学期间学习的理论知识显得并不是那么空洞,得到了很好的实践,也使得对自己的发展方向更加明确。
四参考文献
【1】鲍迪,贾文超,柏丹.车用雨量检测装置设计研究【J】.吉林:
长春工业大学电气与电子工程学院
【2】张毅刚,彭喜元.单片机原理及应用【M】.北京:
高等教育出版社
【3】杨素行.模拟电子技术基础简明教程【M】.北京:
清华大学电子学教研组出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车雨刮器仿真设计 自动化专业综合设计 汽车 雨刮器 仿真 设计 自动化 专业 综合