汽车传感器的检测程序是什么?

汽车传感器的检测程序是什么?,第1张

1、氧传感器:当氧传感器故障时,ECU无法获取这些信息,就不知道喷射的汽油量是否正确,而不合适的油气空燃比会导致发动机功率降低,增加排放污染;

2、轮速传感器:它主要是收集汽车的转速来判断汽车有没有打滑的征兆,所以,就有一一个专门收集汽车轮速的传感器来完成这项工作,一般安装在每个车轮的轮毂上,而一旦传感器损坏,ABS会失效;

3、水温传感器:当水温传感器故障后,往往冷车启动时显示的还是热车时的温度信号,ECU得不到正确的信号,只能供给发动机较稀薄的混合气,所以发动机冷车不易启动,且还会伴随怠速运转不稳定,加速动力不足的问题;

4、电子油门踏板位置传感器:当传感器失效后,ECU无法测得油门位置信号,无法获得油门门踏板的正确位置,所以会出现发动机加速无力的现象,甚至出现发动机不能加速的情况;

5、进气压力传感器:进气压力传感器顾名思义就是随着发动机不同的转速负荷,感应一系列的电阻和压力变化,转换成电压信号,供ECU修正喷油量和点火正时角度。一般安装在节气门边上,假如故障了会引起点火困难、怠速不稳、加速无力等问题。

#include<reg52.h>

#include<Star1602.h>

#define CIRCLE 1.8 //宏定义 车轮的周长(这个要根据实际的车轮进行设置)

sbit Signal = P1^0 //这里的Signal表示的是霍尔传感器的信号引脚

int m_second=0; //定义变量m_second,用来记录时间(以毫秒为单位)

float speed=0.0 //定义速度变量

float length=0.0 ;//定义路程变量

void main()

{

lcd_init()//初始化液晶函数

TMOD = 0x01//打开定时器0,并设定其工作方式为16位定时模式。

TH0=(65536-10000)/ 256

TL0=(65536-10000)% 256 //设定定时器的初值,使得没10ms中断一次

EA = 1 //允许总中断

ET0 = 1 //允许定时器0终端

TR0 = 1; //启动定时器0

while(1) //大循环

{

while(Signal); //等待霍尔传感器信号线拉低;

speed = CIRCLE *1000 / m_second //计算速度。

m_second = 0 //计时清零

length += CIRCLE //路程加一个车轮周期

//第一行,显示速度

lcd_pos(0x0) //设定液晶的写入位置为第一行第一格

lcd_wdat(‘S’)

lcd_wdat(‘p’)

lcd_wdat(‘e’)

lcd_wdat(‘e’)

lcd_wdat(‘d’)

lcd_wdat(‘:’)

lcd_wdat( (int)speed%10 ) //显示速度的整数部分

lcd_wdat( (int)(speed*10)%10 ) //显示速度的小数第一位

lcd_wdat( (int)(speed*100)%10 ) //显示速度的小数第二位

lcd_wdat(‘m’)

lcd_wdat(‘/’)

lcd_wdat(‘s’)

//第二行,显示里程

lcd_pos(0x80) //设定液晶的写入位置为第二行第一格

lcd_wdat(‘L’)

lcd_wdat(‘e’)

lcd_wdat(‘n’)

lcd_wdat(‘g’)

lcd_wdat(‘t’)

lcd_wdat(‘h’)

lcd_wdat(‘:’)

lcd_wdat(length /10000+0x30) //显示里程的万位;

lcd_wdat(length %10000/1000+0x30) //显示里程的千位;

lcd_wdat(length %1000/100+0x30) //显示里程的百位;

lcd_wdat(length %100/10+0x30) //显示里程的十位;

lcd_wdat(length %10+0x30) //显示里程的个位;

lcd_wdat(‘m’)

}

}

void timer0_intt() interrupt 1 //

{

TH0=(65536-10000)/ 256

TL0=(65536-10000)% 256 //设定定时器的初值,使得没10ms中断一次

m_second += 10 //因为中断每10毫秒一次,所以这里每次加10;

}

附件1 Star1602.h

#ifndef __STAR1602_H__

#define __STAR1602_H__

sbit rs= P2^0 //

sbit rw = P2^1 //

sbit ep = P2^2 //

void lcd_init() //液晶初始化函数

void lcd_pos(unsigned char pos) //设定液晶的显示位置函数

void lcd_wdat(unsigned char dat) //液晶写入字符

void lcd_write_int(unsigned int x)//液晶显示一个整形变量

#endif

附件2 Star1602.c

#include <reg52.h>

#include "1602.h"

