|

Expander portów IO PCF8574 I2C

PCF8574 służy do rozszerzania liczby portów wejścia/wyjścia poprzez interfejs I2C.

Każdy z 8 pinów PCF8574 może być ustawiony jako wejście [1] lub wyjście[0].

Po uruchomieniu modułu piny przyjmują stan HIGH

Max. Prąd (sinking current) wynosi 25mA.

Dla stanu wysokiego prąd płynący z pinów wynosi maks. 300uA, a dla stanu niskiego 25mA. W związku z tym, elementy sterowane podłączane są anodą do zasilania 5V, a katodą do PCF8574 lub za pomocą tranzystora NPN.

Ekspandera używa się zazwyczaj w trybie sinking.

Pin nr 13 (Interrupt) zmienia stan z wysokiego na niski przy zmianie stanu któregokolwiek z pinów cyfrowych. Powinien być podłączony z pullup rezystorem.

Połączenie expandera PCF8574 z Arduino
Połączenie expandera PCF8574 z Arduino

Link do projektu tinkercad

PCF8574 pinout

Expander portów IO PCF8574 I2C pinout
Expander portów IO PCF8574 I2C pinout

Ustawienie adresu I2C PCF8574(a) / PCF8574A(b)

Expander portów IO PCF8574 I2C ustawienie adresu I2C
Expander portów IO PCF8574 I2C ustawienie adresu I2C

Pobieranie stanów pinów PCF8574

#include <Wire.h>
const int PCF8574_ADDR = 0x20;

void setup() {
  Wire.begin();
  Serial.begin(9600);
}

void loop() {
  Wire.requestFrom(PCF8574_ADDR, 1);
  if (Wire.available()) {
    byte data = Wire.read();
    Serial.println(data, BIN);
  }
  delay(500);
}

Wysyłanie danych do PCF88574

#include <Wire.h>
const int PCF8574_ADDR = 0x20;

void setup() {
  delay(1000);
  Wire.begin();
  Wire.beginTransmission(PCF8574_ADDR);
  Wire.write(0b01111111);  // Ustawienie ostatniego bitu na 0 (output)
  Wire.endTransmission();
}

void loop() {
}

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *