ATmega16与DHT11温度传感器
- 格式:pdf
- 大小:396.08 KB
- 文档页数:7
基于ATmega128的DHT11温湿度传感器的使用DHT11 和DS18B20 一样,都是单总线芯片,同DHT10 不同,它的四根引脚中有一条是空脚,与DS18B20 相似,对时序的要求比较高,不同之处在于写程序的时候数据的采集必须间隔1s 以上,不然采集会失败。
还有,DHT11 的数据口最好要接一个上拉电阻,或者单片机内部上拉也可以。
DHT11 的数据手册网上有,上面有时序操作的详细介绍。
个人建议写这个程序的时候要一边写一边检测(比如写完复位子程序之后就在主函数中调用它一次,看它是否执行成功。
),不然很可能到最后找不到错误出在哪里,本人就是一直写完然后不好使,最后又重写的!闲话不说了,下面帮助大家分析一下DHT11 的时序图(数据手册上有),因为DHT11 对时序的要求很高,所以很可能写完程序不好使。
本人建议:延时子函数最好自己用示波器检测一下,自己算出来的在10us 下误差会很大的。
进入正题:下面我说的话可以参照下面的程序看。
数据手册前面的一些内容自己了解就可以了,先看数据手册上主机复位信号和DHT11 相应信号那部分。
主机先控制总线,拉低至少18ms,然后再拉高20~40us,(这时如果硬件没有问题的话DHT11 会有响应的)所以现在主机释放总线(把DDRXN 寄存器清零),等待DHT11 的响应,如果成功DHT11 会产生40~50us 的低电平,和40~50us 的高电平。
这里可以由程序完成检测。
接下来在一次采集中,把总线一直交给DHT11,它会给主机传送一个40 位的二进制数,前0~7 位是湿度的整数部分,8~15 位是湿度的小数部分;16~23 位是温度的整数部分,24~31 位是温度的小数部分;最后八位是校验位。
这些数据要通过程序进行处理,转换成温湿度的实际值,并由显示部分显示出来。
([标签:内容]。
DHT11数字湿温度传感器介绍1、应用电路连接说明2、DHT11数据结构概述:DHT11是一款湿温度一体化的数字传感器。
该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。
DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。
传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。
DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。
性能指标和特性如下: 工作电压范围:3.5V-5.5V 工作电流:平均0.5mA 湿度测量范围:20-90%RH 温度测量范围:0-50℃ 湿度分辨率:1%RH 8位 温度分辨率:1℃8位 采样周期:1S 单总线结构 与TTL兼容(5V)管脚排列如下:1、应用电路连接说明DHT11数字湿温度传感器连接方法极为简单。
第一脚接电源正,第四脚接电源地端。
数据端为第二脚。
可直接接主机(单片机)的I/O口。
为提高稳定性,建议在数据端和电源正之间接一只4.7K的上拉电阻。
第三脚为空脚,此管脚悬空不用引脚说明:Vcc 正电源Dout 输出NC 空脚GND 地2、DHT11数据结构DHT11数字湿温度传感器采用单总线数据格式。
即,单个数据引脚端口完成输入输出双向传输。
其数据包由5Byte(40Bit)组成。
数据分小数部分和整数部分,一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。
其中校验和数据为前四个字节相加。
传感器数据输出的是未编码的二进制数据。
数据(湿度、温度、整数、小数)之间应该分开处理。
如果,某次从传感器中读取如下5Byte数据:byte4 byte3 byte2 byte1 byte000101101 00000000 00011100 00000000 01001001整数小数整数小数校验和湿度温度校验和由以上数据就可得到湿度和温度的值,计算方法:humi (湿度)= byte4 . byte3=45.0 (%RH)temp (温度)= byte2 . byte1=28.0 ( ℃)jiaoyan(校验)= byte4+ byte3+ byte2+ byte1=73(=humi+temp)(校验正确) 注意:DHT11一次通讯时间最大3ms,主机连续采样间隔建议不小于100ms。
dht11传感器参数DHT11传感器是一种常见的数字温湿度传感器,具有小体积、低功耗、调校简单等特点,在家庭自动化、气象站、舒适度控制等领域广泛应用。
以下是DHT11传感器的相关参数参考:1. 温度测量范围:DHT11传感器的温度测量范围通常在0°C至50°C之间。
这意味着它可以测量通常的室温范围内的温度变化。
2. 温度测量精度:DHT11传感器的温度测量精度一般在±2°C之内。
这个精度对于大多数应用来说已经足够,可以满足一般的温度监测要求。
3. 湿度测量范围:DHT11传感器的湿度测量范围通常在20%RH至90%RH之间。
这个范围可以满足大多数应用中对湿度变化的监测。
4. 湿度测量精度:DHT11传感器的湿度测量精度一般在±5%RH之内。
这个精度对于一般的湿度监测要求已经足够,能够满足大部分应用的需要。
5. 响应时间:DHT11传感器的响应时间通常在2秒至5秒之间。
这个响应时间是指从传感器接收到测量指令开始,到将测量结果输出完成的时间。
6. 供电电压:DHT11传感器的供电电压一般在3V至5.5V之间。
这个范围使得DHT11可以与多种单片机、微控制器以及其他电子设备兼容。
7. 输出信号:DHT11传感器通过单总线数字信号输出温湿度测量结果。
传感器将温湿度数据转换为数字信号,并通过单总线协议进行传输,便于与主控设备通信。
8. 尺寸与连接方式:DHT11传感器的尺寸通常为15.5mm x12mm x 5.5mm,小巧便携。
传感器通过4个引脚与外部设备连接,其中包括VCC供电引脚、GND地引脚、DATA数据引脚和NC引脚。
总结起来,DHT11传感器是一种常见的数字温湿度传感器,具有温度测量范围广、温湿度测量精度高、响应时间快等特点。
其供电电压范围广泛适用于各种电子设备,而且通过单总线协议输出温湿度测量结果,方便与主控设备通信。
因此,DHT11传感器在家庭自动化、气象站、舒适度控制等领域得到了广泛应用。
DHT11温湿度传感器概述 DHT11数字温湿度传感器是⼀款含有已校准数字信号输出的温湿度复合传感器。
它应⽤专⽤的数字模块采集技术和温湿度传感技术,确保产品具有极⾼的可靠性与长期的稳定性。
传感器包括⼀个电阻式感湿元件和⼀个NTC测温元件,并与⼀个8位单⽚机相连接。
因此该产品具有抗⼲扰能⼒强、性价⽐⾼等优点。
硬件连接 DHT11使⽤1-wire总线与MCU进⾏半双⼯通信,当连接线长度短于20⽶时可⽤5K的上拉电阻,⼤于20⽶时需要根据实际情况选择合适的上拉电阻。
通信过程 DATA引脚⽤于MCU与DHT11之间的通讯和同步,采⽤单总线数据格式,⼀次通讯时间4ms左右,数据分⼩数部分和整数部分,⼀次完整的数据传输为40bit,⾼位先出(MSB)。
数据格式:8bit湿度整数数据+8bit湿度⼩数数据+8bit温度整数数据+8bit温度⼩数数据+8bit校验和。
数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度⼩数数据+8bit温度整数数据+8bit温度⼩数数据”所得结果的末8位。
通信的开始 上图为MCU与DH11通信的开始,MCU拉低总线20ms后拉⾼,请求DH11响应,DH11收到信号后将总线拉低以此来响应主机,响应后拉⾼总线开始传输数据,本图来源为DH11的数据⼿册。
需要注意MCUI/O引脚输⼊输出模式的切换,本⼈使⽤的是GPIOG的号引脚与DHT11进⾏通信。
数据的判断 上图中可以看出论时数据0还是数据1,数据的开始总线都是被拉低50us,只是在总线被拉⾼时的时长不⼀样,于是程序便可以在40us 的时候判断引脚的电平,以此来指定当前传输的数据是0是1。
温湿度传感器程序 以下为温湿度传感器初始化函数和获得温湿度数据的程序,初始化相关引脚后调⽤read_ht_data(&data),便可以获得所需数据,注意该函数1s钟只能调⽤⼀次,不然获取不到数据。
还需要保证延迟函数是准确的,参考我之前的系统定时器的相关随笔。
dht11技术参数DHT11技术参数DHT11是一种数字温湿度传感器,广泛应用于各种领域,如气象观测、室内环境监测等。
它具有高精度、快速响应、稳定性强等特点,因此备受青睐。
下面将介绍DHT11的技术参数,以便更好地了解和使用这一传感器。
1. 温度测量范围:DHT11的温度测量范围为0°C至50°C,精度为±2°C。
这意味着在这个范围内,DHT11可以提供较为准确的温度测量结果,适用于大多数常见的温度监测需求。
2. 湿度测量范围:DHT11的湿度测量范围为20%RH至90%RH,精度为±5%RH。
虽然相比于温度测量精度稍低,但在大多数情况下仍能够满足湿度监测的要求。
3. 工作电压:DHT11的工作电压范围为3.3V至5.5V,这使得它可以与各种微控制器或单片机进行连接,提供便利的接口和数据采集。
4. 信号输出:DHT11采用单总线数字信号输出,通过一根数据线即可完成温湿度数据的传输。
这种设计简单而有效,适用于各种应用场景。
5. 响应时间:DHT11的响应时间很快,一般在2秒左右即可完成一次温湿度数据的采集和输出。
这对于需要实时监测的应用非常重要。
6. 尺寸:DHT11体积小巧,尺寸为12mm × 15.5mm × 5.5mm,重量仅约1克。
这使得它可以轻松集成到各种设备中,不会占用太多空间。
7. 长期稳定性:DHT11具有较好的长期稳定性,不易受外界环境影响,保证了持续准确的温湿度监测数据。
总的来说,DHT11作为一款性能优良的数字温湿度传感器,在各种应用场景中均有广泛的用途。
通过了解其技术参数,我们可以更好地选择和使用这一传感器,为我们的项目带来更准确、稳定的温湿度监测数据。
希望以上介绍对您有所帮助,谢谢阅读!。
dht11传感器工作原理
DHT11传感器是一种数字温湿度传感器,采用单总线通信协议,其工作原理如下:
1. 传感器元件:DHT11传感器由一个感温元件(NTC热敏电阻)和一个湿度测量元件(湿度敏感电阻)组成。
感温元件测量环境温度,湿度测量元件测量环境湿度。
2. 信号采集:当传感器供电后,传感器会开始初始化,并且通过数字串行通信协议把信号传输给主控芯片。
在采集数据之前,主控芯片会发送一个起始信号给传感器。
3. 数据传输:起始信号发送后,主控芯片会接收来自传感器的数据。
DHT11传感器一次可以传输40位的数据,其中前5位
为湿度整数位、后5位为湿度小数位、再后5位为温度整数位、再后5位为温度小数位、最后20位为校验位。
4. 数据处理:主控芯片接收到数据后,会对数据进行处理和解析。
主控芯片根据数据位的组合和校验位的校验来判断数据的准确性,并将数据进行转换和显示。
总结:DHT11传感器通过感温元件和湿度测量元件测量环境
的温度和湿度值,并通过单总线通信协议将数据传输给主控芯片,实现了数字温湿度传感功能。
dht11温度传感器原理电路
DHT11温度传感器是一款常用的温湿度传感器,其原理电路包括传感器模块和单片机控制模块两部分。
传感器模块主要由温度传感器和湿度传感器组成,通过传感器感知环境温度和湿度并将信号转为电信号输出。
DHT11传感器包括一个电阻式感湿元件和一个NTC测温元件,用以测量环境湿度和温度。
单片机控制模块则负责接收传感器输出的数据并进行处理,最终将结果显示在显示屏上或者通过无线模块传输到远程设备。
DHT11采用单线制串行接口,只需加适当的上拉电阻,信号传输距离可达20米以上。
传感器上电后,要等待1秒以越过不稳定状态,在此期间无需发送任何指令。
在DHT11的供电电压方面,其范围为3-5.5V。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
DATA引脚并联一个5K以上的上拉电阻,增强信号的抗干扰能力。
DHT11与单片机之间的数据传输通过DATA信号管脚进行,DATA信号管脚引入任一没有其余传感器占用的GPIO管脚即可。
此外,DHT11还具有一定的扩展性,可以通过加入其他传感器模块,实现多参数数据采集和监控;或者通过搭配智能控制系统,实现对温度的智能控制和调节。
总之,DHT11温度传感器的原理电路主要包括传感器模块和单片机控制模块两部分,通过传感器感知环境温度和湿度,并将数据传输到单片机进行处理和显示。
同时,DHT11还具有一定的扩展性,可以与其他传感器或控制系统配合使用,实现更多功能。
单总线传感器DHT11在温温度测控中的应用引言随着科技的不断发展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。
因此,温度、湿度传感器用途越来越广泛。
新一代的数字传感器不再需要外置的A/D转换模块,并具有标准接口,使用方便,得到了越来越多的应用。
DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。
1 单总线通信简介目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。
其中I2C总线以同步串行两线方式进行通信(1条时钟线,1条数据线),SPI总线则以同步串行三线方式进行通信(1条时钟线,1条数据输入线,1条数据输出线),而SCI总线是以异步方式进行通信的(1条数据输入线,1条数据输出线)。
这些总线至少需要两条或两条以上的信号线。
近年来,美国的达拉斯半导体公司(Dallas Semiconductor)推出了一项特有的单总线(1-wire Bus)技术。
该技术与上述总线不同。
它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单、硬件开销少、成本低、便于总线扩展和维护等优点。
单总线适用于单主机系统,能够控制一个或多个从机设备。
主机可以是微控制器,从机是单总线器件,它们之间的数据交换只通过1条信号线。
当只有1个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按多节点系统操作。
2 DHT11的主要特点及引脚说明广州奥松电子有限公司新近推出的DHT11数字温湿度传感器,是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,具有很高的可靠性与稳定性。
DHT11传感器包括1个电阻式感湿元件和1个NTC测温元件,并与1个高性能8位单片机相连接。
单线制串行接口,使系统连接可以更简洁。
温湿度传感器DHT11介绍温湿度传感器DHT11简介DHT11数字温湿度传感器是一种出厂时经过校准的数字信号输出的温湿度复合型传感器。
DHT11数字温湿度传感器应用温湿度传感技术和数字采集技术,确保其具有极高的可靠性和卓越的长期稳定性。
DHT11数字温湿度传感器内置一个电阻式感湿元件和一个NTC测温元件,并与一个单片机相连接(DHT11数字温湿度传感器内部)。
每个DHT11数字温湿度传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式存在传感器中,传感器内部在检测信号的处理过程中要调用这些校准系数。
DHT11数字温湿度传感器采用单线制串行接口,使系统集成变得简易快捷。
DHT11数字温湿度传感器具有品质卓越、超快响应、抗干扰能力强、性价比极高、超小的体积、极低的功耗的优点,使其成为在测温、测湿应用;在苛刻应用场合的最佳选择。
产品为4针单排引脚封装,连接方便。
DHT11数字温湿度传感器实物图温湿度传感器DHT11应用领域温湿度传感器DHT11通常应用在1、应用在暖通空调中。
2、应用在测试及检测设备中。
3、应用在汽车数据记录器中。
4、应用在各种消费品中。
5、应用在自动控制设备中。
6、应用在气象站中。
7、应用在家用电器中。
8、应用在湿度调节器中。
9、应用在医疗设备中。
10、应用在除湿器中。
等场合。
温湿度传感器DHT11特性1、可以测量湿度和温度。
2、数字输出,输出是通过校准的。
3、具有卓越的长期稳定性。
4、应用时无需额外部件。
5、超长的信号传输距离(连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻)。
6、温湿度传感器DHT11在应用时具有超低能耗的优点。
7、温湿度传感器DHT11是4引脚安装。
温湿度传感器DHT11封装尺寸与管脚信息温湿度传感器DHT11典型应用电路温湿度传感器DHT11串行接口(单线双向)DATA 用于微处理器(温湿度传感器DHT11外)与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,操作流程如下:1、一次完整的数据传输为40位(BIT),高位先出。
atmega1280上的dht11温湿度传感器从机器人基地买了温湿度传感器,但是通过他们的测试程序始终无法正常通过,完全得不到温度和湿度的数据。
和客服研究了半天也没得个结果。
后来大家都下班了,客服让我到国外的网上看看有没有相关资料,我就跑到arduino的官网论坛逛了下。
果然还被我搜索到了一篇相关的帖子。
这里也感谢这位客服能这么耐心一直帮我,呵呵从帖子上提供的链接我找到了用于1280的脚本,复制到我的编译器里,终于通过了,能得到数据了。
好东西难找,为了新入手的童鞋能即时解决类似问题,把代码直接拷贝过来:#define dht_dpin 14byte bGlobalErr;byte dht_dat[5];void setup(){InitDHT();Serial.begin(9600);delay(300);Serial.println("Humidity and temperature\n\n");delay(700);}void loop(){ReadDHT();switch (bGlobalErr){case 0:Serial.print("Current humdity = ");Serial.print(dht_dat[0], DEC);Serial.print(".");Serial.print(dht_dat[1], DEC);Serial.print("% ");Serial.print("temperature = ");Serial.print(dht_dat[2], DEC);Serial.print(".");Serial.print(dht_dat[3], DEC);Serial.println("C ");break;case 1:Serial.println("Error 1: DHT start condition 1 not met.");break;case 2:Serial.println("Error 2: DHT start condition 2 not met.");break;case 3:Serial.println("Error 3: DHT checksum error.");break;default:Serial.println("Error: Unrecognized code encountered.");break;}delay(800);}void InitDHT(){pinMode(dht_dpin,OUTPUT);digitalWrite(dht_dpin,HIGH);}void ReadDHT(){bGlobalErr=0;byte dht_in;byte i;digitalWrite(dht_dpin,LOW);delay(20);digitalWrite(dht_dpin,HIGH);delayMicroseconds(40);pinMode(dht_dpin,INPUT);//delayMicroseconds(40);dht_in=digitalRead(dht_dpin);if(dht_in){bGlobalErr=1;return;}delayMicroseconds(80);dht_in=digitalRead(dht_dpin);if(!dht_in){bGlobalErr=2;return;}delayMicroseconds(80);for (i=0; i<5; i++)dht_dat[i] = read_dht_dat();pinMode(dht_dpin,OUTPUT);digitalWrite(dht_dpin,HIGH);byte dht_check_sum =dht_dat[0]+dht_dat[1]+dht_dat[2]+dht_dat[3]; if(dht_dat[4]!= dht_check_sum){bGlobalErr=3;}};byte read_dht_dat(){byte i = 0;byte result=0;for(i=0; i< 8; i++){while(digitalRead(dht_dpin)==LOW);delayMicroseconds(30);if (digitalRead(dht_dpin)==HIGH)result |=(1<<(7-i));while (digitalRead(dht_dpin)==HIGH);}return result;}把传感器的数据口接在arduino的数字IO口14号脚上,编译后就能使用了,但是似乎无法得到小数,希望有能力的人检查下代码,看看是否有什么地方需要修改arduino与传感器这几天一口气解决了多个传感器与arduino的连接于访问。
基于Atmega16L多功能室内环境监测仪的设计简毅,任海洋,熊金重庆大学机械工程学院,重庆(400044)E-mail:renseacqu@摘要:为了让业主及了解室内空气污染状况和室内安全情况,设计了以Atmega16L单片机为核心,结合气体传感器阵列,开发出多功能、低功耗、智能化的室内环境监测仪器,实现对室内环境的温度、湿度、CO、CO2、HC、甲醛的监测和显示,当CO、CO2、HC、甲醛浓度超过限定值启动声光报警。
主要介绍了多功能气体监测仪的硬件设计和软件设计。
关键词:Atmega16L;室内环境;监测与报警中图分类号: TH831.引言CO和CO2是造成室内空气质量下降的主要成分,长时间接触低浓度的CO会造成慢性中毒,CO2虽然是无毒气体,但是CO2浓度过高会导致头昏,耳鸣等症状;甲醛对眼、喉、上呼吸道和皮肤均可产生刺激作用,过量的甲醛气体将导致各种疾病甚至癌症。
室内空气污染严重影响人们的生活质量,导致与室内空气污染有直接关系的各种疾病的出现[1]。
通过本装置科学的检测可以使业主了解装饰后的环境是否达到环保要求,及时了解居住环境的情况,有效地对不合格的空气质量进行治理和整改;同时本装置也可以对室内安全,温湿度进行监测。
本仪器主要用于室内环境中温湿度、CO、CO2、HC、甲醛的监测和显示,并且当气体浓度超限时报警。
系统主要功能如下:1)参数设置:可设置气体浓度超标报警的限值;2)数据采集:准确监测周围环境中CO、CO2、HC、甲醛的含量并存储;3)显示数据:LCD 显示数据;4)超限报警:通过声光对CO、CO2、HC、甲醛含量超限报警。
2.系统硬件设计本系统硬件总体结构如图1所示,采用以单片机Atmega16L为控制核心、该芯片内嵌16K字节的系统内可编程FLASH,512字节的EEPROM和1K字节的片内SRAM;32个可编程I/O口;具有2.7-5.5V宽的工作电压[2]。
由甲醛传感器、气体传感器阵列、温湿度传感器、输入输出、数据存储和报警等功能模块构成。
图1 总体结构示意图2.1系统电源电路设计本系统由220V交流电或锂离子电池经过一定处理为Atmega16L控制器、温湿度传感器DHT11、运算放大器LT1077、模数转换芯片AD7689、模数转换驱动芯片ADA484和红外光源IRL715提供稳定的3.3V电压。
220V交供电工作过程:220V交流电压经过整流电路、滤波电路、稳压后得到5V电压,然后经过D2送到ADP2503稳压输出3.3V直流电压。
锂电供电工作过程:锂电池电压通过D3送到ADP2503升压或降压为3.3V输出。
其原理图如图2所示:图2 电源电路原理图2.2温湿度模块设计本仪器中温湿度传感器采用DHT11, Atmega16L与DHT11之间采用单总线(1-wire)进行通讯,其与Atmega16L接口如图3所示。
数据传输格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和,一次完整的数据通讯约4ms。
图3 温湿度模块图4 DHT11与Atmega16L通讯过程通讯过程如图4所示,总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。
DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。
CO、CO2和HC测量模块该测量模块采用的检测技术是红外传感器的差分吸收检测技术。
该技术的工作原理是:光源发出的光束被分成两类信息,一类是光线被待测气体吸收后的信息,称信号信息;另一类是未被待测气体吸收的信息,称参考信息。
光源的不稳定以及光电器件的时漂、温漂对两类信息的影响相同,故信号信息与参考信息之比是气体浓度的函数,且结果比较精确。
本论文中采用的是双波长差分检测法,该技术的空间双光束结构原理如图5所示。
IRL715红外光源发出的红外光穿过CO、CO2和HC气体后到达TPS4339四通道热电堆红外探测器,将检测得到的光信号转换成可以检测的电压信号。
图5 差分检测法原理本文设计的具有四通道探测器的红外气体分析的气室如图6所示,测量气室光路选择了适合CO2、CO和HC吸收的采样滤光片,参考通道采用了其他气体不吸收或者弱吸收的4.0µm波长的滤光片。
红外传感器对光强的变化是敏感的,而对光的绝对强度不敏感,在工作时,利用单片机产生脉冲信号来进行调制,在设计中采用在3.3V DC供电,在 1s高电平+5s低电平的脉冲模式下工作,这样做一方面使光源调制深度加强,另一方面减小仪器功耗并延长光源的使用寿命,最重要的是在此工作模式下,传感器、放大器和其他元件的寄生热减小,可以极大提高系统的信噪比和稳定性。
图6 红外气体分析气室红外探测器检测到的信号是十分微弱的,这样的信号是不能直接被利用的,这就必须在进行处理之前对微弱信号进行放大。
信号放大电路的目的就是把红外探测器输出的信号转换成一定幅度的电压,在这个转换过程中要求电压和电流严格遵守线性关系,而且噪声要低。
该检测模块的前置放大电路采用LT1077放大,该放大器是微功耗、单电源供电、精密放大器,信号放大电路。
本论文设计的气体检测模块综合考虑转换精度等因素的要求,选择了AD7689模/数转换芯片。
AD7689是一种电荷再分配式逐次逼近型16位的模数转换器(ADC),可输入8路模拟开关,单电源供电,可配置为单端输入。
AD7689与单片机的电路连接如图7所示,其中ADA4841是AD7689的驱动芯片。
图7 AD7689与单片机电路连接2.4甲醛测量模块设计电化学的甲醛传感器能满足一般检测,而且具有体积小、监测快、价格低廉等优点。
本设计采用的传感器模块是瑞士MEMBRAPOR公司的电化学传感器CH20/S-10。
采集的信号经放大后送给16位精度的AD7689,将采集的模拟信号转换为数字信号,然后AD7689通过SPI串行通信接口将数据送入Atmega16L运算和处理,得到环境中甲醛的浓度值[3]。
2.5声光报警模块单片机对检测得到的气体浓度值超过分析仪的设定值时,自动发出光信号和声音报警,及时提醒用户采取有效处理措施,声光报警电路如图8所示。
图8 声光报警电路当分析仪采集到的气体浓度正常时,绿色指示灯工作。
其工作状态由PA0控制。
当气体浓度超过设定值时,红灯亮、蜂鸣器报警;当气体浓度恢复到设定值下,红色报警灯灭,蜂鸣器关闭。
报警灯和蜂鸣器由PA1和PA2控制。
3系统软件设计在硬件电路的设计基础上开发相应的软件来共同实现监测仪的功能。
在系统软件设计中采用模块化设计思想,采用C语言编写,在AVRSTUDIO[4][5][6]编译环境中进行。
这给程序的修改和调试带来很大的方便。
图9 系统主程序结构框图3.1主程序系统上电后,进行初始化工作,然后循环进行数据采集并处理,在浓度超限时给与声光警告,有键动作时用LCD显示相应的浓度或设置参数。
主程序是核心,系统主程序结构框图如图9所示。
3.2 数据处理子程序本设计中主要的数据处理对象为气体传感器阵列输出的信号,本节主要介绍对于CO,CO2和HC浓度的测量。
需要对传感器信号进行非线性、温度进行修正,从数学上看,浓度可以看作一个多元函数,即:C=F(x,t1,t2,…)当不考虑环境条件时:C=F(x),即输出浓度为吸光度的一元函数,但由于环境的影响,总会存在一些非线性,为了提高测量精度,必须进行补偿和修正。
而在本传感器中温度对浓度的影响最大,必须加以考虑,故:C=F(x,t)其中:C为气体浓度值;x为气体吸光度;t环境因素:温度。
为了提高仪器检测的精度,我们对吸光度x的值采用中位值平均滤波法[7](又称防脉冲干扰平均滤波法)。
算法的具体实现过程是:连续采样N个数据,去掉一个最大值和一个最小值,然后计算N-2个数据的算术平均值,N值的选取:3~14,本设计中N取10。
中位值平均滤波法对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差。
温度t的值可以直接从温湿度传感器DHT11中直接读出。
传感器测量信号和参考信号输出是模拟电压,需要分别采集测量信号和参考信号的峰-峰值,在光源发光前,读取传感器的电压信号U0,CO,U0,CO2,U0,HC和U0,ref;在接通1秒后,电源被关掉前,U peak,CO,U peak,CO2,U peak,HC,和U peak,ref。
由上面所得的待测气体的电压信号可以计算出吸光度:X CO = ( U peak,CO-U0,CO )/ (U peak,ref-U0,ref)X CO2 = (U peak,CO2-U0,CO2 ) /(U peak,ref-U0,ref)X HC = (U peak,HC-U0,HC )/(U peak,ref-U0,ref)则C=F(x,t)为已知的二元函数,在EEPROM中开辟一块数据区,存贮不同温度t,不同吸光度x下相对应的浓度C的二维表格,记为{F t1x1,F t1x2,F t1x3,F t1x4,F t1x5,F t1x6,F t1x7,F t1x8,F t2x1,F t2x2,F t2x3,F t2x4,F t2x5,F t2x6,F t2x7,F t2x8,F t3x1,F t3x2,F t3x3,F t3x4,F t3x5,F t3x6,F t3x7,F t3x8,F t4x1,F t4x2,F t4x3,F t4x4,F t4x5,F t4x6,F t4x7,F t4x8,};当获得一个当前温度数值t,当t落在温度区间[t n,t n+1]时,按先不考虑吸光度x对t进行插值,可以计算出当前温度下不同吸光度的浓度数据,F tx1,F tx2,F tx3,F tx4,F tx5,F tx6,F tx7,F tx8。
当计算得到当前温度下的吸光度数据x,落在当前温度下吸光度区间[x n,x n+1]时,当前浓度值C必然落在浓度区间[F txn,F txn+1]中,利用插值的方法,就可以计算出当前的浓度值C。
4结束语本仪器适合室内环境监测,特别是家庭使用的便携式仪器。
该仪器以Atmega16L为核心控制单元,外设功能模块丰富,集检测与安全报警为一体,此外还可以对Atmega16L进行扩展,如通过RS232与计算机相连。
随着人们生活品质的提高,这种环境监测仪器将会有广泛的应用前景。
参考文献[1]HJ/T 167-2004,室内环境空气质量监测技术规范[S].[2]ATMEL Datasheet. AVR Atmega16, Atmega16L Datasheet. Atmel Corporation,2004[3]张亚勇,安源等.一种新型甲醛快速监测仪的设计与开发[J]. 中国人造板, 2006,2.[4]吴双力,崔剑,王伯岭. AVR-GCC与AVR单片机C语言开发[M]. 北京:北京航空航天大学出版社. 2004,10.[5]李泓. AVR单片机入门与实践[M]. 北京:北京航空航天大学出版社. 2008,04.[6]周兴华 . AVR单片机C语言高级编程设计[M]. 北京:中国电力出版社. 2008.[7]赵毅,牟同升,沈小丽. 单片机系统中数学滤波的算法[J].电测与仪表,2001,38(426):5-8.Design of the multifunctional indoor environment monitorbased on Atmega 16LJian Yi, Ren Haiyang, Xiong JinCollege of mechanical engineering, Chongqing university, Chongqing (400044)AbstractIn order to acquire the indoor air environment, this paper give a way to design an indoor environment monitor, which is based on Atmega16L and gas sensor array. It can measure the indoor temperature and humidity and the concentration of CO, CO2, CH and HCHO, which also can be displayed on LCD. It will give alarm if the concentration of CO, CO2, CH and HCHO has reached limit value. The paper elaborates the software and hardware of the indoor environment monitor.Key words:Atmega16L;the indoor environmental;monitor and alarm作者简介: 任海洋,男,1985年生,工学硕士,主要研究方向是机电一体化技术。