Я хочу добавить модуль часов реального времени в мой маленький проект. Я хочу отображать время и дату на моем существующем ЖК-модуле i2c 2x16.
Модуль часов реального времени с интерфейсом i2c и ЖК-модуль 2x16 используют один и тот же вывод A4 (SDA) и A5 (SCL) на Arduino Uno. После нескольких часов поиска в сети шина i2c может фактически занять много последовательных устройств. Это возможно, потому что каждое устройство имеет свой уникальный адрес.
У меня вопрос, как физически подключить два устройства с интерфейсом i2c к одному A4 и A5? Спасибо.
Ответы:
Некоторым людям трудно визуализировать вещи, связанные вместе, поэтому вот картинка:
(Предложение по подаче)
смоделируйте эту схему - Схема, созданная с использованием CircuitLab I2C, представляет собой шину, поэтому одноименные сигналы соединяются вместе. Схема адресации позволяет микроконтроллеру выбирать, с каким устройством он разговаривает. На Arduino подтягивающие резисторы 10 кОм переходят в «VDD», то есть 5В или 3,3В выводы.
источник
Для I2C, если все подчиненные устройства имеют разные адреса устройств, все контакты SDA должны быть соединены вместе, и все контакты SCL должны быть соединены вместе. Это так просто.
Естественно, вы должны также включить подтягивающие резисторы на обеих линиях, как требуется для I2C. Как выбрать значения резистора, обсуждалось здесь ранее .
источник
Подключите два контакта A4-sda к A5-scl (на обеих платах uno-uno) и подключите резистор от 5 В от каждой соответствующей линии sda-scl.
источник
I2C - это протокол передачи данных, разработанный Philips. Также известен как двухпроводной интерфейс, поскольку он использует два провода для связи. SCL-Serial Clock Line. SDL-Serial Data Line. Поэтому вам необходимо подключить соответствующие контакты устройств i2c, будь то eeprom или lcd, к контактам SCL и SDL микроконтроллера, который вы используете с нагрузочным резистором, к VDD. Поскольку это протокол адресов, имеющий 7-битный адрес для каждого подключенного устройства, вы можете адресовать до 2 ^ 7 различных устройств. Но обычно адрес I2C подчиненного устройства предопределен с некоторыми битами, которые должны быть встроены разработчиком. Это помогает при подключении к одной шине устройств одного типа с разной проводной адресной частью.
источник
Также вы должны проверить подтягивающие резисторы. Если вы используете уже изготовленные платы, а не только микросхему, на этих платах обычно есть подтягивающие резисторы между шинами и vcc. Таким образом, когда вы подключаете все параллельно, резисторы также параллельны, поэтому общее значение резистора падает, и ваша связь может перестать работать.
источник