PCF8574: Arduino용 연결 핀 추가 확보

pcf8574

귀하는 귀하의 컴퓨터에서 사용 가능한 입력 및 출력의 수를 확장하고 싶은 상황에 처했을 수도 있습니다. arduino 보드, 예상보다 많은 장치가 필요한 프로젝트를 수행하고 있기 때문입니다. 이러한 경우에 할 수 있는 일은 한 가지뿐입니다. 즉, 이러한 연결이 더 많이 포함된 더 높은 모델의 보드를 구입하는 것을 고려하는 것입니다. 하지만 지금은 PCF8574는 Arduino의 I/O를 확장할 수 있습니다. 쉽고 저렴한 방법으로.

여기에서는 PCF8574가 무엇인지 모르는 경우를 대비해 설명하고 Arduino 보드에 연결하는 방법을 단계별로 설명하고 작동 방식을 보여줍니다.

PCF8574는 무엇입니까?

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 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용으로 특별히 제작된 라이브러리 실제 사례도 포함되어 있습니다…


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.