用arduino 制作温湿度计,利用LCD显示屏将温湿度显示在LCD显示屏上
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用arduino 制作温湿度计,利用LCD显示屏将温湿度显示在LCD显示屏上相关的知识,希望对你有一定的参考价值。
参考技术A 宝宝上有的, arduino 温湿度计追问你可不可以直接帮我在宝宝上copy下来
追答不可能的!人家是卖的,你不买,谁会给你呢?
参考技术B材料:Arduino一块、dht11温湿度传感器一块、1602 i2c 显示屏
软件:下载库并安装:
http://pan.baidu.com/s/1o7KHVfk
http://pan.baidu.com/s/1jHYxqGu
接线:i2c LCD1602模块有4个引脚,连接非常简单,分别连接arduino(首先将库文件添加到library中,不然程序无法工作;虽然连线只有4根,但是还是要注意下连线,正负极不可反接):
GND ———— GND
VCC ———— 5V
SDA ———— A4(AREF旁的SDA)
SCL ———— A5 (AREF旁的SCL)
dht11接数字接口8
//读取dht11温度并显示与i2c lcd 1602 上//By.YoungRightNow zhidao.baidu
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define DHT11PIN 8
dht11 DHT11;
//定义库文件
//i2c地址
void setup()
pinMode(DHT11PIN,OUTPUT);
lcd.init(); // 初始化lcd
lcd.backlight(); //打开背光灯
void loop()
int chk = DHT11.read(DHT11PIN);
lcd.setCursor(0, 0);//定义显示行列
lcd.print("Tep: ");//显示tep字样
lcd.print((float)DHT11.temperature, 2);//读取温度
lcd.print("C");
lcd.print("Hum: ");
lcd.print((float)DHT11.humidity, 2);//读取湿度
lcd.print("%");
delay(1000);//一秒更新一次
Arduino 将1602液晶显示屏改造为IIC接口
参考技术A 原来的1602是这样的:连接到Arduino上需要接好多线,于是买了块IIC的板子改成IIC接口,就是这货:
由于Arduino的I/O口数量有限,如果直接用Arduino的I/O口直接驱动LCD1602/2004这样会占用较多的I/O口资源也不利于连接更多的其他设备。IIC LCD1602/2004转接板可以大大减少需要使用IO接口,原来的1602/2004屏需要7(RS、RW、E、D4~D7)个IO口才能驱动起来,而这个模块可以省去5个IO口。
模块采用PCF8574,它通过两条双向总线(I2C)可使大多数 MCU 实现远程 I/O口扩展。该器件包含一个 8 位准双向口和一个I2C总线接口。PCF8574 电流消耗很低,且口输出锁存具有大电流驱动能力,可直接驱动 LED。它还带有一条中断接线(INT开漏输出)可与 MCU 的中断逻辑相连。通过 INT 发送中断信号, 远端 I/O 口不必经过 I2C 总线通信就可通知 MCU 是否有数据从端口输入。
但是这块板子也是插针,要想连接1602的化,需要通过面包板才行,这个不能忍,于是开始拆拆拆。
将原1602的排针拆除,直接焊接IIC转接板。说起来简单,实际操作时发现拆除排针还是需要一定的技术的,最终拆的一团糟,一度以为板子拆坏了。
焊上转接板发现只有背光灯是亮的,查了半天发现是对比度的问题
使用小螺丝刀调节该电位器,从而调节对比度,1602显示屏显示。
大功告成,焊工依然很烂!
PS:
I2C github库
https://github.com/marcoschwartz/LiquidCrystal_I2C
以上是关于用arduino 制作温湿度计,利用LCD显示屏将温湿度显示在LCD显示屏上的主要内容,如果未能解决你的问题,请参考以下文章