Wire

Описание

Эта библиотека позволяет обмениваться данными с устройствами I2C/TWI. На платах Arduino с компоновкой R3 (распиновка 1.0) SDA (линия данных) и SCL (линия тактового сигнала) расположены на пинах рядом с пином AREF. Arduino Due имеет два интерфейса I2C/TWI: SDA1 и SCL1 расположены рядом с пином AREF, а дополнительные — на пинах 20 и 21.

В таблице ниже приведены расположения пинов TWI на различных платах Arduino.

Плата

Пин SDA

Пин SCL

Uno, Ethernet

A4

A5

Mega2560

20

21

Leonardo

2

3

Due

20, SDA1

21, SCL1

Начиная с Arduino 1.0, библиотека наследует функции Stream, что делает её совместимой с другими библиотеками чтения/записи. Из-за этого send() и receive() были заменены на read() и write().

Примечание

На шине I2C существуют как 7-битные, так и 8-битные версии адресов. 7-битный адрес определяет устройство, а восьмой бит определяет направление записи или чтения. Библиотека Wire использует 7-битные адреса. Если у вас есть даташит или пример кода с 8-битным адресом, вам нужно убрать младший бит (т.е. сдвинуть значение на один бит вправо), получив адрес от 0 до 127.

Функции

Инициализация

  • Wire.begin()

  • Wire.end()

  • Wire.setClock()

Контроллер (Master)

  • Wire.requestFrom()

  • Wire.beginTransmission()

  • Wire.endTransmission()

Чтение и запись

  • Wire.write()

  • Wire.available()

  • Wire.read()

Обработчики событий

  • Wire.onReceive()

  • Wire.onRequest()

Конфигурация тайм-аута

  • Wire.setWireTimeout()

  • Wire.clearWireTimeoutFlag()

  • Wire.getWireTimeoutFlag()