I2C (Wire)
интерфейс
Библиотека
- Дополнительная информация.
I2C (Inter-Integrated Circuit) — это последовательный интерфейс, который позволяет подключать к Ардуино сразу несколько устройств, используя всего две сигнальные линии. Именно поэтому I2C так любят в проектах на Ардуино Нано: он экономит пины и упрощает схему.
Как это работает
В отличие от SPI, где нужны отдельные линии для передачи и приёма данных, в I2C используется всего два провода:
- SDA (Serial Data) — линия данных.
- SCL (Serial Clock) — линия тактирования.
Одно из устройств на шине является ведущим (Master) — обычно это сама плата Ардуино. Остальные устройства — ведомые (Slave). У каждого ведомого есть свой уникальный 7-битный адрес. Ведущий «общается» с нужным устройством, отправляя его адрес по линии SDA, а по линии SCL передаются тактовые импульсы, синхронизирующие обмен.
Распиновка на Arduino Nano
На Ардуино Нано (и на Uno) линии I2C жёстко привязаны к аналоговым входам:
- SDA — пин A4.
- SCL — пин A5.
Это важно помнить при подключении дисплея к Ардуино Нано или любого I2C-модуля. Если вы используете другие платы (например, Leonardo), распиновка может отличаться, но для Nano и Uno это стандарт.
Библиотека Wire и примеры
Для работы с I2C в Arduino IDE уже встроена библиотека Wire. Вам не нужно устанавливать её отдельно — достаточно подключить в начале скетча:
Основные функции библиотеки:
- Wire.begin() — инициализация шины (для ведущего).
- Wire.beginTransmission(address) — начало передачи данных устройству с указанным адресом.
-
Wire.write(data) — отправка байта данных.
-
Wire.endTransmission() — завершение передачи.
-
Wire.requestFrom(address, quantity) — запрос данных от ведомого устройства.
Что можно подключить по I2C
Благодаря всего двум проводам, к Ардуино Нано по I2C легко подключить:
-
Символьные дисплеи LCD 1602/2004 с переходником I2C.
-
Датчики температуры, влажности, давления (например, BME280).
-
Часы реального времени (RTC) — модули DS1307 или DS3231.
-
Модули памяти EEPROM.
Если Вы только начинаете обучение Ардуино с нуля, I2C — отличный выбор для первых проектов с дисплеем: схема подключения минимальна, а библиотека Wire берёт всю «черновую» работу на себя.
|