Модуль PCF8574 для увеличения доступных цифровых входов/выходов для шины I2C на микросхеме PCF8574T.
Характеристики:
- Количество выводов I/O: 8
- Количество выводов прерывания: 1 (с открытым стоком)
- Напряжение питания: 3.3 — 5.5 В
- Max ток вывода при состоянии HIGH: 300 мкА
- Max ток вывода при состоянии LOW: 25 мА
- Ток покоя: < 10 мкА
- Интерфейс: I2C (100 кГц)
- I2C адрес: 8 вариантов
Назначение выводов:
- VCC — 5V.
- GND — GND.
- P0..P7 — цифровые выходы/входы
- SDA — I2C А4.
- SCL — I2C А5.
- А0, А1, А2 — назначение адреса уст-ва
- INT — Прерывание инвертированный сигнал. Вы можете использовать его для обнаружения изменений на одном из цифровых входов.
Выбор адреса
A0 | A1 | A2 | адрес |
— | — | — | 0x20 |
+ | — | — | 0x21 |
— | + | — | 0x22 |
+ | + | — | 0x23 |
— | — | + | 0x24 |
+ | — | + | 0x25 |
— | + | + | 0x26 |
+ | + | + | 0x27 |
Чтение состояния портов
#include <Wire.h> #include <PCF8574.h> PCF8574 pcf; void setup(){ Serial.begin(9600); pcf.begin(0x20); pcf.pinMode(4, INPUT); } void loop(){ Serial.println(pcf.digitalRead(4)); delay(500); }
Чтение состояния портов с внутренним подтягивающим резистором
#include <Wire.h> #include <PCF8574.h> PCF8574 pcf; void setup(){ Serial.begin(9600); pcf.begin(0x20); pcf.pinMode(4,INPUT_PULLUP); } void loop(){ Serial.println(pcf.digitalRead(4)); delay(500); }
Запись состояния портов
#include <Wire.h> #include <PCF8574.h> PCF8574 pcf; void setup(){ Serial.begin(9600); pcf.begin(0x20); pcf.pinMode(4, OUTPUT); } void loop(){ pcf.digitalWrite(4,HIGH); delay(500); pcf.digitalWrite(4,LOW); delay(500); }
Библиотека — http://forum.rcl-radio.ru/misc.php?action=pan_download&item=600&download=1