2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
PCA9536 - это 8-контактное устройство CMOS, которое обеспечивает 4-битное расширение универсального параллельного ввода / вывода (GPIO) для приложений с шиной I2C / SMBus. Он состоит из 4-битного регистра конфигурации, служащего для выбора входа или выхода, 4-битного регистра порта ввода, 4-битного регистра порта вывода и 4-битного регистра инверсии полярности, активного HIGH или активного LOW. Вот его демонстрация с Raspberry Pi с использованием кода Python.
Шаг 1: Что вам нужно..
1. Raspberry Pi
2. PCA9536
3. Кабель I²C
4. I²C Shield для Raspberry Pi
5. Кабель Ethernet.
Шаг 2: Подключения:
Возьмите щит I2C для raspberry pi и осторожно наденьте его на контакты gpio raspberry pi.
Затем подключите один конец кабеля I2C к датчику PCA9536, а другой конец - к экрану I2C.
Также подключите кабель Ethernet к Pi, или вы можете использовать модуль Wi-Fi.
Подключения показаны на картинке выше.
Шаг 3: Код:
Код Python для PCA9536 можно загрузить из нашего репозитория github - DCUBE Store.
Вот ссылка
Мы использовали библиотеку SMBus для кода Python, шаги по установке SMBus на Raspberry Pi описаны здесь:
pypi.python.org/pypi/smbus-cffi/0.5.1
Вы также можете скопировать код отсюда, он выглядит следующим образом:
# Распространяется по свободной лицензии.
# Используйте его как хотите, для получения прибыли или бесплатно, при условии, что он соответствует лицензиям на связанные с ним работы.
# PCA9536
# Этот код предназначен для работы с мини-модулем PCA9536_I2CIO I2C #
импортировать smbus
время импорта
# Получить шину I2C
автобус = smbus. SMBus (1)
# Адрес PCA9536, 0x41 (65)
# Выбрать регистр конфигурации, 0x03 (03)
# 0xFF (255) Все выводы настроены как входы
bus.write_byte_data (0x41, 0x03, 0xFF)
# Вывод на экран
print "Состояние всех контактов ВЫСОКОЕ"
time.sleep (0,5)
# Адрес PCA9536, 0x41 (65)
# Считать данные обратно из 0x00 (00), 1 байт
данные = bus.read_byte_data (0x41, 0x00)
# Преобразовать данные в 4-битные
данные = (данные & 0x0F)
для i в диапазоне (0, 4):
если (данные & (2 ** i)) == 0:
print "I / O Pin% d State is LOW"% i
еще:
print "I / O Pin% d State is HIGH"% i
time.sleep (0,5)
Шаг 4: Приложения:
PCA9536 может использоваться как расширитель ввода / вывода. Это простое решение, когда требуется дополнительный ввод / вывод. Обычно он используется в системах, которые требуют расширения для включения переключателей питания ACPI, датчиков, кнопок, светодиодов, вентиляторов и т. Д.