Raspberry Pi:Библиотеки/WiringPi/Расширения/Подключение чипа PCF8574 (I2C)

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

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


Черновик


Подключение чипа PCF8574 (I2C)[1]

Библиотека WiringPi поддерживает расширительный модуль для чипа PCF8574 (8 бит), работающего через шину I2C и оснащающего плату Raspberry Pi дополнительными GPIO-контактами.

Raspberry Pi оснащена одной шиной I2C, а чип PCF8574 оснащен 3-битным адресным портом. Таким образом, в теории, вы можете подключить к Pi до восьми чипов PCF8574.

Порты PCF8574 называют «квазидвунаправленными», но WiringPi выполняет процедуру, которая превращает контакт из выходного (по умолчанию) во входной.

Подключение

#include <wiringPi.h>
#include <pcf8574.h>

Инициализация

pcf8574Setup (int pinBase, int i2cAddress) ;
  • Параметр pinBase – это виртуальный номер базового контакта, и его можно выставить на значение выше «64» (исходя из этого значения будут заданы номера для всех остальных контактов PCF8574).
  • Параметр i2cAddress – это адрес девайса на шине I2C, и по умолчанию здесь стоит «0x38», но если у вас несколько устройств, то значение может быть другим. Правильность адреса, используемого на шине I2C, можно проверить при помощи команды i2cdetect (если точнее, gpio i2cdetect).

Функцию pcf8574Setup() можно вызывать неограниченное количество раз – для каждого PCF8574, подключенного к системе. Просто укажите другие параметры pinBase и i2cAddress.

Количество контактов здесь указывать не нужно – PCF8574 оснащен 8 контактами.

Примечания

  • Перед использованием девайсов с шиной I2C вам нужно загрузить в ядро модули для I2C. Воспользуйтесь для этого следующей командой:
gpio load i2c
  • Чтобы проверить, видит ли Pi ваши девайсы, просканируйте шину I2C при помощи программы i2cdetect.
  • Если у вас Pi версии 1, используйте команду
i2cdetect -y 0

, а если версии 2, то команду

i2cdetect -y 1
  • Команда gpio поддерживает команду i2cdetect и автоматически подстраивается под версию платы. Просто впишите
gpio i2cd
  • Драйвер для PCF8574, имеющийся в библиотеке WiringPi, знает, какую версию платы вы используете, поэтому никаких мер предосторожности не нужно – ваш код будет работать на обеих версиях Pi.
  • Чип PCF8574 не оснащен программируемыми подтягивающими резисторами, но когда контакты находятся в режиме ввода данных, их подтягивающие резисторы работают.
  • Максимальная сила тока, которую может тянуть/отдавать один контакт, составляет 20 мА, однако суммарно чип может тянуть/отдавать не более 100 мА.

См.также

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