• Система автоматизации с открытым исходным кодом на базе 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
Спасибо всем за участие.
 
Сверху Снизу