/*****************************************************************************

函数功能:LCD延时子程序

入口参数:ms

出口参数:

*****************************************************************************/

static void delay(unsigned char ms)

{

unsigned char i

while(ms--)

{

for(i = 0i<5i++)

}

}

/*****************************************************************************

函数功能:测试LCD忙碌状态

入口参数:

出口参数:result

*****************************************************************************/

static bit lcd_bz()

{

bit result

rs = 0

rw = 1

ep = 1

delay(5)

result = (bit)(P0 &0x80)

ep = 0

return result

}

/*****************************************************************************

函数功能:写指令数据到LCD子程序

入口参数:cmd

出口参数:

*****************************************************************************/

static void lcd_wcmd(unsigned char cmd)

{

while(lcd_bz())//判断LCD是否忙碌

rs = 0

rw = 0

ep = 0

delay(5)

P0 = cmd

delay(5)

ep = 1

delay(5)

ep = 0

}

/*****************************************************************************

函数功能:设定显示位置子程序

入口参数:pos

出口参数:

*****************************************************************************/

void lcd_pos(unsigned char pos)

{

lcd_wcmd(pos | 0x80)

}

/*****************************************************************************

函数功能:写入显示数据到LCD子程序

入口参数:dat

出口参数:

*****************************************************************************/

void lcd_wdat(unsigned char dat)

{

while(lcd_bz())//判断LCD是否忙碌

rs = 1

rw = 0

ep = 0

P0 = dat

delay(5)

ep = 1

delay(5)

ep = 0

}

/*****************************************************************************

函数功能:LCD初始化子程序

入口参数:

出口参数:

*****************************************************************************/

void lcd_init()

{

lcd_wcmd(0x38)

delay(100)

lcd_wcmd(0x0c)

delay(100)

lcd_wcmd(0x06)

delay(100)

lcd_wcmd(0x01)

delay(100)

}

/*****************************************************************************

函数功能:LCD写入一个整形数据

入口参数:int x

*****************************************************************************/

void lcd_write_int(unsigned int x)

{

unsigned char x1,x2,x3,x4,x5;

x1 = x/10000

x2=x%10000/1000

x3=x%1000/100

x4=x%100/10

x5=x%10

lcd_wdat(x1+0x30)

lcd_wdat(x2+0x30)

lcd_wdat(x3+0x30)

lcd_wdat(x4+0x30)

lcd_wdat(x5+0x30)

}

由于长期工作在高电流、高电压的环境中,电源部分的故障率是较高的,常见的有:电路中的限流电阻开路,造成整机无反应,此电阻多为大功率小阻值,只须按相同规格更换即可;长期工作,大功率连接点发热产生虚焊,造成工作不稳定,解决该故障的方法是找到虚焊点补焊。但该故障具隐蔽性,要细致地查到真正的虚焊点,不然频繁的不稳定工作极易损坏其它电路;电容器性能变坏,造成工作不稳定,由于滤波电容器多为铝电解电容器,长期的工作会使其电解液干枯或泄漏,造成性能值漂移,从而造成整个电路工作不稳定。电容器工作于开关电源中,变换时要使用性能优良的电解电容器,并核对耐压值及容量。

逆变器部分

常见的是逆变功率模块烧毁,造成开机有显示,进行 *** 作时没反应并报错。一般情况下,功率模块烧毁后会导致隔离驱动电路损坏。所以当检查到功率模块已烧毁时,一定要详细地检查驱动电路,特别是隔离光耦。确认驱动电路完好后,才可替换功率模块,不然,换上模块后,试机的瞬间又将被烧毁。功率模块种类繁多,更换时要使用型号相同、各规定值相同的模块。

输入部分

闭环伺服控制系统中,为了反馈信号给控制系统,在执行机构中不可避免地使用到传感器,而传感器又是机电一体化系统中较易发生故障的部位。因而,系统一般都设有传感器失效的出错提示和传感器测试程序,便于日常的检修。缝纫机用的伺服系统中,装置有传感器的部位大致有:上针位;下针位;测速;安全开关;脚踏启动;X、Y原点及压脚等。不同用途的机种,其传感器也不尽相同。一般有动作又需要定位的部位都装有传感器。常用的传感器为霍尔式和机电式。当传感器发生故障特征:开机初始化或启动时,即机器在寻找各点的正确位置时无法得到确认而处于失灵状态,约几秒钟后停止检测并显示故障代码。检修时依故障代码进行,直接可找到失效的传感器,再调用输入测试程序给予确认,再更换损坏的传感器


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12083042.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-20
下一篇2023-05-20

发表评论

登录后才能评论

评论列表(0条)

    保存