嘿,我的读者们!
在上一章中,我主要讲了如何通过DHT11测量温湿度,由于有单总线通信,需要编写时序函数,所以难度有点大。那么在这一章中,我打算用MQ135模块来检测空气质量,仍然是对环境参量的获取。不像DHT11模块,在MQ135内部并没有集成AD转换器,当然,我们也不需要在外围搭建AD转换电路,而是利用stm32的内部ADC资源,完成对获取到的模拟量的转换。
MQ135传感器主要检测空气中的一些有害气体,比如硫化物、氨气等,还可以对烟雾等进行检测,总之,就是检测空气中污染物的一款传感器。下面,就是MQ135模块的实物图。
由图可知:该模块有4个引脚,分别是两个电源VCC和GND,一个数字输出口和一个模拟输出口。模块中还有一个可调电位器,用来调节灵敏度的。在本制作中,由于我们需要测量空气质量的数值,所以需要用到模拟输出口,即A0输出。而数字输出口只能在超过某设定值时,才能进行电平的跳变,如果你要设置某报警装置时,可以用一下,所以我们不用数字输出口。
至于MQ135模块的内部测量电路的工作原理,在这里不再阐述,有兴趣的读者,可以网上查阅。我们只要知道,该模块A0输出端电压随环境空气质量的变化而变化,只要通过AD转换将A0端口电压模拟量转换为数字量,再通过一定的公式转换,即可测量出空气质量的数值。
stm32内部自带ADC资源,它可以将模拟信号转换为数字信号,是12位逐次逼近型的模拟数字转换器。stm32有 3 个 ADC,这些 ADC 可以独立使用,也可以使用双重(提高采样率),具有多达 18个复用通道,可测量来自16个外部源、2 个内部源信号。 这些通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。
(1)初始化相关的GPIO口
/ADC初始化函数/
void adc_gpio_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);
GPIO_InitStructureGPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructureGPIO_Pin = GPIO_Pin_1;
GPIO_InitStructureGPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
配置GPIO口,选择PA1引脚,开启PA1和ADC1的时钟,由于需要检测电压模拟量,将引脚设置成模拟输入。
(2)编写ADC初始化函数
void adc_init(void)
{
ADC_InitTypeDef ADC_InitStructure;//定义ADC结构体变量
adc_gpio_init();//GPIO口初始化
RCC_ADCCLKConfig(RCC_PCLK2_Div6);//设置ADC分频因子6 72M/6=12,ADC最大时间不能超过14M
ADC_InitStructureADC_ContinuousConvMode = DISABLE;//关闭连续转换
ADC_InitStructureADC_DataAlign = ADC_DataAlign_Right;//右对齐
ADC_InitStructureADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//禁止触发检测,使用软件触发
ADC_InitStructureADC_Mode = ADC_Mode_Independent;
ADC_InitStructureADC_NbrOfChannel = 1;//1个转换在规则序列中 也就是只转换规则序列1
ADC_InitStructureADC_ScanConvMode = DISABLE;//非扫描模式
ADC_Init(ADC1, &ADC_InitStructure);//ADC初始化
ADC_Cmd(ADC1, ENABLE);//开启AD转换器
ADC_ResetCalibration(ADC1);//重置指定的ADC的校准寄存器
while(ADC_GetResetCalibrationStatus(ADC1));//获取ADC重置校准寄存器的状态
ADC_StartCalibration(ADC1);//开始指定ADC的校准状态
while(ADC_GetCalibrationStatus(ADC1));//获取指定ADC的校准程序
ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能或者失能指定的ADC的软件转换启动功能
}
在ADC初始化函数里,由于AD转换时间没有那么快,所以设置ADC分频因子为6,将系统时间分频。然后对ADC_InitStructure结构体的每一个元素赋值,这里,我借鉴了普中的资料。就像上面这样配置,就可以了。本人水平有限,可能讲不清楚,见谅。
接着,开启AD转换器,并进行校准,并且使能指定的ADC的软件转换启动功能,至此,就完成了ADC的初始化。
(3)编写AD转换函数
u16 get_adc_value(u8 channel,u8 times)
{
u32 total_value;
u16 average_value;
u8 i;
//设置指定ADC的规则组通道,一个序列,采样时间
//ADC1,ADC通道,2395个周期,提高采样时间可以提高精确度
ADC_RegularChannelConfig(ADC1, channel, 1, ADC_SampleTime_239Cycles5);
for(i=0; i<times; i++)
{
ADC_SoftwareStartConvCmd(ADC1, ENABLE);//使能指定的ADC1的软件转换启动功能
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));//等待转换结束
total_value += ADC_GetConversionValue(ADC1);
delay_ms(5);
}
average_value = total_value/times;
return average_value;
}
AD转换函数的入口参数为AD转换通道和采样转换次数,通过ADC_RegularChannelConfig()函数,指定ADC1,转换通道,转换周期等,启动AD转换,连续采集数据并取平均值。最后返回采集并AD转换的数字量。
(4)主程序调用AD转换函数,获取空气质量数值
value = get_adc_value(ADC_Channel_1,10);//设置通道:ADC_Channel_1,每次连续采样10次
value = (u16)((float)value300/4096);//数值转换,采集AD数值范围:0~4095,而空气质量范围:0~300。
这里,我在网上查阅资料,并没有详细说明,MQ135空气质量的计算公式,所以本人也不知道如何换算。因此,这里的空气质量检测只能达到演示的效果(自定义的转换公式),如果有读者知道,可以在下方的评论中留言,或者在中私信我,谢谢!
文/张一
凯迪拉克CT5无疑是凯迪拉克近段时间最重磅的车型,还没上市“没有后驱不算豪华”的宣传语就已经刷了屏。我们最近也拿到了一台凯迪拉克CT5试驾车,那么作为一台主打运动的中级轿车,凯迪拉克CT5的真本事到底如何?废话少说,数据说话。
我们本次测试的是凯迪拉克CT5 2020款 28T 豪华型,官方指导价2997万元。为了叙述方便,以下将其简称为“CT5”。强调一下,由于路况、湿度、气温和周边环境的不同,所以不同道路条件下测试的加速、刹车、静音性以及车内空气质量检测参数,仅作参考,不能够作为对比依据。
钣金测试对得起凯迪拉克金字招牌
我们在CT5上选取的钣金缝隙测量点共有4对8组,分别是引擎盖靠近A柱下端左右缝隙、引擎盖前端靠近车灯的左右缝隙,尾厢门上端靠近后挡风玻璃左右缝隙,尾厢门下端靠近底部的左右缝隙。基本上可以这样说,这4组数据足以反映一款车的钣金拼装水准。
虽说尾门下方左右缝隙对称度有1mm误差,但整体看下来,CT5的钣金做工依然对得起凯迪拉克的金字招牌。
漆面工艺偏差
根据引擎盖的冲压型面,我们选择的车漆测试点为引擎盖上5个不同的测试点,其中4个测试点位于引擎盖主平面上。基本上这一组数据就能反映CT5的车漆整体工艺水准。
从测量的结果可以看到,凯迪拉克CT5引擎盖主平面的漆面喷涂工艺不太好,最大误差达到了215微米,有明显厚薄不均。然而引擎盖一侧的冲压折面的测量成绩则是问题更大,对比引擎盖正面测量结果看,这一块折边斜面落漆太少,所以CT5的引擎盖没做二次喷涂标定是无疑的。事实上,在我们之前测试过的所有凯迪拉克其它车型中,并未出现这种问题,所以,希望这次是个案。
不错的动力,一流的刹车,顶级的 *** 控
我们试驾的这款凯迪拉克CT5搭载177kW/350Nm的直列四缸20L涡轮增压引擎,匹配10速自动变速箱。
0-100km/h最快加速成绩为759秒。起步的时候ESP限制得有些大,以至于无法进行d射起步。除了1在1挡进2挡的时候出现了一个比较大的顿挫之外,动力的平顺性还算不错,不过在日常驾驶中,这套10AT变速箱是没有任何顿挫的。总的来说,这套动力总成的表现令人满意,而且感觉更偏舒适化调校。
至于100-0km/h刹车测试,则是令人有些意想不到,最好刹车成绩居然是最后一次测试。这种情况只能用当天气温偏低,轮胎温度不理想所致。如果温度理想的话,凯迪拉克CT5的成绩还会更短一些。尽管如此,3556米的成绩也算是一流表现了!此外值得表扬的是,从刹车热衰减来看,CT5控制得相当不错,这个主要看的是刹车系统而不是轮胎。而无论是蓝色制动力输出曲线还是黑色车身稳定曲线,均十分平稳!
看了一下,这款CT5配备的是美国进口的245/45R18米其林PS 4S轮胎,这是米其林民用胎当中的旗舰级运动胎了,而且这个尺寸的PS 4S轮胎目前在国内电商中无货可售,凭借个人经验猜测的话,这一条胎的价格大概在2000元左右。对于一款官方指导价2997万元的车型来说,如此也算是下血本了!
而这套顶级运动轮胎在 *** 控极限测试中的表现也没有让我们失望,凯迪拉克CT5居然跑出了1200G的最大横向过载加速度!看来就运动性而言,凯迪拉克绝非是“样子货”。在AutoLab的测试历史上, *** 控极限能跑过12G的非性能民用轿车只有两款,除了这次的凯迪拉克CT5之外,另一款就是丰田亚洲龙。
引擎振动偏大
热车怠速状态下,凯迪拉克的引擎怠速最大振动幅值为0089mm。这个成绩在豪华品牌中算是比较差的,在这方面,凯迪拉克还需向奥迪、雷克萨斯甚至是讴歌学习。
在方向盘上我们测试到的怠速最大振动幅值为0015mm,别说在豪华品牌阵营中了,哪怕在AutoLab测试过的车型当中,这个成绩也只能算个中游,不过看得出来,工程师在车身减振上已经下了不少功夫了,否则方向盘上的振动不仅仅是0015mm了。如此反过来就能推论,CT5的引擎振动控制的确是硬伤。
静音表现比想象中要好
在关闭娱乐系统、空调以及车窗的前提下,我们选择干燥平直柏油路面,并采用定速巡航来控制车速,测试了凯迪拉克CT5在怠速、40km/h、60km/h、80km/h匀速状态下的车内静音性。由于米其林PS 4S轮胎的强项不是静音,胎噪大得一塌糊涂,再加上之前测试的引擎怠速振动偏大,所以对凯迪拉克的静音测试,我们最开始没有抱太大希望。
在怠速条件下,如我们所料,CT5最低车内噪音为410dBA,这个成绩在非性能的豪华品牌车型当中并不算好。
但是在40km/h、60km/h和80km/h的测试中,CT5的车内最低噪音分别只有509dBA、533dBA以及554dBA,这组成绩在豪华品牌中尽管只是中游表现,但已经大大超出我们的意料了!如果不是米其林PS 4S轮胎拖了后腿,这组成绩还会更低。这说明工程师在CT5对的NVH上还是下了不少功夫的。正所谓成也萧何败也萧何,这套轮胎放在CT5上,就是一把典型的双刃剑。
车内空气甲醛测试
我们测试的这辆CT5出厂时间是2019年9月,测试时间是2020年1月17日,换句话说这是一辆不到半岁的新车。
将测试仪器归零并校正,熄火关窗关门关空调,放入测试仪器,待读数稳定之后记录检测结果如下……
从测试结果来看,CT5的车内环保表现相当不错。目前国内的车内甲醛标准并非是强制标准,简单说就是新车甲醛都超标,比的就是谁更低而已。在AutoLab的测试数据库中,这个成绩相当于85分。车内空气甲醛含量低于每立方米200毫克的新车,其实不多。
本文来源于汽车之家车家号作者,不代表汽车之家的观点立场。
上面的是检测的标准吧,跑题了吧!检测包含以下几点内容!甲醛 是一种无色易溶的刺激性气体。刨花板、密度板、胶合板等人造板材、胶粘剂和墙纸是空气中甲醛的主要来源,释放期长达3~15年。可经呼吸道吸收,甲醛对人体的危害具长期性、潜伏性、隐蔽性的特点。长期吸入甲醛可引发鼻咽癌、喉头癌等严重疾病。
苯 是一种无色、具有特殊芳香气味的气体。胶水、油漆、涂料和黏合剂是空气中苯的主要来源。苯及苯系物被人体吸入后,可出现中枢神经系统麻醉作用;可抑制人体造血功能,使红血球、白血球、血小板减少,再生障碍性贫血患率增高;还可导致女性月经异常,胎儿的先天性缺陷等。
氡 是一种无色、无味、无法察觉的惰性气体。水泥、砖沙、大理石、瓷砖等建筑材料是氡的主要来源,地质断裂带处也会有大量的氡析出。氡及其子体随空气进入人体,或附着于气管粘膜及肺部表面,或溶入体液进入细胞组织,形成体内辐射,诱发肺癌、白血病和呼吸道病变。世界卫生组织研究表明,氡是仅次于吸烟引起肺癌的第二大致癌物质。
氨 是一种无色而有强烈刺激气味的气体。主要来源于混凝土防冻剂等外加剂、防火板中的阻燃剂等。对眼、喉、上呼吸道有强烈的刺激作用,可通过皮肤及呼吸道引起中毒,轻者引发充血、分泌物增多、肺水肿、支气管炎、皮炎,重者可发生喉头水肿、喉痉挛,也可引起呼吸困难、昏迷、休克等,高含量氨甚至可引起反射性呼吸停止。
空气质量监测:甲醛、一氧化碳、二氧化碳、氨、苯、TVOC等有毒有害气体污染。
空气质量检测简介:
空气质量检测,是指对空气质量的好坏进行检测。空气质量的好坏反映了空气中污染物浓度的高低。空气污染是一个复杂的现象,在特定时间和地点空气污染物浓度受到许多因素影响。来自固定和流动污染源的人为污染物排放大小是影响空气质量的最主要因素之一,其中包括车辆、船舶、飞机的尾气、工业企业生产排放、居民生活和取暖、垃圾焚烧等。城市的发展密度、地形地貌和气象等也是影响空气质量的重要因素。
以上就是关于基于stm32的多功能时钟3——MQ135检测空气质量全部的内容,包括:基于stm32的多功能时钟3——MQ135检测空气质量、Lab测试:数据告诉你,凯迪拉克CT5到底运不运动、空气检测一般都检测哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)