PCF8574: отримати більше з’єднувальних контактів для Arduino

pcf8574

Можливо, ви опинилися в ситуації, коли хотіли б розширити кількість входів і виходів, доступних для вас дошка arduino, оскільки ви виконуєте проект, який потребує більше пристроїв, ніж очікувалося. У цих випадках ви можете зробити тільки одне, а це подумати про покупку плати вищої моделі з більшою кількістю цих з'єднань. Але тепер с PCF8574 може розширити I/O Arduino простим і дешевим способом.

Тут ми покажемо вам, що таке PCF8574, якщо ви цього не знали, а також покажемо, як його можна підключити до вашої плати Arduino, покроково пояснивши, як це працює...

Що таке PCF8574?

pcf8574

El PCF8574 це розширювач цифрових входів і виходів (I/O) для шини I2C1. Цей пристрій, виготовлений компанією Philips, дозволяє підключати процесор, наприклад Arduino, для керування більшою кількістю пристроїв за допомогою меншої кількості контактів2. PCF8574 містить 8 квазінаправлених контактів на основі виходів CMOS у конфігурації з відкритим стоком.

Крім того, PCF8574 є малопотужним пристроєм, який підтримує роботу VCC від 2.5 В до 6 В. Він має 8-бітний квазі-двонаправлений порт вводу/виводу, фіксовані виходи, вихід переривання з відкритим стоком і здатність керувати великим струмом для світлодіодів. З іншого боку, його споживання в режимі очікування дуже низьке, менше 10 мкА.

Це дуже корисно для Розширте можливості вашої плати Arduino за її межі, що може стати великою підмогою для творців, яким потрібно щось більше, ніж те, що пропонує Arduino. Максимальний струм, який може забезпечити кожен контакт, залежатиме від конфігурації:

  • Коли він діє як вихід, він становить 25 мА, коли він діє як поглинач, тобто коли електричний струм тече до PCF8574. Це стандартна конфігурація.
  • Коли він діє як джерело, він становить 300 мкА, тобто коли струм тече від PCF8574. Так само ви повинні знати, що всі виходи мають засувки, тобто вони самі підтримують стан у реєстрі. Нам потрібно діяти лише тоді, коли ми хочемо змінити стан одного з виходів.

Відбувається спілкування через шину I2C, тому легко отримати дані з підключених до нього пристроїв. Крім того, слід зазначити, що він має 3 контакти адреси, що забезпечує 8 можливих підключень до однієї шини I2C. Це означає, що можна керувати 64 пристроями, використовуючи лише 2 контакти.

Налаштування адреси

Деякі моделі цього модуля PCF8574 зазвичай містять конфігураційні контакти та перемички, подібні до тих, що ви бачите на зображенні вище. З іншого боку, інші моделі містять перемикач, який полегшує роботу за допомогою трьох мікроперемикачів... Як би там не було, вони звикли налаштувати адреси контактів введення/виведення:

A0 A1 A2 Адреса
0 0 0 0x20
0 0 1 0x21
0 1 0 0x22
0 1 1 0x23
1 0 0 0x24
1 0 1 0x25
1 1 0 0x26
1 1 1 0x27

Ціна і де купити

Його можна знайти всього за кілька євро. Це пристрій досить дешево наскільки практичним це може бути для деяких моделей Arduino, які мають меншу кількість входів/виходів. Отже, якщо ви шукаєте PCF8574, ви можете знайти його в спеціалізованих магазинах або також на великих онлайн-платформах, таких як Amazon, Aliexpress або eBay. Наприклад, ми рекомендуємо один:

Підключення PCF8574 до Arduinno

в підключіть розширювач PCF8574 до вашої плати Arduino, Схема підключення досить проста. Вам потрібно лише підключити:

  • Штифт SCL, позначений на платі PCF8574, до контакту SCL Arduino. Цей штифт може змінюватися залежно від моделі, але зазвичай є на A5 на більш популярних моделях, таких як UNO.
  • Вивід SDA розширювача має з’єднатися з виводом SDA Arduino. Те саме, що я згадав вище, воно може змінюватися залежно від моделі, але загалом це A4. Якщо сумніваєтеся, перевірте цоколевку вашої моделі.
  • Вивід GND PCF8574, звичайно, буде підключений до контакту, позначеного GND на Arduino, тобто це з’єднання заземлення.
  • Вивід Vcc розширювача підключений до 5 В Arduino, таким чином, за допомогою GND і Vcc ми вже живимо плату розширювача, щоб вона могла почати працювати.

операція

Коли PCF8574 підключено до плати Arduino, настав час дізнатися як це працює. Для цього ви повинні мати на увазі, що ви зможете мати 8 додаткових контактів в обмін на використання двох контактів Arduino, на додаток до силових. З іншого боку, ви повинні мати на увазі дещо, а саме те, що на кожному з цих 8 контактів PCF8574 у вас є транзистор MOSFET разом із підтягуючим резистором із дуже низьким опором. Це передбачає інтенсивність струму 100 мікроА, коли транзистор активний.

І це залишає перед нами наступну панораму:

  • Конфігурація як вихід- Коли штифт використовується як вихід, він діє як струмоприймач, як я обговорював вище, тобто струм надходить.
    • LOW: при низькій напрузі він не проводить струм, навантаження = Vdd.
    • HIGH: коли при високій напрузі може проходити струм до 25 мА, навантаження буде підключено до GND.
  • Конфігурація як вхід: він завжди повинен бути встановлений на HIGH, і в цьому випадку він буде діяти як джерело, тобто струм витікає.
    • зачинено: Коли зовнішнє навантаження не подається, напруга на контакті переходить на GND.
    • відчинено: Коли виникає зовнішнє навантаження, напруга на контакті стає Vdd.

Код IDE Arduino

Arduino IDE, типи даних, програмування

Якщо вам потрібні кілька прикладів того, як створити код для використання PCF8574 на Arduino, це так само просто, як використати ці приклади коду, які ви можете змінити відповідно до своїх потреб:

  • Конфігурація як вихід:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  for (short channel = 0; channel < 8; channel++)
  {
    // Escribir dato en canal 'channel'
    Wire.beginTransmission(pcfAddress);
    Wire.write(~(1 << channel));
    Wire.endTransmission();
    
    // Leer dato de canal
    delay(500);
  }
}
  • Конфігурація як вхід:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  short channel = 1;
  byte value = 0;

  // Leer dato de canal 'channel'
  Wire.requestFrom(pcfAddress, 1 << channel);
  if (Wire.available())
  {
    value = Wire.read();
  }
  Wire.endTransmission();

  // Mostrar el valor por puerto serie
  Serial.println(value);
}

Пам’ятайте, що ви також можете використовувати бібліотека, створена спеціально для PCF8574 який також містить практичні приклади...


Будьте першим, щоб коментувати

Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.