DHT11 + LCD 1602 i2c

meridian86
Offline
Зарегистрирован: 09.11.2019

Приветствую, форумчане! Есть такая задача - получить данные с датчика DHT11 и вывести их на LCD 1602 подключенный по i2c. Датчик и дисплей работоспособны - данные в монитор порта выводятся, датчик реагирует на изменения параметров внешней среды. Дисплей также замечательно работает. Но вот когда пытаемся данные с датчика отправить на дисплей, датчик отрубается сразу после lcd.begin()  и с него уже ничего не считать. Если сначала считать данные с датчика, а только потом дать команду lcd.begin(), то однократно данные получим, потом соответственно в мониторе порта наблюдаем ноли, а на lcd "nan". Что я делаю не так? Варианты пробовал разные.

#include "DHT.h"
DHT dht(A5, DHT11);     //Инициализация датчика DHT-11
#include <Wire.h> 
#include <LiquidCrystal_I2C.h> // Подключение библиотеки
LiquidCrystal_I2C lcd(0x27,16,2); // Указываем I2C адрес (наиболее распространенное значение), а также параметры экрана (в случае LCD 1602 - 2 строки по 16 символов в каждой 
float h;
float t;
void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.begin();
  lcd.backlight();
}

void loop() {
  delay(2000);
  t = temp();
  h = humid();
  Serial.println(t);
  Serial.println(h);
  lcd_print(t,h);

}
float temp() {
  return dht.readTemperature();
}
float humid() {
  return dht.readHumidity();
}
void lcd_print(float temp_, float humid_){
  
  lcd.setCursor(0,0);
  lcd.print(t);
  lcd.setCursor(0,1);
  lcd.print(h);
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

У Вас дисплей использует A4 и A5. А Вы на тот же самый A5 ещё и датчик посадили. Вот они и дерутся. Других свободных пинов нет?

meridian86 пишет:
Варианты пробовал разные.

Попробуйте ещё вариант с датчиком на свободном пине, а не на занятом дисплеем.

b707
Offline
Зарегистрирован: 26.05.2017

А ничего, что у вас дисплей и датчик подключен к одному и тому же пину?

meridian86
Offline
Зарегистрирован: 09.11.2019

Это был эпик фейл... Благодарю! Распечатал себе схемку, что так не тупить.

nik182
Offline
Зарегистрирован: 04.05.2015

Мне всегда было интересно, как к одной ноге подключить два провода? Вот лежит передо мной нана и в неё воткнут дисплей по i2c. А надо ещё датчик воткнуть. И как +5 вольт датчика воткнуть в уже воткнутый пин +5 дисплея. Борду не предлагать. Кто что делает?