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

Материал из Онлайн справочника
Перейти к навигации Перейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Библиотека 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

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