接口与程序课程设计-Arduino讲解_第1页
接口与程序课程设计-Arduino讲解_第2页
接口与程序课程设计-Arduino讲解_第3页
接口与程序课程设计-Arduino讲解_第4页
免费预览已结束,剩余19页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、接口与控制课程设计基于 Arduino的温湿度测量仪指导教师:纪建伟付立思班级:14级农业电气化一班组员:刘晓旭徐梓桐杨康佳信息与电气工程学院2016 年 12 月第 1 页目录摘要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 本次设计

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

3、器和arduino 之间信息传递的方式, 发现 dht11 输出的是数字信号, Arduino 可直接通过数字引脚采集传感器输出的温湿度数据。最后, 我们学习 LCD各引脚功能,以实现Arduino 采集的温湿度数据信息的显示。第二章单元模块设计信息2.1 面包板面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用, 所以非常适合电子电路的组装、调试和训练。第 2 页面包板的得名可以追溯到真空管电路的年代, 当时的电路元器件大都体积较大, 人们通常通过螺丝和钉子将他们固定在一块切面

4、包用的木板上进行连接, 后来电路元器件体积越来越小, 但面包板的名称沿用了下来。面包板就是有母板作为底座, 并且电源接入有专用接线柱, 甚至有些能够进行高压实验的还有地线接线柱的面包实验板。 这种板子使用起来比较方便, 就是把电源直接接入接线柱, 然后单面包板插入元件进行实验(插元件的过程中要断开电源) 遇到多于 5 个元件或一组插孔插不下时,就需要用面包板连接线(也叫面包线,见参考资料)把多组插孔连接起来。2.2 杜邦线是美国杜邦公司生产的有特殊效用的缝纫线。电子行业杜邦线可用于实验板的引脚扩展,增加实验项目等。 可第 3 页以非常牢靠地和插针连接,无需焊接,可以快速进行电路试验。2.3 D

5、HT11 数字温湿度传感器模块DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性,成本低、相对湿度和温度测量、超快响应、抗干扰能力强、超长的信号传输距离、数字信号输出、精确校准。传感器包括一个电阻式感湿元件和一个NTC 测温元件,并与一个高性能8 位单片机相连接。可用于暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。产品参数:相对湿度分辨率: 16Bit第 4 页重 复 性:± 1%RH精度: 2

6、5±5%RH互 换 性:可完全互换响应时间: 1/e(63%)256s 1m/s 空气6s迟滞: <±0.3%RH长期稳定性: <±0.5%RH/yr温度分辨率: 16Bit重 复 性:± 0.2量程范围: 25±2响应时间: 1/e(63%)10S电气特性供电: DC 3.55.5V供电电流:测量0.3mA待机 60A 采样周期:次大于 2秒引脚说明1、VDD 供电 3.55.5V DC2、DATA 串行数据,单总线3、NC 空脚4、GND 接地,电源负极本公司生产的湿敏电阻湿度传感器器是采用有机高分子材料的一种新第 5 页型的湿

7、度敏感元件,具有感湿范围宽,响应迅速,抗污染能力强,无需加热清洗及长期使用性能稳定可靠等诸多特点。本设计中,采用的是 dht11 数字温湿度传感器模块, 可以直插直用。2.4 电位器电位器是具有三个引出端、 阻值可按某种变化规律调节的电阻元件。电位器通常由电阻体和可移动的电刷组成。当电刷沿电阻体移动时, 在输出端即获得与位移量成一定关系的电阻值或电压。电位器既可作三端元件使用也可作二端元件使用。后者可视作一可变电阻器,由于它在电路中的作用是获得与输入电压 (外加电压)成一定关系得输出电压,因此称之为电位器。第 6 页2.5 1602lcd字符型液晶显示器1602 是字符型液晶,它是16*2 的

8、显示的。每个字符由 5 乘 7 的点阵组成。1602 字符型 LCD通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的2 条线是背光电源线。引脚说明: VCC(15脚)和地线 GND(16脚),其控制原理与 14 脚的 LCD完全一样。2.6 Arduino Uno r3微处理器Arduino 是一款便捷灵活、方便上手的开源电子原型平台。 包含硬件(各种型号的 Arduino 板)和软件( Arduino IDE)。由一个欧洲开发团队于2005 年冬季开发。其成员包括Massimo Banzi 、DavidCuartielles 、 TomIgoe 、 GianlucaMartino

