Arduino:Справочник языка Arduino/Библиотеки/Wire

Материал из Онлайн справочника
Версия от 16:30, 15 января 2017; Myagkij (обсуждение | вклад) (Замена текста — «{{#setlogo:ArduinoCommunityLogo.png}}» на « »)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Библиотека Wire[1]

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

Вот таблица, которая показывает, где TWI-контакты расположены на различных платах Arduino:

Плата Контакты I2C/TWI
Uno, Ethernet A4 (SDA), A5 (SCL)
Mega2560 20 (SDA), 21 (SCL)
Leonardo 2 (SDA), 3 (SCL)
Due 20 (SDA), 21 (SCL), SDA1, SCL1

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

Функции

Примечание

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

Примеры

  • Digital Potentiometer — Управление цифровым потенциометром AD5171 при помощи библиотеки Wire.
  • Master Reader / Slave Writer — При помощи I2C-коммуникации настраивает две (или более) платы Arduino таким образом, чтобы они делились информацией по принципу «ведущая плата считывает / ведомая плата отсылает».
  • Master Writer / Slave Reader — При помощи I2C-коммуникации настраивает две (или более) платы Arduino таким образом, чтобы они делились информацией по принципу «ведущая плата отсылает / ведомая плата считывает».
  • SFRRanger Reader — При помощи I2C-коммуникации считывает данные с ультразвукового дальномера Devantech SRFxx.

См.также

  1. Master Writer
  2. Master Reader
  3. SFR Ranger Reader
  4. Digital Potentiometer

Внешние ссылки