I2C хаб — как подключить одинаковые I²C модули к одной шине. Управляем IMU, матрицами, NFC и RTC.

I2C хаб — это модуль для одновременного подключения восьми устройств к одной шине: https://amperka.ru/product/troyka-i2c-hub?utm_source=youtube.com&utm_campaign=pvid-2019-12-23-i2c-hub&utm_medium=description

Стандарт подключения Inter-Integrated Circuit или сокращённо I²C был разработан ещё в начале восьмидесятых инженерами компании Филипс. Он рассчитан на последовательное подключение 127 устройств. Вот только каждое устройство в цепочке должно иметь уникальный адрес. Это не проблема, если в устройстве используются разные модули. Но что делать, если необходимо собрать проект с несколькими одинаковыми модулями, например — систему доступа по карточкам?

У всех NFC-сканеров один прошитый адрес, поэтому подключить больше одного модуля напрямую к ардуино не получится. Поэтому понадобится расширитель портов — хаб.

Хаб работает как железнодорожная стрелка — поочерёдно переводит сигнал платы на разные пути. За это отвечает микросхема на борту платы. Одновременно обмен данными будет происходить только с одним модулем, но по сигналу с микроконтроллера — хаб переключится на следующий.

Вам не придётся задумываться об этом: реализацию переключения и переадресации мы спрятали в библиотеку. Просто подключите проводами несколько I²C устройств — всё заработает как часы.

Если вам понадобятся больше 8 одинаковых модулей одновременно, добавьте ещё один хаб. Только не забудьте поменять его собственный адрес — для этого нужно капнуть каплю припоя на одну из контактных площадок. Собственный адрес модуля изменится. Так к одной шине можно подключить до 8 хабов, а каждый из них раздаст сигнал ещё на 8 устройств. А уж 64 одинаковых модулей точно хватит всем.

Забудьте о конфликтах I²C модулей с одинаковыми адресами. Используйте несколько IMU-сенсоров для управления квадрокоптером, отслеживайте жесты с помощью группы датчиков приближения или постройте огромный дисплей на светодиодных матрицах.

#амперка #arduino #i2c