Не отступай и не сдавайся !!!
Ардуино, ESP32, ESP8266, LoRa. Обучение. Моделирование. Программирование под заказ.
Измерение и контроль параметров: температура, влажность, освещённость, давление, наличие напряжения, датчик движения, тревожная кнопка (дача, квартира, дом, цех, теплица, офис). Выдача измеренных параметров на персональную страницу в Интернете, на планшет, в смартфон. В случае выхода параметров за заданные границы - оповещение по электронной почте, sms.

Arduino/ESP32. Увеличение количества портов ввода-вывода на базе PCF8574.

Увеличение количества портов ввода-вывода на Arduino/ESP32 (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.
  • A2 - верхняя перемычка (подписана на плате). Правое положение пермычки переводит с состояние 0.

Ниже приведена таблица с адресами:

  • 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 и загружаем скетч в контроллер.



© 2000-2024 - 21/2/22 19:35
Хостинг нашего сайта осуществляется узлом www.cherepovets-city.ru