Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Библиотеки/Wire

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

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

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


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

Это библиотека позволяет плате Arduino коммуницировать с устройствами, работающими через интерфейс 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

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

Примечание

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

Примеры

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

Функции

См.также

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

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

  1. Arduino.cc - Wire