Не отступай и не сдавайся !!!
Ардуино, ESP32, ESP8266, LoRa. Обучение. Моделирование. Программирование под заказ.
Измерение и контроль параметров: температура, влажность, освещённость, давление, наличие напряжения, датчик движения, тревожная кнопка (дача, квартира, дом, цех, теплица, офис). Выдача измеренных параметров на персональную страницу в Интернете, на планшет, в смартфон. В случае выхода параметров за заданные границы - оповещение по электронной почте, sms.

I2C (Wire)
интерфейс

Библиотека


Схема интерфейса I2C

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 берёт всю «черновую» работу на себя.


© 2000 - 2026
Хостинг нашего сайта осуществляется узлом www.cherepovets-city.ru