Adatum
Окт
26
2015

PCF8574, как легко увеличить число пинов на Arduino

pcf8574

Чип PCF8574

PCF8574 Expander Library Скачать

Vcc — контактный блок питания подключается к контакту Arduino 5V.
GND — мощность контактом заземления на Arduino подключен к GND.
P0..P7 — Цифровые контакты для использования.
SDA — сигнал данных I2C подключен к Arduino в аналоговый 4.
SCL — I2C тактовый сигнал подключен к Arduino в аналоговый 5.
А0, А1, А2 — Выберите систему адрес, если вы используете одну систему, все может быть подключен к GND.
INT — Прерывание инвертированный сигнал. Вы можете использовать его для обнаружения изменений на одном из цифровых входов.

55
pcf8574_bb
Нажатие кнопки
pcf8574_pullup

#include <PCF8574.h>
#include <Wire.h>

PCF8574 expander;

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

  expander.begin(0x20);
  expander.pinMode(4, INPUT);
  expander.pullDown(4);
}

void loop()
{
  byte value = expander.digitalRead(4);

  Serial.println(value, DEC);
  delay(100);
}

а теперь наоборот

#include <PCF8574.h>
#include <Wire.h>

PCF8574 expander;

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

  expander.begin(0x20);
  expander.pinMode(4, INPUT);
  expander.pullUp(4);
}

void loop()
{
  byte value = expander.digitalRead(4);

  Serial.println(value, DEC);
  delay(100);
}

Мигаем диодом
pcf8574_led

#include <PCF8574.h>
#include <Wire.h>

PCF8574 expander;

void setup()
{
  expander.begin(0x20);
  expander.pinMode(4, OUTPUT);
}

void loop()
{
  expander.digitalWrite(4, LOW);
  delay(1000);
  expander.digitalWrite(4, HIGH);
  delay(1000);
}

Подключение нескольких PCF8574
pcf8574_dbl

#include <PCF8574.h>
#include <Wire.h>

PCF8574 expander1;
PCF8574 expander2;

void onInterrupt()
{
  expander1.checkForInterrupt();
  expander2.checkForInterrupt();
}

void setup()
{

  expander1.begin(0x20);
  expander2.begin(0x21);

  pinMode(2, INPUT);
  digitalWrite(2, HIGH);

  expander1.enableInterrupt(2, onInterrupt);
}

void loop()
{
}

Оставить комментарий

  • Ага. Этот сдвинговый регистр вешается на аналоговые входы, а HC595 — на цифровые.
    Интересно.
    Взял на заметку.

  • как подписаться на обновления, кроме rss, где подписка на почту?