9、 、 David Mellis和NicholasZambetti。它构建于开放原始码simple I/O 介面版,并且具有使用类似Java、C语言的 Processing/Wiring 开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino 电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino 电路板后,程序便会告诉Arduino 电第 7 页路板要做些什么了。Arduino 能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、 影响环境。板子上的微控制器可以通过Arduin

10、o的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino 的编程是利用 Arduino 编程语言 (基于 Wiring)和 Arduino 开发环境 (基于 Processing)来实现的。基于 Arduino 的项目,可以只包含Arduino,也可以包含Arduino 和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash,Processing,MaxMSP)来实现。2.7 色环电阻色环电阻,是在电阻封装上(即电阻表面)涂上一定颜色的色环,来代表这个电阻的阻值。2.8 9v电源2.9 LCD 引脚接线 1602 采用标准的16 脚接口,其中:第 1 脚: VSS

11、为电源地第 2 脚: VCC接 5V 电源正极第 3 脚: V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高 (对比度过高时会 产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度 )。第 4 脚: RS为寄存器选择,高电平 1 时选择数据寄存器、低电第 8 页平 0 时选择指令寄存器。第 5 脚:RW 为读写信号线,高电平 (1)时进行读操作,低电平 (0) 时进行写操作。第 6 脚: E(或 EN)端为使能 (enable)端,高电平 (1)时读取信息,负跳变时执行指令。第 714 脚: D0D7 为 8 位双向数据端。第 1516 脚:空脚或背灯电源。1

12、5 脚背光正极,16 脚背光负极。LCD引脚Arduino 引脚编号RS4 号引脚EN5 号引脚D46 号引脚D57 号引脚D68 号引脚D79 号引脚Arduino 的 2 号引脚与 DHT11 data引脚相连LCD的 3 号引脚与电位器相连,起对比度调节的作用第 9 页LCD的 15 号引脚可以串联适当大小的电阻来调节其背光亮度第三章设计程序及注释/ Exampletesting sketchfor various DHThumidity/temperature sensors/ Written by ladyada,public domain#include "DHT.h&q

13、uot;#include <LiquidCrystal.h>/包含头文件#define DHTPIN2/ what digital pin we're connected to/ Uncomment whatever type you're using! #define DHTTYPEDHT11 / DHT11 const int POT=10;const int TH=11;LiquidCrystallcd(4,5,6,7,8,9);/ 用接口引脚编号初始化库/ 自定义温度标识符byte degree8=第10页B00110,B01001,B01001,B0011

14、0,B00000,B00000,B00000,B00000,;/#define DHTTYPEDHT22 / DHT22 (AM2302), AM2321 /#define DHTTYPEDHT21 / DHT21 (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 pin1/ to 3.3V instead of 5V!/ Connect pin 2 of the sensor to whate

15、ver your DHTPINis/ Connect pin 4 (on the right) of the sensor to GROUND/ Connect a 10Kresistor from pin 2 (data) to pin 1 (power) of the sensor/ Initialize DHTsensor./ Note that older versionsof this library took an optional third paramete r to第11页/ tweak the timings for faster processors. Thisparam

16、eter is no longer n eeded/ asthe current DHTreading algorithm adjusts itself to work on faster pr ocs.DHTdht(DHTPIN,DHTTYPE); void setup() Serial.begin(9600); Serial.println("DHTxxtest!"); dht.begin();/ 设置 10 11 号引脚输出 5v 电压lcd.begin(16,2);pinMode(POT,OUTPUT);pinMode(TH,OUTPUT);digitalWrite

17、(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);第12页lcd.setCursor(11,0);lcd.print("C");lcd.setCursor(0,1);lcd.print("Hum:");lcd.setCursor(10,1);lcd.print(&quo

18、t;%");void loop() / Wait a few secondsbetween measurements. delay(2000);/ Readingtemperature or humidity takes about 250 milliseconds!/ Sensorreadings may also be up to 2 seconds'old' (its a very slow sen sor)int h = dht.readHumidity();/ Readtemperature as Celsius(the default) int t = d

19、ht.readTemperature();/ Readtemperature as Fahrenheit (isFahrenheit= true) float f = dht.readTemperature(true);/ Checkif any readsfailed and exit early (to try again).if (isnan(h) | isnan(t) | isnan(f) Serial.println("Failed to read from DHTsensor!"); return;第13页/ Compute heat index in Fahr

20、enheit(the default) float hif = puteHeatIndex(f, h);/ Compute heat index in Celsius(isFahreheit= false) float hic = 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("Heat index: ");Seri

温馨提示

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

最新文档

评论

0/150

提交评论