• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Датчики i2c BME680, CCS811, HDC1080

Veoramid

New member
Добрый день.
Простите за глупый вопрос, но уже недели две не могу самостоятельно разобраться.
Приблизительно 2 года назад я подключил датчики BME680, CCS811, HDC1080 по шине i2c к ESP8266 с помощью Arduine IDE.
Датчики работали, передавали данные в "народный мониторинг".

Сейчас я захотел изменить программу, перекомпилировал - датчики "отвалились".
Переподключил к Arduino Nano, долго мучал, нашел (помогли) ошибку в библиотеке HDC1080 - на нано все датчики работают.

Переподключил к ESP8266 - не хотят. Точнее i2c тест проходят, адреса подтверждают, но стандартные библиотеки не могут их иннициалдизировать. Осциллограф показывает красивую картинку.1681931101061.png

Что можно проверить?Уже третья неделя мучений - не могу разобраться что изменилось за два года :(
 

enjoynering

Well-known member
советую почитать об азах стандарта I2C и особенно что такое clock stretching и зачем он нужен.
 

Veoramid

New member
советую почитать об азах стандарта I2C и особенно что такое clock stretching и зачем он нужен.
В данном случае я не вмешиваюсь в "стандартную" библиотеку Wire.
Нашел статью, в которой рассказали о параметре Wire.setClock(15000); - пробовал разные значения от 250до 15000 - без изменений.
 

Veoramid

New member
Это сейчас? А тогда? 2.5.х или 2.7.х или ... ? Пробуйте откатиться
За версиями не слежу, поэтому увы. Но в принципе "решилось".


Код "стандартный" из всех примеров: setup: *.begin() loop: *.read()

Но проблема "решена" без изменения кода примера и без изменения электросхемы:
Удалил Arduino IDE,
Поиском нашел всякие папки Arduino15, libraris в %Programs%,%AppData% и т.д. удалил их,
Установил новую Arduino IDE,
Уставил поддержку ESP8266 через Arduino IDE,
Установил поддержку датчиков Adafruit_* через Arduino IDE,

И "все заработало". :(
1682415286090.png
 
Сверху Снизу