1、接口与控制课程设计基于Arduino温湿度测量仪 指引教师: 纪建伟 付立思 班级: 14级农业电气化一班 成员: 刘晓旭 徐梓桐 杨康佳信息与电气工程学院12月 目录摘要1第一章 课程设计基本思路2第二章 单元模块设计信息22.1面包板22.2杜邦线32.3 DHT11数字温湿度传感器模块42.4电位器62.5 1602lcd字符型液晶显示屏62.6 Arduino Uno r3 微解决器72.7色环电阻82.8 9v电源82.9 LCD引脚接线1602采用原则16脚接口,其中:8第三章 设计程序及注释10第四章 设计实物图及成果展示15第五章 总结16 5.1本次设计进程中遇到问题及解决办
2、法16 5.2本次设计心得体会16摘要 本次设计是基于Arduino Uno r3为控制核心,结合dht11数字温湿度传感器模块、1602LCD字符型液晶显示屏温湿度测量仪。该系统用于检测空气中温湿度并传递到LCD显示屏上。其量程温度为050,量程湿度为20-90%RH。核心词:Arduino 温湿度测量 LCD第一章 课程设计基本思路本次设计为实现对空气中温湿度测量,咱们筹划选用以Arduino为核心,其她模块为基本,以积木式办法搭建出整个硬件系统。为此咱们先学习了Arduino控制板上各引脚功能及用途,再学习温湿度传感器和arduino之间信息传递方式,发现dht11输出是数字信号,Ard
3、uino可直接通过数字引脚采集传感器输出温湿度数据。最后,咱们学习LCD各引脚功能,以实现Arduino采集温湿度数据信息显示。第二章 单元模块设计信息 2.1面包板 面包板是由于板子上有诸多小插孔,专为电子电路无焊接实验设计制造。由于各种电子元器件可依照需要随意插入或拔出,免除了焊接,节约了电路组装时间,并且元件可以重复使用,因此非常适合电子电路组装、调试和训练。 面包板得名可以追溯到真空管电路年代,当时电路元器件大都体积较大, 人们普通通过螺丝和钉子将她们固定在一块切面包用木板上进行连接,日后电路元器件体积越来越小,但面包板名称沿用了下来。面包板就是有母板作为底座,并且电源接入有专用接线柱
4、,甚至有些可以进行高压实验尚有地线接线柱面包实验板。这种板子使用起来比较以便,就是把电源直接接入接线柱,然后单面包板插入元件进行实验(插元件过程中要断开电源)遇到多于5个元件或一组插孔插不下时,就需要用面包板连接线(也叫面包线,见参照资料)把多组插孔连接起来。2.2杜邦线 是美国杜邦公司生产有特殊效用缝纫线。 电子行业杜邦线可用于实验板引脚扩展,增长实验项目等。可以非常牢固地和插针连接,无需焊接,可以迅速进行电路实验。 2.3 DHT11数字温湿度传感器模块DHT11数字温湿度传感器是一款具有已校准数字信号输出温湿度复合传感器。它应用专用数字模块采集技术和温湿度传感技术,保证产品具备极高可靠性
5、与卓越长期稳定性,成本低、相对湿度和温度测量、超快响应、抗干扰能力强、超长信号传播距离、数字信号输出、精准校准。传感器涉及一种电阻式感湿元件和一种NTC 测温元件,并与一种高性能8位单片机相连接。可用于暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其她有关湿度检测控制。产品参数: 相对湿度辨别率:16Bit 重 复 性:1%RH 精 度:25 5%RH 互 换 性:可完全互换 响应时间:1/e(63%)25 6s 1m/s空气 6s 迟 滞:0.3%RH 长期稳定性:0.5%RH/yr 温度辨别率:16Bit 重 复 性:0.2 量程范畴
6、:25 2 响应时间:1/e(63%) 10S 电气特性供电:DC 3.55.5V 供电电流:测量0.3mA 待机 60A 采样周期:次 不不大于2秒 引脚阐明 1、VDD 供电3.55.5V DC 2、DATA 串行数据,单总线 3、NC 空脚 4、GND 接地,电源负极 我司生产湿敏电阻湿度传感器器是采用有机高分子材料一种新型湿度敏感元件,具备感湿范畴宽,响应迅速,抗污染能力强,无需加热清洗及长期使用性能稳定可靠等诸多特点。 本设计中,采用是dht11数字温湿度传感器模块,可以直插直用。 2.4电位器电位器是具备三个引出端、阻值可按某种变化规律调节电阻元件。电位器普通由电阻体和可移动电刷构
7、成。当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系电阻值或电压。电位器既可作三端元件使用也可作二端元件使用。后者可视作一可变电阻器,由于它在电路中作用是获得与输入电压(外加电压)成一定关系得输出电压,因而称之为电位器。2.5 1602lcd字符型液晶显示屏1602是字符型液晶,它是16*2显示。每个字符由5乘7点阵构成。1602字符型LCD普通有14条引脚线或16条引脚线LCD,多余来2条线是背光电源线。引脚阐明:VCC(15脚)和地线GND(16脚),其控制原理与14脚LCD完全同样。 2.6 Arduino Uno r3 微解决器 Arduino是一款便捷灵活、以便上手开源电子原型
8、平台。包括硬件(各种型号Arduino板)和软件(ArduinoIDE)。由一种欧洲开发团队于冬季开发。其成员涉及MassimoBanzi、DavidCuartielles、TomIgoe、GianlucaMartino、DavidMellis和NicholasZambetti。 它构建于开放原始码simpleI/O介面版,并且具备使用类似Java、C语言Processing/Wiring开发环境。重要包括两个重要某些:硬件某些是可以用来做电路连接Arduino电路板;此外一种则是ArduinoIDE,你计算机中程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程
9、序便会告诉Arduino电路板要做些什么了。Arduino能通过各种各样传感器来感知环境,通过控制灯光、马达和其她装置来反馈、影响环境。板子上微控制器可以通过Arduino编程语言来编写程序,编译成二进制文献,烧录进微控制器。对Arduino编程是运用Arduino编程语言(基于Wiring)和Arduino开发环境(基于Processing)来实现。基于Arduino项目,可以只包括Arduino,也可以包括Arduino和其她某些在PC上运营软件,她们之间进行通信(例如Flash,Processing,MaxMSP)来实现。 2.7色环电阻色环电阻,是在电阻封装上(即电阻表面)涂上一定颜色
10、色环,来代表这个电阻阻值。2.8 9v电源2.9 LCD引脚接线1602采用原则16脚接口,其中:第1脚:VSS为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示屏对比度调节端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一种10K电位器调节对比度)。第4脚:RS为寄存器选取,高电平1时选取数据寄存器、低电平0时选取指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚
11、:空脚或背灯电源。15脚背光正极,16脚背光负极。LCD引脚Arduino引脚编号RS4号引脚EN5号引脚D46号引脚D57号引脚D68号引脚D79号引脚Arduino2号引脚与DHT11 data引脚相连LCD3号引脚与电位器相连,起对比度调节作用LCD15号引脚可以串联恰当大小电阻来调节其背光亮度 第三章 设计程序及注释/ExampletestingsketchforvariousDHThumidity/temperaturesensors/Writtenbyladyada,publicdomain#includeDHT.h#include/包括头文献#defineDHTPIN2/what
12、digitalpinwereconnectedto/Uncommentwhatevertypeyoureusing!#defineDHTTYPEDHT11/DHT11constintPOT=10;constintTH=11;LiquidCrystallcd(4,5,6,7,8,9);/用接口引脚编号初始化库/自定义温度标记符bytedegree8=B00110,B01001,B01001,B00110,B00000,B00000,B00000,B00000,;/#defineDHTTYPEDHT22/DHT22(AM2302),AM2321/#defineDHTTYPEDHT21/DHT21(
13、AM2301)/Connectpin1(ontheleft)ofthesensorto+5V/NOTE:Ifusingaboardwith3.3VlogiclikeanArduinoDueconnectpin1/to3.3Vinsteadof5V!/Connectpin2ofthesensortowhateveryourDHTPINis/Connectpin4(ontheright)ofthesensortoGROUND/Connecta10Kresistorfrompin2(data)topin1(power)ofthesensor/InitializeDHTsensor./Notethat
14、olderversionsofthislibrarytookanoptionalthirdparameterto/tweakthetimingsforfasterprocessors.Thisparameterisnolongerneeded/asthecurrentDHTreadingalgorithmadjustsitselftoworkonfasterprocs.DHTdht(DHTPIN,DHTTYPE);voidsetup()Serial.begin(9600);Serial.println(DHTxxtest!);dht.begin();/设立10 11号引脚输出5v电压lcd.b
15、egin(16,2);pinMode(POT,OUTPUT);pinMode(TH,OUTPUT);digitalWrite(POT,HIGH);digitalWrite(TH,HIGH);/生成自定义字符lcd.createChar(0,degree);/在LCD上输出一条静态消息lcd.setCursor(0,0);lcd.print(Temp:);lcd.setCursor(10,0);lcd.write(byte)0);lcd.setCursor(11,0);lcd.print(C);lcd.setCursor(0,1);lcd.print(Hum:);lcd.setCursor(10
16、,1);lcd.print(%);voidloop()/Waitafewsecondsbetweenmeasurements.delay();/Readingtemperatureorhumiditytakesabout250milliseconds!/Sensorreadingsmayalsobeupto2secondsold(itsaveryslowsensor)inth=dht.readHumidity();/ReadtemperatureasCelsius(thedefault)intt=dht.readTemperature();/ReadtemperatureasFahrenhei
17、t(isFahrenheit=true)floatf=dht.readTemperature(true);/Checkifanyreadsfailedandexitearly(totryagain).if(isnan(h)|isnan(t)|isnan(f)Serial.println(FailedtoreadfromDHTsensor!);return;/ComputeheatindexinFahrenheit(thedefault)floathif=puteHeatIndex(f,h);/ComputeheatindexinCelsius(isFahreheit=false)floathi
18、c=puteHeatIndex(t,h,false);Serial.print(Humidity:);Serial.print(h);Serial.print(%t);Serial.print(Temperature:);Serial.print(t);Serial.print(C);Serial.print(f);Serial.print(Ft);Serial.print(Heatindex:);Serial.print(hic);Serial.print(C);Serial.print(hif); Serial.println( F); /向lcd输出数据 lcd.setCursor(8,
19、0); lcd.print(t); lcd.setCursor(8,1); lcd.print(h);第四章 设计实物图及成果展示第五章 总结 5.1本次设计进程中遇到问题及解决办法 在仿真过程中,设计前期咱们筹划使用仿真软件proteus来进行硬件搭建前仿真测试,但是在本设计中咱们使用了各种模块进行了积木式搭建,用仿真软件反而增大了设计复杂限度。故咱们直接选取用硬件来实现本次设计。 在向LCD输出数据时,第一次输出时LCD只有第一行有输出,第二行处在未工作状态。并且在输出成果时,第二行成果将程序中规定第一行输出值某些覆盖,导致输出信息混乱状态。因素是在程序中没有对LCD初始化进行设立。解决方案是void setup()函数中增长一行代码,使LCD显示162个字符,其代码是lcd.begin(16,2);5.2本次设计心得体会 通过本次设计,咱们初步掌握了arduino基本知识和程序修改。LCD引脚设立,自定义字符显示。结识到arduino功能强大和便捷及继续学习重要性。若有机会,将此设计改进如下:使用XBee收发器进行无线通信。LCD在不同温湿度时显示不同符号,例如:在25,湿度为30%时显示太阳符号。