A PCF8575 egy 16 bites I/O-expander, amely az I2C interfészen keresztül egy mikrovezérlővel kommunikál. Ez lehetővé teszi az Arduino bemeneti/kimeneti csapjainak számának kibővítését, így tökéletes a projektekhez, amelyek sok érzékelőt, gombot vagy LED -t igényelnek. Ez az oktatóanyag vezeti a PCF8575 csatlakoztatását és használatát az Arduino -val.
Mire lesz szüksége
- PCF8575 I/O Expander modul
- Arduino Board (például Uno, Mega, Nano)
- Érzékelők, gombok vagy LED -ek a teszteléshez
- Kenyérlemez és jumper vezetékek
- Egy számítógép, amelyen az Arduino IDE telepített
1. lépés: A PCF8575 modul megértése
A PCF8575 16 további GPIO -csapot biztosít, amelyeket bemenetekként vagy kimenetekként lehet konfigurálni. Az I2C protokollon keresztül kommunikál, és beállítható I2C -címmel rendelkezik, hogy több modult csatlakozzon ugyanazon buszhoz.
Poggyász
| Csap | Funkció |
|---|---|
| VCC | Tápegység (3,3 V/5 V) |
| GND | Föld |
| SDA | I2C adatsor |
| SCL | I2C óravonal |
| P0-P15 | Általános cél I/O csapok |
I2C címkonfiguráció
- Az I2C címet az A0, A1 és A2 csapok határozzák meg:
- Minden csap a GND -hez:
0x20(Alapértelmezett cím) - Minden csap a VCC -hez:
0x27
- Minden csap a GND -hez:
2. lépés: A PCF8575 vezetékesítése Arduino -ra
Így lehet csatlakoztatni a PCF8575 -et egy Arduino -hoz:
| PCF8575 PIN | Arduino Pin |
|---|---|
| VCC | 5 V -os |
| GND | GND |
| SDA | A4 (SDA) |
| SCL | A5 (SCL) |
Csatlakoztassa a perifériákat (például LED-eket vagy gombokat) a P0-P15 csapokhoz.
Jegyzet: Más Arduino táblákhoz győződjön meg arról, hogy a helyes I2C csapokat használja.
3. lépés: Telepítse a szükséges könyvtárat
A PCF8575 -mel való munka egyszerűsítéséhez telepítse a "PCF8575" könyvtárat.
A telepítéshez szükséges lépések:
- Nyissa meg az Arduino IDE -t.
- Elindul Vázlat > Tartalmazza a könyvtárat > Könyvtárak kezelése.
- Keresse meg a "PCF8575" -et, és kattintson Beilleszt.
4. lépés: Töltse fel a kódot
Példa: A LED -ek ellenőrzése
Ez a kód bemutatja, hogyan lehet be- és kikapcsolni a PCF8575 használatával:
#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);
}
Példa: A gombok olvasása
Ez a kód bemutatja, hogyan kell olvasni a bemenetet a PCF8575 -hez csatlakoztatott gombokból:
#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);
}
5. lépés: Tesztelje a beállítást
- Csatlakoztassa az Arduino -t a számítógépéhez USB -n keresztül.
- Nyissa meg az Arduino IDE -t, és válassza ki a megfelelőt Bizottság és Kikötő a Szerszámok menü.
- Töltse fel a kódot az Arduino -ba kattintással Feltöltés.
- A LED példaként megfigyelje a LED -eket, akik be- és kikapcsolnak. A gomb példájához a Monitor gomb állapota a soros monitorban.
A PCF8575 alkalmazásai
- GPIO -csapok kibővítése Arduino projektekhez
- Komplex LED mátrixok építése
- Több érzékelő vagy gomb tömb olvasása
- A relék és a szelepmozgatók vezérlése
Hibaelhárítás
- Nincs válasz a modulból: Ellenőrizze az I2C kapcsolatokat és a címkonfigurációt.
- Következetlen olvasmányok: Gondoskodjon az I2C vonalak stabil tápegységének és megfelelő húzódási ellenállásáról.
- Helytelen PIN -viselkedés: Duplán ellenőrizze a PIN-módokat (bemeneti/kimenetet) a kódban.
Következtetés
Sikeresen összekapcsolja a PCF8575 I/O Expander -t az Arduino -val, lehetővé téve, hogy irányítsa vagy olvassa el 16 további GPIO -csapot. Kísérletezzen különböző perifériákkal, és bővítse projektjeit ezzel a sokoldalú modullal!





2 megjegyzések
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
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’