• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

lcd1602 + bmp280 по I2C

speakme

New member
Привет.
Вешаю на D1, D2 nodemcu v3 и дисплей, и датчик (lcd1602 + bmp280) по I2C - они конфликтуют. По отдельности оба устройства работают, а сканирую I2C когда вместе, датчик отваливается..
Код:
#include <Wire.h>
#include <Adafruit_BMP280.h>
Adafruit_BMP280 bme;    // I2C
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_1602(0x27, 16, 2);
Адрес датчика прописан в библиотеке, и он совпадает с (0x76)
Как быть, подскажите, пожалуйста
 

enjoynering

Well-known member
замените стандартную билиотеку wire на эту - enjoyneering/ESP8266-I2C-Driver

стандартная библиотека не умеет нормально работать с несколькими ведомыми на i2c шине. с одним еще прокатывает, а вот с > 2 начинаются колизии, сбатывает WDT и esp перегружается. вот такая баг фича.

более быстрая библиотека для lcd1602 тут - enjoyneering/LiquidCrystal_I2C
как ей пользоваться тут - Универсальная библиотека LiquidCrystal_I2C на базе расширителя портов PCF8574
 
Последнее редактирование:

speakme

New member
Скомпилировался..
Код:
#include <Adafruit_BMP280.h>
#define BMP_SCK PIN_SPI_SCK
#define BMP_MISO PIN_SPI_MISO
#define BMP_MOSI PIN_SPI_MOSI
#define BMP_CS PIN_SPI_SS

Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_1602(0x27, 16, 2);
А вот не работает. Проверьте, плиз, физически я правильно подключил?
bmp-280 --- nodemcu v3
SCL --- SK
SDA --- S1
CSB --- SC
SD0 --- S0

 
Последнее редактирование:

enjoynering

Well-known member
хм. а сканер запускали? датчик на новой wire библиотеке так же отваливается во время скана?

Вот вам мой сканер. немного не дописанный. но для проверить пойдет. Проверял на 4-х подключенных ведомых BH1750, HTU21D, BMP180, LCDна PCF8574. С моей wire.h. все находит ничего не отваливается. С дефолтной либой esp ничего не находит, или находит одно устройство или перегружается :)
 

Вложения

Последнее редактирование:

speakme

New member
Думаю не в сканере дело. У меня 2 разных рабочих сканера. К-стати, на arduino uno видит оба параллельно включенных bmp + lcd. Библиотеки поменял, IDE перезагружал после замены. Отваливается lcd, но bmp тоже перестает работать.. Позже продолжу заниматься, на работе пока
 

enjoynering

Well-known member
дало не в сканере. тут могут быть три проблемы - глючный wire.h, глючная библиотека под bmp280 или глючное и первое и второе. поэтому и опросил вас запустить вас сканер на моей wire.h. отваливаться ничего не должно (у меня ж ничего не отваливается, даже с 4-я ведомыми). Если не отвалится значит библиотека глючная и надо искать другую. если отвалится, то значит где-то я накосячил. будем разбираться тогда.
 
Последнее редактирование:

speakme

New member
Привет. Извиняюсь за молчание, был в отпуске.. А потом добил свою проблему lcd1602 + bmp280 по I2C. Танцы с бубнами как всегда дают положительный результат :rolleyes:
Решение проблемы:
Все работает по I2C. Надо было запитать bmp280 от отдельного источника напряжения 3,3V. Он у меня сидел на отдельном питании, но совместно с тремя DS18B20... Они то и мешали. Я не пробовал, может просто конденсаторы надо было поближе повесить.. Уже который раз эту собаку ем, и опять.. Видать вкусная :D
Спасибо всем за участие.
 
Сверху Снизу