☰ Оглавление

Wire

Библиотека Wire

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

Расположение выводов TWI на тех или иных платах Ардуино для наглядности сведено в таблицу:

АрдуиноВыводы I2C / TWI
Uno, EthernetA4 (SDA), A5 (SCL)
Mega256020 (SDA), 21 (SCL)
Leonardo2 (SDA), 3 (SCL)
Due20 (SDA), 21 (SCL), SDA1, SCL1

Начиная с версии языка Arduino 1.0, библиотека Wire наследует функции класса Stream, что позволяет ей быть совместимой с другими библиотеками, осуществляющими запись и чтение данных. Поэтому, методы send() и receive() были заменены методами read() и write().

Примечание

Согласно протоколу I2C, адрес устройства может состоять как из 7, так и из 8 бит. Как правило, 7 бит идентифицируют устройство, в то время, как восьмой бит задает направление передачи данных: от устройства (чтение) или к нему (запись). Все функции библиотеки Wire используют 7-битную адресацию. Поэтому, при работе с устройством, использующим 8-битную адресацию, вам придется отбрасывать младший бит (например, сдвигая значение на один бит вправо), тем самым ограничивая диапазон возможных адресов в пределах 0 - 127.

Функции

  • begin()
  • requestFrom()
  • beginTransmission()
  • endTransmission()
  • write()
  • available()
  • read()
  • onReceive()
  • onRequest()
×