jhyeqf 发表于 2014-9-10 22:43:55

I2C Lcd1602 DHT11温湿度显示

材料:I2C LCD 1602
          DHT11
          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);
}

lailai518 发表于 2014-11-6 17:35:44

怎么接线呢

lailai518 发表于 2014-11-6 17:36:23

DHT11接哪个端口

jhyeqf 发表于 2014-11-10 22:47:12

lailai518 发表于 2014-11-6 17:36 static/image/common/back.gif
DHT11接哪个端口

DHT11接 针脚8

我的孤独 发表于 2015-4-3 23:05:07

感谢楼主,有解释就好了

tsaiwn 发表于 2015-4-5 17:24:50

我的孤独 发表于 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

我的孤独 发表于 2015-4-5 18:33:08

tsaiwn 发表于 2015-4-5 17:24 static/image/common/back.gif
除非要研究 Arduino 如何和 DHT11 通信,
否则新手建议用 DHT11 的库即可 :
(1) http://playground.ar ...

全是英文。。。,不过还是谢谢楼主

tsaiwn 发表于 2015-4-6 00:41:38

我的孤独 发表于 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(

我的孤独 发表于 2015-4-6 20:52:49

tsaiwn 发表于 2015-4-6 00:41 static/image/common/back.gif
这是官網的 dht11.h
但官網沒做成 .zip , 我做成 .zip 夾在後面
这是 testing Example:

哇,谢谢啦
页: [1]
查看完整版本: I2C Lcd1602 DHT11温湿度显示