입출력이 부족할 때 사용하기 좋습니다. 595, 164, 165칩 이용하는것 보다 PCF8574 이용하면 I2C 방식이라서 작업이 편합니다.
8개의 버튼과 8개의 LED가 있습니다.
하나의 칩이 8개의 input/output이 가능합니다. 8개의 칩 연결이 가능하니 총 64개의 입출력이 가능하네요.
#include "Arduino.h"
#include "PCF8574.h"
PCF8574 pcf1(0x20);
PCF8574 pcf2(0x24);
void setup() {
Serial.begin(9600);
pcf1.pinMode(P0, INPUT);
pcf1.pinMode(P1, INPUT);
pcf1.pinMode(P2, INPUT);
pcf1.pinMode(P3, INPUT);
pcf1.pinMode(P4, INPUT);
pcf1.pinMode(P5, INPUT);
pcf1.pinMode(P6, INPUT);
pcf1.pinMode(P7, INPUT);
pcf2.pinMode(P0, OUTPUT);
pcf2.pinMode(P1, OUTPUT);
pcf2.pinMode(P2, OUTPUT);
pcf2.pinMode(P3, OUTPUT);
pcf2.pinMode(P4, OUTPUT);
pcf2.pinMode(P5, OUTPUT);
pcf2.pinMode(P6, OUTPUT);
pcf2.pinMode(P7, OUTPUT);
pcf1.begin();
pcf2.begin();
}
void loop() {
pcf1.digitalRead(P0)==HIGH? pcf2.digitalWrite(P0, LOW) : pcf2.digitalWrite(P0, HIGH);
pcf1.digitalRead(P1)==HIGH? pcf2.digitalWrite(P1, LOW) : pcf2.digitalWrite(P1, HIGH);
pcf1.digitalRead(P2)==HIGH? pcf2.digitalWrite(P2, LOW) : pcf2.digitalWrite(P2, HIGH);
pcf1.digitalRead(P3)==HIGH? pcf2.digitalWrite(P3, LOW) : pcf2.digitalWrite(P3, HIGH);
pcf1.digitalRead(P4)==HIGH? pcf2.digitalWrite(P4, LOW) : pcf2.digitalWrite(P4, HIGH);
pcf1.digitalRead(P5)==HIGH? pcf2.digitalWrite(P5, LOW) : pcf2.digitalWrite(P5, HIGH);
pcf1.digitalRead(P6)==HIGH? pcf2.digitalWrite(P6, LOW) : pcf2.digitalWrite(P6, HIGH);
pcf1.digitalRead(P7)==HIGH? pcf2.digitalWrite(P7, LOW) : pcf2.digitalWrite(P7, HIGH);
delay(100);
}
'Arduino' 카테고리의 다른 글
RFID 카드 복사하기 (0) | 2019.07.11 |
---|---|
2N2222 NPN 트랜지스터 사용하기 (0) | 2019.06.22 |
로터리 엔코더 - Rotary Encoder (0) | 2019.05.31 |
SG90 서보 모터 테스트 (0) | 2019.05.23 |
1602 LCD 세트 완성 (0) | 2019.05.14 |