Вывод показаний датчика AM2302 на дисплей LCD1602

Воспользовавшись ранее купленным сенсором AM2302 (179р.) , будем выводить его показания (влажность и температуру) на дисплей LCD1602. Полный datasheet на сенсор тут. Его включение типовое: крайние выводы — питание 5В, вывод 2 — данные ко входу 2 Arduino и на +5В через резистор 10кОм. Загружаем нижеприведенный скетч в Arduino.

//
// Выводим показания датчика AM2302 на LCD дисплей
//
#include "DHT.h"                // библиотека сенсора
#include <Wire.h>               // библиотека интерфейса I2C
#include <LCD.h>                    
#include <LiquidCrystal_I2C.h>  // библиотека ЖК дисплея с интерфейсом I2C
     
#define DHTPIN 2                // куда подключаем сенсор
#define DHTTYPE DHT22           // тип сенсора DHT 22 (AM2302) 

#define I2C_ADDR     0x27       // I2C адрес интерфейса дисплея
    
DHT dht(DHTPIN, DHTTYPE);       // инициализация датчика
// инициализация дисплея
LiquidCrystal_I2C iLCD(I2C_ADDR, 2, 1, 0, 4, 5, 6, 7);   
     
void setup() {
  // выключим диод на плате
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  // конфигурация дисплея 16 х 2
  iLCD.begin(16, 2);
  // установка подсветки
  iLCD.setBacklightPin(3,POSITIVE);
  // включение подсветки
  iLCD.setBacklight(HIGH);
  dht.begin();
}
     
void loop() {
 // Задержка между измерениями 2с
 delay(2000);
 // курсор в правый левый угол 
 iLCD.home();
 // Читаем данные влажности и температуры
 float h = dht.readHumidity();
 float t = dht.readTemperature();
 // Если что то не так, выходим раньше и начинаем заново
 if (isnan(h) || isnan(t)) {
  iLCD.print("No DHT sensor!");
  iLCD.setCursor(0, 1);
  iLCD.print("                ");
  return;
 }
 else{
  // выводим показания влажности 
  iLCD.print("H,% ");
  iLCD.setCursor(4, 0);
  iLCD.print(h);
  iLCD.setCursor(9, 0);
  iLCD.print("       ");
  iLCD.setCursor(0, 1);
  // выводим показания температуры  
  iLCD.print("t,C ");
  iLCD.setCursor(4, 1);
  iLCD.print(t);
 }
}


Результат выполнения скетча приведен ниже.
LCD1602wI2S AM2302

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *