TA的每日心情 | 怒 2023-7-25 22:49 |
---|
签到天数: 385 天 连续签到: 1 天 [LV.9]以坛为家II
|
1、电化学甲醛模组 ZE08-CH2O介绍
ZE 08 -CH 2 O型电化学甲醛模组是一个通用型、小型化模组。利用电化学原理对空气中存在的CH 2 O进行探测,具有良好的选择性,稳定性。内置温度传感器,可进行温度补偿;同时具有数字输出与模拟电压输出,方便使用。ZE 08 -CH 2 O是将成熟的电化学检测技术与精良的电路设计紧密结合,设计制造出的通用型气体模组。
传感器特点 1.高灵敏度、高分辨率、低功耗、使用寿命长
2.提供UART、模拟电压信号、PWM波形等多种输出方式
3.高稳定性、优秀的抗干扰能力、温度补偿、卓越的线性输出
2、通讯及管脚说明
3、接线
ZE08-CH20模块会每隔一秒钟通过Pin6(UART_TX)向外传送一次数据,所以我们使用小红板的USART2接口来接收数据。PA3接传感器 Pin6,PA2接传感器的Pin5。在这里还有一个问题,因为小红板上的USART2使用PD5和PD6,本来我是想使用USART2的Remap到 PD5和PD6上去,但是测试后不起作用。不知道是我程序有问题还是这个芯片的BUG,有待求证。
4、驱动代码:
ch2o.h
/** **************************************************************************************** * * @file ch2o.h * * @brief ch2o甲醛传感器操作模块头文件 * * Copyright (C) sunsjw 2015 * * $Rev: 1.0 $ * **************************************************************************************** */#ifndef __CH2O_H#define __CH2O_H #ifdef __cplusplus extern "C" {#endif #include "gd32f20x.h"void CH2O_Init(void);#ifdef __cplusplus}#endif#endifch2o.c
/** **************************************************************************************** * * @file ch2o.c * * @brief ch2o甲醛传感器操作模块头 * * Copyright (C) sunsjw 2015 * * $Rev: 1.0 $ * **************************************************************************************** */ #include "ch2o.h" /** * @brief h2o甲醛传感器初始化 * @param[in] None * \retval None */void CH2O_Init(){ GPIO_InitPara gpio_stru; //Config usart2 RX gpio_stru.GPIO_Mode = GPIO_MODE_IN_FLOATING; gpio_stru.GPIO_Pin = GPIO_PIN_3; gpio_stru.GPIO_Speed = GPIO_SPEED_10MHZ; GPIO_Init(GPIOA,&gpio_stru); //Config usart2 TX gpio_stru.GPIO_Mode = GPIO_MODE_AF_PP; gpio_stru.GPIO_Pin = GPIO_PIN_2; gpio_stru.GPIO_Speed = GPIO_SPEED_10MHZ; GPIO_Init(GPIOA,&gpio_stru);}主程序读ch2o代码:
void ShowCH2O(void){ uint8_t rx; rx = 0x00; for(int i=0;i<9;i++) showBuffer = 0; // Call received API while(USART_GetBitState(USART2,USART_FLAG_RBNE) != SET); rx = USART_DataReceive(USART2); if(rx == 0xFF) { showBuffer[0] = rx; for(int i=1;i<9;i++) { // Call received API while(USART_GetBitState(USART2,USART_FLAG_RBNE) != SET); rx = USART_DataReceive(USART2); showBuffer = rx; } } /*国家标准室内0.08mg/m3 = 833 * 0.08 = 66.64 ppb。*/ int pm25Value = showBuffer[4]*256 + showBuffer[5]; float result = pm25Value / 66.64 * 0.08; /* int v1 = (int)result; int v2 = (int)((result - v1)*1000); PRINTF("CH2O: %d.d(mg/m3)\r\n",v1,v2); */ sprintf((char*)showBuffer,":%1.3f mg/",result); OLED_ShowCHinese(0,0,4);//显示汉字甲 OLED_ShowCHinese(16,0,5);//显示汉字醛 OLED_ShowString(32,0,showBuffer); OLED_ShowCHinese(112,0,10);//显示m³ }USART配置代码:
void USART_config(void){ USART_InitPara usart_stru; usart_stru.USART_BRR = 9600; usart_stru.USART_HardwareFlowControl = USART_HARDWAREFLOWCONTROL_NONE; usart_stru.USART_Parity = USART_PARITY_RESET; usart_stru.USART_STBits = USART_STBITS_1; usart_stru.USART_RxorTx = USART_RXORTX_RX| USART_RXORTX_TX; usart_stru.USART_WL = USART_WL_8B; USART_Init(USART2,&usart_stru); USART_Enable(USART2,ENABLE);}实验效果:
热门推荐:
轻轻松松入门GD32F207开发板 |
|