귀하는 귀하의 컴퓨터에서 사용 가능한 입력 및 출력의 수를 확장하고 싶은 상황에 처했을 수도 있습니다. arduino 보드, 예상보다 많은 장치가 필요한 프로젝트를 수행하고 있기 때문입니다. 이러한 경우에 할 수 있는 일은 한 가지뿐입니다. 즉, 이러한 연결이 더 많이 포함된 더 높은 모델의 보드를 구입하는 것을 고려하는 것입니다. 하지만 지금은 PCF8574는 Arduino의 I/O를 확장할 수 있습니다. 쉽고 저렴한 방법으로.
여기에서는 PCF8574가 무엇인지 모르는 경우를 대비해 설명하고 Arduino 보드에 연결하는 방법을 단계별로 설명하고 작동 방식을 보여줍니다.
PCF8574는 무엇입니까?
El PCF8574 I2C1 버스용 디지털 입력 및 출력(I/O) 확장기입니다. Philips에서 제조한 이 장치를 사용하면 Arduino와 같은 프로세서를 연결하여 더 적은 수의 핀을 사용하여 더 많은 장치를 제어할 수 있습니다2. PCF8574는 오픈 드레인 구성의 CMOS 출력을 기반으로 하는 8개의 준지향성 핀을 통합합니다.
또한 PCF8574는 저전력 장치입니다. 2.5V~6V의 VCC 작동 지원. 이 제품은 8비트 유사 양방향 I/O 포트, 래치 출력, 오픈 드레인 인터럽트 출력 및 LED용 고전류 구동 기능을 갖추고 있습니다. 반면에 대기 소비전력은 10μA 미만으로 매우 낮습니다.
매우 유용합니다 Arduino 보드의 기능을 한계 이상으로 확장하세요., Arduino가 제공하는 것 이상의 기능이 필요한 제작자에게 큰 도움이 될 수 있습니다. 각 핀이 공급할 수 있는 최대 전류는 구성에 따라 다릅니다.
- 출력으로 동작할 때 싱크로 동작할 때, 즉 PCF25에 전류가 흐를 때 8574mA가 된다. 이것이 기본 구성입니다.
- 소스로 작동할 때, 즉 PCF300에서 전류가 흐를 때 8574μA입니다. 마찬가지로 모든 출력에는 래치가 있다는 점, 즉 레지스터에서 자체적으로 상태를 유지한다는 점을 알아야 합니다. 출력 중 하나의 상태를 수정하려는 경우에만 조치를 취하면 됩니다.
의사소통이 이루어진다 I2C 버스를 통해, 연결된 장치에서 데이터를 쉽게 얻을 수 있습니다. 마찬가지로 동일한 I3C 버스에 8개의 연결이 가능한 2개의 주소 핀이 있다는 점에 유의해야 합니다. 즉, 64개의 핀만으로 2개의 장치를 제어할 수 있다는 뜻이다.
주소 설정
이 PCF8574 모듈의 일부 모델에는 일반적으로 위 이미지에 표시된 것과 같은 구성 핀과 점퍼가 포함되어 있습니다. 반면에 다른 모델에는 XNUMX개의 마이크로 스위치로 작업을 더 쉽게 해주는 스위치가 포함되어 있습니다. 주소 구성 I/O 핀 수:
A0 | A1 | A2 | 주소 |
0 | 0 | 0 | 0 X 20 |
0 | 0 | 1 | 0 X 21 |
0 | 1 | 0 | 0 X 22 |
0 | 1 | 1 | 0 X 23 |
1 | 0 | 0 | 0 X 24 |
1 | 0 | 1 | 0 X 25 |
1 | 1 | 0 | 0 X 26 |
1 | 1 | 1 | 0 X 27 |
가격 및 구입처
단 몇 유로에 찾을 수 있습니다. 장치입니다 꽤 싸다 I/O 수가 적은 일부 Arduino 모델의 경우 얼마나 실용적일 수 있는지 알아보십시오. 따라서 PCF8574를 찾고 있다면 전문 매장이나 Amazon, Aliexpress 또는 eBay와 같은 대규모 온라인 플랫폼에서도 찾을 수 있습니다. 예를 들어 다음 중 하나를 권장합니다.
PCF8574를 Arduino에 연결하기
에 PCF8574 확장기를 Arduino 보드에 연결하고, 연결 다이어그램은 매우 간단합니다. 다음과 같이 연결하기만 하면 됩니다.
- PCF8574 보드에 표시된 SCL 핀을 Arduino의 SCL 핀에 연결합니다. 이 핀은 모델에 따라 변경될 수 있지만 일반적으로 UNO와 같은 더 인기 있는 모델의 A5에 있습니다.
- 확장기의 SDA 핀은 Arduino의 SDA 핀과 연결되어야 합니다. 위에서도 말씀드린 것과 같고, 기종에 따라 달라질 수 있으나 일반적으로 A4 입니다. 확실하지 않은 경우 모델의 핀아웃을 확인하십시오.
- PCF8574의 GND 핀은 물론 Arduino에 GND라고 표시된 핀, 즉 접지 연결에 연결됩니다.
- 확장기의 Vcc 핀은 Arduino의 5V에 연결됩니다. 이러한 방식으로 GND 및 Vcc를 사용하여 이미 확장기 보드에 전원을 공급하여 작동을 시작할 수 있습니다.
운전
PCF8574가 Arduino 보드에 연결되면 이제 알아야 할 시간입니다. 어떻게 작동하나요?. 이렇게 하려면 전원 핀 외에 8개의 Arduino 핀을 사용하는 대가로 8개의 추가 핀을 가질 수 있다는 점을 명심해야 합니다. 반면에 명심해야 할 점은 PCF8574의 100개 핀 각각에 매우 낮은 저항 풀업 저항과 함께 MOSFET 트랜지스터가 있다는 것입니다. 이는 트랜지스터가 활성 상태일 때 전류 강도가 XNUMXμA라고 가정합니다.
그러면 다음과 같은 파노라마가 남습니다.
- 출력으로 구성- 핀이 출력으로 사용되면 위에서 설명한 대로 전류 싱크 역할을 합니다. 즉, 전류가 유입됩니다.
- LOW: 저전압일 때 전류가 흐르지 않으며, 부하 = Vdd.
- HIGH: 고전압일 때 최대 25mA의 전류가 흐를 수 있으며 부하가 GND에 연결됩니다.
- 입력으로 구성: 항상 HIGH로 설정되어야 하며, 이 경우 소스, 즉 전류가 흘러나오는 역할을 하게 됩니다.
- 닫은: 외부 부하가 주어지지 않으면 핀의 전압이 GND로 이동합니다.
- 열기: 외부 부하가 발생하면 핀 전압이 Vdd가 됩니다.
아두이노 IDE 코드
원하는 것이 Arduino에서 이 PCF8574를 사용하기 위한 코드를 생성하는 방법에 대한 몇 가지 예라면 필요에 따라 수정할 수 있는 다음 코드 예제를 사용하는 것만큼 간단합니다.
- 출력으로 구성:
#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용으로 특별히 제작된 라이브러리 실제 사례도 포함되어 있습니다…