接口与程序课程设计

上传人:d****1 文档编号:188302719 上传时间:2023-02-19 格式:DOCX 页数:21 大小:294.37KB
收藏 版权申诉 举报 下载
接口与程序课程设计_第1页
第1页 / 共21页
接口与程序课程设计_第2页
第2页 / 共21页
接口与程序课程设计_第3页
第3页 / 共21页
资源描述:

《接口与程序课程设计》由会员分享,可在线阅读,更多相关《接口与程序课程设计(21页珍藏版)》请在装配图网上搜索。

1、接口与控制课程设计基于Arduino的温湿度测量仪指导教师:纪建伟付立思班级: 14级农业电气化一班组员:刘晓旭徐梓桐杨康佳信息与电气工程学院2016年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第五章总结165。1本次设计进程中遇到的问题及解决方法165

2、。2本次设计的心得体会16摘要本次设计是基于Arduino Uno r3为控制核心,结合dhtll数字温湿 度传感器模块、1602LCD字符型液晶显示器的温湿度测量仪.该系统用于 检测空气中的温湿度并传递到LCD显示器上。其量程温度为050C,量 程湿度为2090%RHO关键词:Arduino温湿度测量LCD第一章课程设计的基本思路本次设计为实现对空气中的温湿度测量,我们计划选用以 Arduino为核心,其他模块为基础,以积木式的方法搭建出整个硬件 系统。为此我们先学习了 Arduino控制板上各引脚的功能及用途,再 学习温湿度传感器和arduino之间信息传递的方式,发现dht11输出 的是

3、数字信号,Arduino可直接通过数字引脚采集传感器输出的温湿 度数据。最后,我们学习LCD各引脚功能,以实现Arduin。采集的温 湿度数据信息的显示.第二章单元模块设计信息2。1面包板面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验 设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去所包版上半部分始构函故个横向插扎内部堵构时现 和另9卜救不横向横向其孰个柄孔互相述通/ 插孔乏间不理通.外观从向的5个插孔-至栖连通 横向的肪礼都苹睦通用于隔肉上下 两部强插孔的凹槽IIIIHIIIIUIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

4、IIIIIIIIIIf | f k i 4 I f i- * f,1! 界,*,俳,1t II*IP IIVVII - i; 了焊接,节省了电路 的组装时间,而且元 件可以重复使用,所 以非常适合电子电 路的组装、调试和训 练。而邑娠中间部分妹抑图面包板的得名可以追溯到真空管电路的年代,当时的电路元器件 大都体积较大,人们通常通过螺丝和钉子将他们固定在一块切面包 用的木板上进行连接,后来电路元器件体积越来越小,但面包板的名 称沿用了下来。面包板就是有母板作为底座,并且电源接入有专用接线柱,甚至 有些能够进行高压实验的还有地线接线柱的面包实验板。这种板子使 用起来比较方便,就是把电源直接接入接线

5、柱,然后单面包板插入元 件进行实验(插元件的过程中要断开电源)遇到多于5个元件或一组 插孔插不下时,就需要用面包板连接线(也叫面包线,见参考资料) 把多组插孔连接起来。2.2杜邦线是美国杜邦公司生产的有特殊效用的缝纫线.电子行业杜邦线可用于实验板的引脚扩展,增加实验项目等。可以非常牢靠地和插针连接,无需焊接,可以快速进行电路试验。2.3 DHT11数字温湿度传感器模块DHT11数字温湿度传感器是一款含有已校准数字信号输出的温 湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术, 确保产品具有极高的可靠性与卓越的长期稳定性,成本低、相对湿度 和温度测量、超快响应、抗干扰能力强、超长的信

6、号传输距离、数字 信号输出、精确校准.传感器包括一个电阻式感湿元件和一个NTC测 温元件,并与一个高性能8位单片机相连接。可用于暖通空调、除湿 器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象 站、家电、湿度调节器、医疗、其他相关湿度检测控制。产品参数:相对湿度分辨率:16Bit重复性:1%RH精度:25C 5%RH互换性:可完全互换响应时间:1/e (63%) 25C 6s 1m/s 空气 6s迟滞:0.3%RH长期稳定性:0。5%RH/yr温度分辨率:16Bit重复性:土0.2C量程范围:25C 2C响应时间:1/e (63%) 10S电气特性供电:DC 3。55。5V供电电流

7、:测量0。3mA待机60 u A采样周期:次大于2秒引脚说明1、VDD 供电3。55。5V DC2、DATA串行数据,单总线 3、NC空脚4、GND接地,电源负极本公司生产的湿敏电阻湿度传感 器器是采用有机高分子材料的一种新 型的湿度敏感元件,具有感湿范围宽, 响应迅速,抗污染能力强,无需加热 清洗及长期使用性能稳定可靠等诸多 特点。本设计中,采用的是dht11数字温湿度传感器模块,可以直插直 用。2.4电位器电位器是具有三个引出端、阻值可按 某种变化规律调节的电阻元件。电位器通 常由电阻体和可移动的电刷组成。当电刷 沿电阻体移动时,在输出端即获得与位移 量成一定关系的电阻值或电压。电位器既可

8、作三端元件使用也可作二端 元件使用。后者可视作一可变电阻器,由 于它在电路中的作用是获得与输入电压(外加电压)成一定关系得输 出电压,因此称之为电位器.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是一款便捷灵活、方便上手 的开源电子原型平台。包含硬件(各种型 号的 Arduino 板)和软

