HTU31 - 2 шт через TCA95548A на ESP8266
- Войдите на сайт для отправки комментариев
Сб, 02/07/2022 - 21:40
Всем, доброго дня!
Помогите разобраться, есть ESP8266 к ней прикручен TCA95548A, чтобы подключить два новых датчика температуры и влажности HTU31. Нигде особо примеров нет, как их встраивать и использовать. Для них написана библиотека Adafruit_HTU31D. С одним датчиком подключенным напрямую к плате всё работало, но мне то нужно подключить два.
Код который написан выдает:
6Temp: -40.00 C
6Humidity: 0.00 % RH
7Temp: -40.00 C
7Humidity: 0.00 % RH
что неверное, помогите понять, как правильно обратиться к датчикам на шине
Заранее спасибо большое добрые люди
Я бы оставил в исходнике один Adafruit_HTU31D htu1 и дергал его, переключая TCA95548A.
так тоже было, не помогло
я чего то не понял, зачем тут свитч, если два датчика можно включить напрямую
если можно, то я включу, но насколько я знаю у них одинаковые адреса и они не включаться
если можно, то я включу, но насколько я знаю у них одинаковые адреса и они не включаться
HTU31D RH/T SENSOR IC
Digital Relative Humidity sensor with Temperature output
TE CONNECTIVITY SENSORS /// HTU31D RH/T SENSOR IC 05/2020 Page 8
COMMUNICATION AND OPERATION
I2C Address
The HTU31 series has the capability to answer 2 distinct I2C addresses. This can be used to use multiple sensors on the same
I2C network and avoid any address conflict with other components.
Hardwired Dynamic address
The hardwired address is defined by the IC_ADD pin level (it set the LSB value). It can be used to have 2 sensors on the same
I2C network (one wired to VDD, the other to VSS). The other option to use more than 2 sensors on the same I2C network is to
use individual IC_ADD lines to the sensors.
IC_ADD Pin level Sensor I2C address (Hex)
GND 0x40
VDD 0x41
Table 7 Sensor I2C Address
Спасибо, что прояснили. Пошел читать и сравнивать.
У меня 4 выхода (PIN) на плате от HTU31: VCC, GND, SDA, SCL
Согласно таблице в техническом описании, у самой микросхемы 6 выходов (PIN) и один из них IC_ADD
The hardwired address is defined by the IC_ADD pin level (it sets the LSB value). It can be used to connect 2 sensors on the same I²C network (one wired to VDD, the other to GND). To connect more than 2 sensors on the same I²C network, individual IC_ADD lines can be used
IC_ADD Pin level Sensor I2C address (Hex)
GND 0x40
VDD 0x41
Получается, что мне нужно подавать + или - на эту ногу для изменения адреса, но в текущем форм факторе это невозможно, т.к. у меня 4 выхода и нет выхода IC_ADD, верно?
Получается, что мне нужно подавать + или - на эту ногу для изменения адреса, но в текущем форм факторе это невозможно, т.к. у меня 4 выхода и нет выхода IC_ADD, верно?
не совсем , 4 выхода на самом модуле. доступ же к ножкам микросхемы есть ко всем. достаточно определить номер ноги отвечающую за адресс (перерезать существующуие дорожки на модуле) и подтянуть ее к нужному значению пайкой
есть. на гнд посажена. перерезать дорожку и кинуть просволочку на питание
Как вариант можно купить другой датчик типа BME280 и посадить их оба с HTU31 на одну шину I2C. У микросхему HTU 31 нога IC_ADD замкнута на VCC, но через резистор на плате (при прозвоне видно, что есть сопротивление ), так что не особо там провода паять можно, резистор маленький совсем. Да и дорожек с правой стороны отходит две, а д.б. 3.
Как вариант можно купить другой датчик типа BME280 и посадить их оба с HTU31 на одну шину I2C. У микросхему HTU 31 нога IC_ADD замкнута на VCC, но через резистор на плате (при прозвоне видно, что есть сопротивление ), так что не особо там провода паять можно, резистор маленький совсем. Да и дорожек с правой стороны отходит две, а д.б. 3.
что-то ты лётчик наимпровизировал с глиссадой, если плата именно та, что дал ссылку то там всего два резистора, подтяжка шины I2C и конденсатор по питанию, адрес датчика на GND
По красной линии отрезать, по синей - соединить:
У библиотеки есть такая функция:
bool Adafruit_HTU31D::begin(uint8_t i2c_addr, TwoWire *theWire)
А SoftwareWire в бранче v1.5.1 наследуется от TwoWire.
То есть можно взять это: https://github.com/Testato/SoftwareWire/tree/v1.5.1
Создать инстансы TwoWire для двух пар шин Wire и скормить их адафруиту.
P.S. сорян, забыл что тут ESP. Мой метод под Arduino