Окт
26
2015
26
2015
Arduino /
PCF8574, как легко увеличить число пинов на Arduino
Чип 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 — Прерывание инвертированный сигнал. Вы можете использовать его для обнаружения изменений на одном из цифровых входов.
Нажатие кнопки
#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); }
Мигаем диодом
#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
#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() { }