检测CO一氧化碳传感器故障

本文详细介绍了如何检测一氧化碳(CO)传感器的故障,包括通过观察不同情况下的波形来判断传感器状态,硬件连接方式,以及使用ADC值进行软件代码实现的充电和放电检测。在特定温度范围内,通过比较充电和放电后的ADC值来识别短路、开路和正常情况。实测结果显示该方法稳定性高。
摘要由CSDN通过智能技术生成

#检测CO传感器故障

##传感器各种情况波形
注意注意
-先看传感器各种情况波形
-开发板连接带运放电路的传感器 连接ADC 脚 &&充放电电脚(故障检测脚)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
##以及各种情况的ADC值
在这里插入图片描述
在这里插入图片描述

#硬件连接
在这里插入图片描述

#软件代码

##充电
##放电之后等一点时间 检测ADC值

uint8_t co_err_check(void)
{
	//检测开路  短路 故障 [在基准AD值650左右情况下] 
	//充电 1.6v-0.6v放电曲线  为正常      |AD值2100  ~  650
	//充电 1.6V高  断电0.6v低 为断路 开路	|AD值2500     650
	//充电 没反应  可能1.25v 可能0V  短路	|AD值1500            35
	uint8_t return_Statue = 0;
	uint8_t Check_Statue = 1;//0为结束
	uint32_t Check_Num=0;
	uint32_t Check_Buffer[5]={0};
	//必须在空气中  温度适宜 才去判断故障 2021 1 20
	//短路小于100  冲电 正常大于1800 开路小于1000大概等于基准600左右 
	if((Temp_Val<36) && (Temp_Val>5))//这个限制是否合理  万一认证那边天气温度低就测不了
	{

				Check_Buffer[0] = Adc_ReadCoVal();//气体增加  增加  正常700
				
				Gpio_ClrIO(CO_CHECK_PORT, CO_CHECK_PIN);
				delay_ms(100); 
				Check_Buffer[1] = Adc_ReadCoVal();//气体增加  增加  正常3300
				Gpio_SetIO(CO_CHECK_PORT, CO_CHECK_PIN);	
				delay_ms(4000);
				for(uint8_t i=0;i<2;i++)//打印采集的 
					printf("Check_Buffer %d: %d\r\n",Check_Num,Check_Buffer[i]);
				//短路  充电前0数据 600  充电后1数据 600
				//断路  充电前0数据 600  充电后1数据 600  
				//正常  充电前0数据 600  充电后1数据 900 
				
				//优先判断正常的  <100的
				if(Check_Buffer[1] > Check_Buffer[0] )
				{
					Check_Num = Check_Buffer[1] - Check_Buffer[0];
				}
				else
				{
					Check_Num = Check_Buffer[0] - Check_Buffer[1];
				}
				
				if(Check_Num>2000)
				{
					return_Statue=2;
					printf(" open 2 !\r\n\r\n");
				}
				else if(Check_Num>130)
				{
					return_Statue=4;
					printf(" nomal 4 !\r\n\r\n");
				}
				else
				{
					return_Statue=1;
					printf(" short 1 !\r\n\r\n");
				}		
	}
	else
	{
		return_Statue=4;
	}
	return return_Statue;
}

#最后实测效果 很稳定

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值