Arduino:Справочник языка Arduino/Библиотеки/Wire
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Библиотека 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().
Функции
- begin()
- requestFrom()
- beginTransmission()
- endTransmission()
- write()
- available()
- read()
- onReceive()
- onRequest()
Примечание
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.
См.также
- Master Writer
- Master Reader
- SFR Ranger Reader
- Digital Potentiometer