漂流心得,一块板接二个LCD1602

2017-04-207799
AI 快速预览详细 收起
该项目介绍了如何在一块Arduino板上连接两个LCD1602显示屏,一个用于显示DHT11传感器读取的温湿度数据,另一个用于显示超声波传感器测量的距离。硬件清单包括Arduino板、两个LCD1602显示屏、DHT11传感器和超声波传感器。最终效果是能够实时显示温湿度和距离。难度等级适中,适合初学者学习和实践。
注意跳线
#include <dht11.h>   
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20,16,2);  //设置LCD的地址为0x20,可以设置2行,每行16个字符
LiquidCrystal_I2C mylcd(0x27,16,2);


dht11 DHT;
#define DHT11_PIN 3
float dist;


float checkdistance_4_7() {
  digitalWrite(4, LOW);
  delayMicroseconds(2);
  digitalWrite(4, HIGH);
  delayMicroseconds(10);
  digitalWrite(4, LOW);
  float distance = pulseIn(7, HIGH) / 58.00;
  delay(10);
  return distance;
}


void setup(){

  dist = 0;
  pinMode(4, OUTPUT);
  pinMode(7, INPUT);

  lcd.init();                 // LCD初始化设置
  lcd.backlight();           // 打开LCD背光
  mylcd.init();                 // LCD初始化设置
  mylcd.backlight();           // 打开LCD背光


}

void loop(){
   dist = checkdistance_4_7();
  if (dist < 1000) {
   mylcd.clear();
   mylcd.setCursor(0, 0);
   mylcd.print("Distance(cm):");
   mylcd.setCursor(0, 1);
   mylcd.print(dist);
   delay(1000);
  }



  lcd.clear();
  lcd.setCursor(0, 0);
  Serial.println("Type,\tstatus,\tHumidity(%),\tTemperature(C)");

  lcd.print("Humidity(%): ");    //LCD屏显示” Humidity(%):”
  lcd.setCursor(0, 1);            //光标移到第2行,第一个字符
  lcd.print("Temp(C): ");         //LCD屏显示”Temp(C):”



  int chk;     //chk用于存储DHT11传感器的数据
  Serial.print("DHT11, \t");     

  //读取DHT11传感器的数据
  chk = DHT.read(DHT11_PIN);   
  switch (chk){   
    case DHTLIB_OK:  
                Serial.print("OK,\t");
                break;
    case DHTLIB_ERROR_CHECKSUM:
                Serial.print("Checksum error,\t");
                break;
    case DHTLIB_ERROR_TIMEOUT:
                Serial.print("Time out error,\t");
                break;
    default:
                Serial.print("Unknown error,\t");
                break;
  }

//串口显示温湿度值
  Serial.print(DHT.humidity,1);
  Serial.print(",\t");
  Serial.println(DHT.temperature,1);

  //LCD显示温湿度值
  lcd.setCursor(12, 0);
  lcd.print(DHT.humidity,1);
  lcd.setCursor(12, 1);
  lcd.print(DHT.temperature,1);

  delay(1000);
}

微信图片1.jpg (50.21 KB, 下载次数: 2941)

Arduino · 一块板接二个LCD1602:实现温湿度与距离显示_image_3.webp

微信图片2.jpg (61.65 KB, 下载次数: 2930)

Arduino · 一块板接二个LCD1602:实现温湿度与距离显示_image_6.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
shijinxianzhe
shijinxianzhe
学习了!
- 没有更多了 -