I2C Lcd1602 DHT11温湿度显示
材料:I2C LCD 1602DHT11
ARDUINO UNO
ARDUINO 代码
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f,16,2);
int DHpin;
byte dat;
byte read_data()
{
byte data;
for(int i=0;i<8;i++)
{
if(digitalRead(8)==LOW)
{
while(digitalRead(8)==LOW);
delayMicroseconds(30);
if(digitalRead(8)==HIGH)
data|=(1<<(7-i));
while(digitalRead(8)==HIGH);
}
}
return data;
}
void start_test()
{
digitalWrite(8,LOW);
delay(30);
digitalWrite(8,HIGH);
delayMicroseconds(40);
pinMode(8,INPUT);
while(digitalRead(8)==HIGH);
delayMicroseconds(80);
if(digitalRead(8)==LOW);
delayMicroseconds(80);
for(int i=0;i<4;i++)
dat=read_data();
pinMode(8,OUTPUT);
digitalWrite(8,HIGH);
}
void setup()
{
lcd.init(); // initialize the lcd
lcd.init();
lcd.backlight();
Serial.begin(9600);
pinMode(8,OUTPUT);
}
void loop()
{
start_test();
lcd.setCursor(0,0);
lcd.print("Cur hum =");
lcd.print(dat,DEC);
lcd.print('.');
lcd.print(dat,DEC);
lcd.print('%');
lcd.setCursor(0,1);
lcd.print("Cur tem=");
lcd.print(dat,DEC);
lcd.print('.');
lcd.print(dat,DEC);
lcd.print('C');
delay(5000);
lcd.clear();
delay(1000);
}
怎么接线呢
DHT11接哪个端口
lailai518 发表于 2014-11-6 17:36 static/image/common/back.gif
DHT11接哪个端口
DHT11接 针脚8 感谢楼主,有解释就好了 我的孤独 发表于 2015-4-3 23:05 static/image/common/back.gif
感谢楼主,有解释就好了
除非要研究 Arduino 如何和 DHT11 通信,
否则新手建议用 DHT11 的库即可 :
(1) http://playground.arduino.cc/Main/DHTLib
(2) https://github.com/kkpoon/DHT11Lib
(3) https://github.com/adafruit/DHT-sensor-library
tsaiwn 发表于 2015-4-5 17:24 static/image/common/back.gif
除非要研究 Arduino 如何和 DHT11 通信,
否则新手建议用 DHT11 的库即可 :
(1) http://playground.ar ...
全是英文。。。,不过还是谢谢楼主 我的孤独 发表于 2015-4-5 18:33 static/image/common/back.gif
全是英文。。。,不过还是谢谢楼主
这是官網的 dht11.h
但官網沒做成 .zip , 我做成 .zip 夾在後面
这是 testing Example:// Example sketch for testingDHT11 humidity/temperature sensors
// Written by [email protected]
// this program is in public domain.
#include "dht11.h"
const int pin = 5; // the pin attachedDHT11 sensorDHT
dht11 DHT11; // the Object for sensor DHT11
int temp; // 温度, 因為 DHT11 只有給 int !
int humi; // 湿度, 因為 DHT11 只有給 int !
void setup() {
Serial.begin(9600);
Serial.println("Testing the DHT11 and dht11.h Library !");
int chk = DHT11.read(pin);
Serial.print(String("Error code=") + chk);
Serial.println(String("Humidity=") + DHT11.humidity + ", Temperature=" + DHT11.temperature);
} // setup(
void loop() {
delay(2000); // Wait 2seconds between measurements.
int chk = DHT11.read(pin);
if(chk != 0 ) { // 讀取 DHT11 有 Error
Serial.println("DHT11 reading Error !");
}else{ // 把这行注釋掉就可以有錯也照显示 !
temp = DHT11.temperature;
humi = DHT11.humidity;
Serial.print("Humidity: ");
Serial.print(humi);
Serial.print(" %\t");
Serial.println(String("Temperature: ") + temp +" oC");
}// if..else..
} // loop(
tsaiwn 发表于 2015-4-6 00:41 static/image/common/back.gif
这是官網的 dht11.h
但官網沒做成 .zip , 我做成 .zip 夾在後面
这是 testing Example:
哇,谢谢啦
页:
[1]