9、件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发.其成员包括 Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、 David Mellis 和 Nicholas Zambetti.它构建于开放原始码simple I/O介面版,并且具有使用类似Java、 C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬 件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境.你只要在IDE中编写程序 代码,将程序上传到Arduino电路板后

10、,程序便会告诉Arduino电路板 要做些什么了.Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达 和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino 的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对 Arduino的编程是利用Arduino编程语言(基于Wiring)和Arduino开发 环境(基于Processing)来实现的。基于Arduino的项目,可以只包 含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们 之间进行通信(比如Flash, Processing, MaxMSP)来实现。2.7色环电阻色环电阻,是在

11、电阻封装上(即电阻表面)涂上一定颜色的色环, 来代表这个电阻的阻值。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)时读取信息,负 跳变时执行指

12、令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极.LCD引脚Arduino引脚编号RS4号引脚EN5号引脚D46号引脚D57号引脚D68号引脚D79号引脚Arduino的2号引脚与DHT11 data引脚相连LCD的3号引脚与电位器相连,起对比度调节的作用LCD的15号引脚可以串联适当大小的电阻来调节其背光亮度第三章设计程序及注释/ Example testing sketch for various DHT humidity/temperature sensors/ Written by ladyada, public domain井 i

13、nclude DHT。h”井 includeLiquidCrystal.h包含头文件#define DHTPIN 2 / what digital pin we re connected to/ Uncomment whatever type youre using!#define DHTTYPE DHT11 / DHT 11const int POT=10;const int TH=11;LiquidCrystal lcd (4, 5, 6,7, 8,9);用接口引脚编号初始化库/自定义温度标识符byte degree 8= B00110,B01001,B01001,B00110,B0000

14、0,B00000,B00000,B00000,;/#define DHTTYPE DHT22 / DHT 22 (AM2302), AM2321/#define DHTTYPE DHT21 / DHT 21 (AM2301)/ Connect pin 1 (on the left) of the sensor to +5V/ NOTE: If using a board with 3。3V logic like an Arduino Due connect pin 1/ to 3。3V instead of 5V!/ Connect pin 2 of the sensor to whateve

15、r your DHTPIN is/ Connect pin 4 (on the right) of the sensor to GROUND/ Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sen sor/ Initialize DHT sensor./ Note that older versions of this library took an optional third paramete r to/ tweak the timings for faster processors。 This param

16、eter is no longerneeded/ as the current DHT reading algorithm adjusts itself to work on faster prQCSoDHT dht (DHTPIN, DHTTYPE);void setup () Serial.begin(9600);Serial.println (DHTxx test!”);dht.begin();/设置10 11号引脚输出5v电压lcdo begin (16, 2);pinMode (POT,OUTPUT);pinMode (TH,OUTPUT);digitalWrite(POT,HIGH

17、);digitalWrite(TH,HIGH);生成自定义字符lcd.createChar (0, degree);/在LCD上输出一条静态消息lcd.setCursor(0,0);lcdo print(” Temp : ” );lcd.setCursor(10, 0);lcd.write (byte) 0);lcd.setCursor (11,0);Icd.print (C);lcdo setCursor(0, 1);lcd.print(Hum :”);Icd.setCursor (10, 1);lcdo print(” %);void loop() / Wait a few seconds

18、 between measurements.delay(2000);/ Reading temperature or humidity takes about 250 milliseconds!/ Sensor readings may also be up to 2 secondsold (its a very slow sensor)int h = dhto readHumidity ();/ Read temperature as Celsius (the default)int t = dhto readTemperature();/ Read temperature as Fahre

19、nheit (isFahrenheit = true)float f = dhto readTemperature (true);/ Check if any reads failed and exit early (to try again) oif (isnan (h) I | isnan (t) | isnan(f) Serialo println(Failed to read from DHT sensor!”);return;/ Compute heat index in Fahrenheit (the default) float hif = puteHeatIndex (f, h

20、);/ Compute heat index in Celsius (isFahreheit = false) float hic = puteHeatIndex (t, h, false); Serialo print(Humidity: );Serial.print (h);Serialo print( %t);Serial.print(” Temperature: ” );Serialoprint(t);Serial.print( C );Serialoprint(f);Serialo print( Ft”);Serialo print (Heat index: ”);Serial.pr

21、int(hic);Serial.print ( C );Serial.print(hif);Serial.println( F);向lcd输出数据lcdo setCursor (8, 0);lcd.print(t);lcdo print (h);第四章设计实物图及成果展示第五章总结5。1本次设计进程中遇到的问题及解决方法在仿真过程中,设计前期我们计划使用仿真软件proteus来进行 硬件搭建前的仿真测试,但是在本设计中我们使用了各种模块进行了 积木式的搭建,用仿真软件反而增大了设计复杂程度.故我们直接选 择用硬件来实现本次设计。在向LCD输出数据时,第一次输出时LCD只有第一行有输出,第 二行处于未工作状态。而且在输出结果时,第二行的结果将程序中规 定的第一行输出值部分覆盖,导致输出信息的混乱状态。原因是在程 序中没有对LCD初始化进行设置。解决方案是void setup()函数中 增加一行代码,使LCD显示16X2个字符,其代码是led。begin5.2本次设计的心得体会通过本次设计,我们初步掌握了 arduino的基本知识和程序的修 改。LCD的引脚设置,自定义字符显示。认识到arduin。的功能强大 和便捷及继续学习的重要性。若有机会,将此设计改进如下:使用XBee 收发器进行无线通信.LCD在不同的温湿度时显示不同的符号,例如: 在25C,湿度为30%时显示太阳的符号。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!