
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原点及压脚等。不同用途的机种,其传感器也不尽相同。一般有动作又需要定位的部位都装有传感器。常用的传感器为霍尔式和机电式。当传感器发生故障特征:开机初始化或启动时,即机器在寻找各点的正确位置时无法得到确认而处于失灵状态,约几秒钟后停止检测并显示故障代码。检修时依故障代码进行,直接可找到失效的传感器,再调用输入测试程序给予确认,再更换损坏的传感器
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)