接口与程序课程设计Arduino.docx
《接口与程序课程设计Arduino.docx》由会员分享,可在线阅读,更多相关《接口与程序课程设计Arduino.docx(11页珍藏版)》请在冰豆网上搜索。
![接口与程序课程设计Arduino.docx](https://file1.bdocx.com/fileroot1/2022-10/26/e4400e3a-5857-42d3-977c-59d188753526/e4400e3a-5857-42d3-977c-59d1887535261.gif)
接口与程序课程设计Arduino
接口与控制课程设计
基于Arduino的温湿度测量仪
指导教师:
纪建伟付立思
班级:
14级农业电气化一班
组员:
刘晓旭徐梓桐杨康佳
信息与电气工程学院
2016年12月
摘要
本次设计是基于ArduinoUnor3为控制核心,结合dht11数字温湿度传感器模块、1602LCD字符型液晶显示器的温湿度测量仪。
该系统用于检测空气中的温湿度并传递到LCD显示器上。
其量程温度为0~50℃,量程湿度为20-90%RH。
关键词:
Arduino温湿度测量LCD
第一章课程设计的基本思路
本次设计为实现对空气中的温湿度测量,我们计划选用以Arduino为核心,其他模块为基础,以积木式的方法搭建出整个硬件系统。
为此我们先学习了Arduino控制板上各引脚的功能及用途,再学习温湿度传感器和arduino之间信息传递的方式,发现dht11输出的是数字信号,Arduino可直接通过数字引脚采集传感器输出的温湿度数据。
最后,我们学习LCD各引脚功能,以实现Arduino采集的温湿度数据信息的显示。
第二章单元模块设计信息
2.1面包板
面包板是由于板子上有很多小插孔,专为电子电路的无焊接实验设计制造的。
由于各种电子元器件可根据需要随意插入或拔出,免去了焊接,节省了电路的组装时间,而且元件可以重复使用,所以非常适合电子电路的组装、调试和训练。
面包板的得名可以追溯到真空管电路的年代,当时的电路元器件大都体积较大,人们通常通过螺丝和钉子将他们固定在一块切面包用的木板上进行连接,后来电路元器件体积越来越小,但面包板的名称沿用了下来。
面包板就是有母板作为底座,并且电源接入有专用接线柱,甚至有些能够进行高压实验的还有地线接线柱的面包实验板。
这种板子使用起来比较方便,就是把电源直接接入接线柱,然后单面包板插入元件进行实验(插元件的过程中要断开电源)遇到多于5个元件或一组插孔插不下时,就需要用面包板连接线(也叫面包线,见参考资料)把多组插孔连接起来。
2.2杜邦线
是美国杜邦公司生产的有特殊效用的缝纫线。
电子行业杜邦线可用于实验板的引脚扩展,增加实验项目等。
可以非常牢靠地和插针连接,无需焊接,可以快速进行电路试验。
2.3DHT11数字温湿度传感器模块
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性,成本低、相对湿度和温度测量、超快响应、抗干扰能力强、超长的信号传输距离、数字信号输出、精确校准。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
可用于暖通空调、除湿器、测试及检测设备、消费品、汽车、自动控制、数据记录器、气象站、家电、湿度调节器、医疗、其他相关湿度检测控制。
产品参数:
相对湿度分辨率:
16Bit
重复性:
±1%RH
精 度:
25℃ ±5%RH
互换性:
可完全互换
响应时间:
1/e(63%)25℃ 6s1m/s空气 6s
迟 滞:
<±0.3%RH
长期稳定性:
<±0.5%RH/yr
温度分辨率:
16Bit
重复性:
±0.2℃
量程范围:
25℃ ±2℃
响应时间:
1/e(63%) 10S
电气特性供电:
DC3.5~5.5V
供电电流:
测量0.3mA
待机60μA采
样周期:
次 大于2秒
引脚说明1、VDD 供电3.5~5.5VDC
2、DATA串行数据,单总线
3、NC 空脚
4、GND 接地,电源负极
本公司生产的湿敏电阻湿度传感器器是采用有机高分子材料的一种新型的湿度敏感元件,具有感湿范围宽,响应迅速,抗污染能力强,无需加热清洗及长期使用性能稳定可靠等诸多特点。
本设计中,采用的是dht11数字温湿度传感器模块,可以直插直用。
2.4电位器
电位器是具有三个引出端、阻值可按某种变化规律调节的电阻元件。
电位器通常由电阻体和可移动的电刷组成。
当电刷沿电阻体移动时,在输出端即获得与位移量成一定关系的电阻值或电压。
电位器既可作三端元件使用也可作二端元件使用。
后者可视作一可变电阻器,由于它在电路中的作用是获得与输入电压(外加电压)成一定关系得输出电压,因此称之为电位器。
2.51602lcd字符型液晶显示器
1602是字符型液晶,它是16*2的显示的。
每个字符由5乘7的点阵组成。
1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。
引脚说明:
VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。
2.6ArduinoUnor3微处理器
Arduino是一款便捷灵活、方便上手的开源电子原型平台。
包含硬件(各种型号的Arduino板)和软件(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电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。
对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。
基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来实现。
2.7色环电阻
色环电阻,是在电阻封装上(即电阻表面)涂上一定颜色的色环,来代表这个电阻的阻值。
2.89v电源
2.9LCD引脚接线1602采用标准的16脚接口,其中:
第1脚:
VSS为电源地
第2脚:
VCC接5V电源正极
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
第4脚:
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
第5脚:
RW为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
第6脚:
E(或EN)端为使能(enable)端,高电平
(1)时读取信息,负跳变时执行指令。
第7~14脚:
D0~D7为8位双向数据端。
第15~16脚:
空脚或背灯电源。
15脚背光正极,16脚背光负极。
LCD引脚
Arduino引脚编号
RS
4号引脚
EN
5号引脚
D4
6号引脚
D5
7号引脚
D6
8号引脚
D7
9号引脚
Arduino的2号引脚与DHT11data引脚相连
LCD的3号引脚与电位器相连,起对比度调节的作用
LCD的15号引脚可以串联适当大小的电阻来调节其背光亮度
第三章设计程序及注释
// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#include "DHT.h"
#include //包含头文件
#define DHTPIN 2 // what digital pin we're connected to
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
const int POT=10;
const int TH=11;
LiquidCrystal lcd(4,5,6,7,8,9);
//用接口引脚编号初始化库
//自定义温度标识符
byte degree[8]={
B00110,
B01001,
B01001,
B00110,
B00000,
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 whatever 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 sensor
// Initialize DHT sensor.
// Note that older versions of this library took an optional third parameter to
// tweak the timings for faster processors. This parameter is no longer needed
// as the current DHT reading algorithm adjusts itself to work on faster procs.
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println("DHTxx test!
");
dht.begin();
//设置1011号引脚输出5v电压
lcd.begin(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.set