Увеличение портов ввода-вывода на Arduino (PCF8574)

В этой статье рассмотрим модуль расширения портов на чипе PCF8574. С помощью которого можно увеличить количество портов ввода-вывода микроконтроллера на 8 штук (максимально 64), используя шину I2C, которая требует только 2 вывода.

Технические параметры 

► Микросхема: PCF8574;
► Напряжение питания: 3 — 5.5 В;
► Интерфейс: I2C;
► Количество портов GPIO: 8;
► Размеры: 55 x 15 x 12 мм;
► Вес: 5 грамм.

Обзор модуля PCF8574

Основная и единственная микросхема на модуле это PCF8574, которая является расширителем ввода-вывода с двухпроводным интерфейсом I2C. Данная микросхема позволяет увеличить количество портов на 8 штук, а если подключить несколько микросхем PCF8574, можно увеличить до 64 портов. Так же, на модуле установлены два подтягивающих резистора на 1 кОм, необходимые для работы шины I2C. Так же, микросхема PCF8574 используется в интерфейсном модуле LCD1602 и LCD2004.

Модуль содержит три разъема, назначение каждого вывода можно посмотреть ниже:

Четырех контактный разъем (дублируются)
Vcc — вывод питания 3 — 5.5 В;
GND — заземляющий вывод питания;
SDA — вывод данных I2C подключается к линии I2C;
SCL — вывод I2C, подключается к линии I2C микроконтроллера, рабочие напряжение 3 В или 5 В.

Девяти контактный разъем:
P0 — P7 — вывод входа выхода;
INT — прерывание инвертированный сигнал.

Смена адреса I2C
По умолчанию, на модуле установлен адрес 0x20, при необходимости его можно изменить, это позволяет подключать до восьми устройств. Для смен адреса, необходимо поменять перемычку на (A0-A2), которая подтягивает линии A0, A1, A2 к питанию или наоборот. Ниже приведена таблица с адресами:

A0 — 0 // A1 — 0 // A2 — 0 // — 0x20
A0 — 0 // A1 — 0 // A2 — 1 // — 0x21
A0 — 0 // A1 — 1 // A2 — 0 // — 0x22
A0 — 0 // A1 — 1 // A2 — 1 // — 0x23
A0 — 1 // A1 — 0 // A2 — 0 // — 0x24
A0 — 1 // A1 — 0 // A2 — 1 // — 0x25
A0 — 1 // A1 — 1 // A2 — 0 // — 0x26
A0 — 1 // A1 — 1 // A2 — 1 // — 0x27

Подключение модуля PCF8574 к Arduino

Необходимые детали:
► Arduino UNO x 1 шт.
► Модуль расширения портов ввода вывода на базе PCF 8574 x 1 шт.
► Провода DuPont M-F, 20 см x 1 шт.

Описание:
В примере покажу как подключить модуль PCF 8574 к Arduino. Так же приведу программу, которая будет включать светодиоды при нажатии кнопок.

Подключение.
Сначала подключить питание, выводы +5 В и GND (Arduino) подключаем к выводам Vcc и GND (PCF 8574), далее подключаем интерфейс I2C, выводы A4 и A5 (Arduino) подключаем к выводам SDA и SCL (PCF 8574). Теперь подключаем кнопки, вывода P0-P3 подключаем к кнопкам, а второй вывод от кнопок подключаем к GND. Далее подключаем светодиоды, вывода P4-P7 подключаем к светодиоду, второй вывод через резистор подключаем к 5В.

Установка библиотек:
Для работы с модулем необходимо установить библиотеку «PCF8574», для установки библиотеки, перейдите в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «PCF 8574», найдите библиотеку «PCF8574 library» и установите данную библиотеку.

Программа:
Теперь запускаем среду разработку Arduino IDE и загружаем скетч в контроллер.

 Скачать скетч

Описание скетча:
Скетч начинается с включения библиотеки PCF8574, далее создаем объект, для работы с модулем, в котором указываем адрес устройства 0x20.

В void setup(), инициализируем работу последовательного порта. Так же, указываем как работать с портами «pcf8574.pinMode(Px, INPUT)» — вход и «pcf8574.pinMode(P4, OUTPUT)» — выход. В конце функцией «pcf8574.begin()» инициализируем модуль, если инициализация прошла успешно программа продолжит работу, если нет то зациклится с ошибкой.

В void loop(), создаем переменные val0 — val3 и считываем значение с выводов.

Далее, идут четыре одинаковых блока, при нажатии кнопки P0-P3, включается светодиод P4-P7.

Ссылки
  Библиотека PCF8574 v.2.2.2

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Комплект проводов DuPont, 2,54 мм, 20 см
  Модуль расширения портов ввода вывода на базе PCF8574

Купить в Самаре и области
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Провода DuPont, 2,54 мм, 20 см
  Модуль расширения портов ввода вывода на базе PCF8574

Читайте также:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *