Get free delivery on all orders over £20!

Jak używać ekspandera we/wy PCF8575 z Arduino

How to Use the PCF8575 I/O Expander with Arduino

PCF8575 to 16-bitowy ekspander we/wy, który komunikuje się z mikrokontrolerem za pośrednictwem interfejsu I2C. Umożliwia zwiększenie liczby pinów wejściowych/wyjściowych na Arduino, dzięki czemu jest idealny do projektów wymagających wielu czujników, przycisków lub diod LED. Ten samouczek poprowadzi Cię przez podłączenie i korzystanie z PCF8575 z Arduino.


Czego będziesz potrzebować

  1. PCF8575 Moduł Expander
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Czujniki, przyciski lub diody LED do testowania
  4. Druty chleba i skoczków
  5. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie modułu PCF8575

PCF8575 zapewnia 16 dodatkowych pinów GPIO, które można skonfigurować jako wejścia lub wyjścia. Komunikuje się za pośrednictwem protokołu I2C i ma regulowany adres I2C do podłączania wielu modułów do tej samej magistrali.

Pinout

Szpilka Funkcjonować
VCC Zasilacz (3,3 V/5 V)
GND Grunt
SDA I2C Linia danych
Scl Linia zegara I2C
P0-P15 Pins I/O ogólny cel

Konfiguracja adresu I2C

  • Adres I2C jest określany przez szpilki A0, A1 i A2:
    • Wszystkie szpilki do GND: 0x20 (Domyślny adres)
    • Wszystkie szpilki do VCC: 0x27

Krok 2: Okablowanie PCF8575 do Arduino

Oto jak podłączyć PCF8575 z Arduino:

PCF8575 PIN PIN Arduino
VCC 5v
GND GND
SDA A4 (SDA)
Scl A5 (SCL)

Podłącz peryferyjne (np. LED lub przyciski) do szpilki P0-P15.

Notatka: W przypadku innych płyt Arduino upewnij się, że używasz odpowiednich pinów I2C.


Krok 3: Zainstaluj wymaganą bibliotekę

Aby uprościć pracę z PCF8575, zainstaluj bibliotekę „PCF8575”.

Kroki do zainstalowania:

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
  3. Wyszukaj „PCF8575” i kliknij Zainstalować.

Krok 4: Prześlij kod

Przykład: kontrolowanie diod LED

Ten kod pokazuje, jak włączać i wyłączać diody LED za pomocą PCF8575:

#include <Wire.h>
#include <PCF8575.h>

PCF8575 pcf8575(0x20); // Initialize with the default I2C address

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

  // Set all pins as outputs
  for (int i = 0; i < 16; i++) {
    pcf8575.pinMode(i, OUTPUT);
  }

  Serial.println("PCF8575 initialized.");
}

void loop() {
  // Turn all LEDs on
  for (int i = 0; i < 16; i++) {
    pcf8575.digitalWrite(i, HIGH);
  }
  delay(1000);

  // Turn all LEDs off
  for (int i = 0; i < 16; i++) {
    pcf8575.digitalWrite(i, LOW);
  }
  delay(1000);
}

Przykład: Czytanie przycisków

Ten kod pokazuje, jak odczytać wejście z przycisków podłączonych do PCF8575:

#include <Wire.h>
#include <PCF8575.h>

PCF8575 pcf8575(0x20); // Initialize with the default I2C address

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

  // Set all pins as inputs
  for (int i = 0; i < 16; i++) {
    pcf8575.pinMode(i, INPUT);
  }

  Serial.println("PCF8575 initialized.");
}

void loop() {
  for (int i = 0; i < 16; i++) {
    int state = pcf8575.digitalRead(i);
    Serial.print("Pin ");
    Serial.print(i);
    Serial.print(": ");
    Serial.println(state);
  }
  delay(500);
}

Krok 5: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Dla przykładu LED obserwuj diody LED włączające się i wyłączające. Dla przykładu przycisku stwierdza się przycisk Monitor w monitorze szeregowym.

Zastosowania PCF8575

  1. Rozszerzanie pinów GPIO dla projektów Arduino
  2. Budowanie złożonych macierzy LED
  3. Odczyt wielu czujników lub tablic przycisków
  4. Kontrolowanie przekaźników i siłowników

Rozwiązywanie problemów

  • Brak odpowiedzi z modułu: Sprawdź połączenia I2C i konfigurację adresu.
  • Niespójne odczyty: Zapewnij stabilny zasilacz i odpowiednie rezystory podciągające dla linii I2C.
  • Nieprawidłowe zachowanie PIN: Dwukrotnie sprawdź tryby PIN (wejście/wyjście) w kodzie.

Wniosek

Z powodzeniem połączyłeś Expander I/O PCF8575 z Arduino, umożliwiając kontrolę lub odczytanie z 16 dodatkowych pinów GPIO. Eksperymentuj z różnymi urządzeniami peryferyjnymi i rozszerz swoje projekty o ten wszechstronny moduł!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

2 uwagi

Hallo Bruce,

benutze das Library von Renzo Mischianti (kannste nach googlen uind dort auch runterladen) und benenne den Folder in “PCF8575” um. Das Repository von Rob Tillaart hat andere Befehle und passt nicht zu dem o.g. Beispiel.

Ich hoffe das bringt dich weiter.

Gruß

Jochen

Jochen,

I copy the code and get a coplilation error:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void setup()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:11:13: error: ‘class PCF8575’ has no member named ‘pinMode’
pcf8575.pinMode(i, INPUT);
^~~~~~~
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void loop()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:19:25: error: ‘class PCF8575’ has no member named ‘digitalRead’
int state = pcf8575.digitalRead(i);
^~~~~~~~~~~
exit status 1

Compilation error: ‘class PCF8575’ has no member named ‘pinMode’

Bruce Pedersen,

Zostaw komentarz