PCF8575 on 16-bittinen I/O-laajennus, joka kommunikoi mikrokontrollerin kanssa I2C-rajapinnan kautta. Sen avulla voit laajentaa Arduinon syöttö-/lähtötappien lukumäärää, mikä tekee siitä täydellisen projekteille, jotka vaativat monia antureita, painikkeita tai LED -levyjä. Tämä opetusohjelma opastaa sinua yhdistämällä ja käyttämällä PCF8575: tä Arduinon kanssa.
Mitä tarvitset
- PCF8575 I/O Expander -moduuli
- Arduino Board (esim. UNO, Mega, Nano)
- Anturit, painikkeet tai LEDit testattavaksi
- Leipälevy- ja hyppyjohdot
- Tietokone, jossa Arduino IDE on asennettu
Vaihe 1: PCF8575 -moduulin ymmärtäminen
PCF8575 tarjoaa 16 ylimääräistä GPIO -nastata, jotka voidaan konfiguroida tuloina tai lähdöinä. Se kommunikoi I2C -protokollan kautta ja siinä on säädettävä I2C -osoite useiden moduulien kytkemiseksi samaan väylään.
Pinot
| Nasta | Funktio |
|---|---|
| VCC | Virtalähde (3,3 V/5 V) |
| Hölynpöly | Pohja |
| SDA | I2C -datalinja |
| SCL | I2C -kellolinja |
| P0-P15 | Yleiskäyttöinen I/O -nastat |
I2C -osoitteen kokoonpano
- I2C -osoitteen määräävät A0-, A1- ja A2 -nastat:
- Kaikki nastat GND: lle:
0x20(Oletusosoite) - Kaikki nastat VCC: lle:
0x27
- Kaikki nastat GND: lle:
Vaihe 2: PCF8575: n johdotus Arduinolle
Näin yhdistetään PCF8575 Arduino:
| PCF8575 -nasta | Arduino -nasta |
|---|---|
| VCC | 5V |
| Hölynpöly | Hölynpöly |
| SDA | A4 (SDA) |
| SCL | A5 (SCL) |
Kytke oheislaitteet (esim. LEDit tai painikkeet) P0-P15-nastaihin.
Huomaa: Varmista muille Arduino -levyille, että käytät oikeita I2C -nastat.
Vaihe 3: Asenna vaadittu kirjasto
Asenna "PCF8575" -kirjasto yksinkertaistaaksesi työskentelyä PCF8575: n kanssa.
Asennettava vaiheet:
- Avaa Arduino IDE.
- Mennä jhk Luonnos > Sisällytä kirjasto > Hallitse kirjastoja.
- Etsi "PCF8575" ja napsauta Asentaa.
Vaihe 4: Lataa koodi
Esimerkki: LEDien hallinta
Tämä koodi osoittaa, kuinka LEDit kytketään päälle ja pois päältä PCF8575: n avulla:
#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);
}
Esimerkki: painikkeiden lukeminen
Tämä koodi osoittaa, kuinka tulon lukeminen PCF8575: een kytkettyjen painikkeista:
#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);
}
Vaihe 5: Testaa asennus
- Kytke Arduino tietokoneeseen USB: n kautta.
- Avaa Arduino IDE ja valitse oikea Hallitus ja Satama alla Työkalut valikko.
- Lataa koodi Arduinoon napsauttamalla Ladata.
- Tarkkaile LED -esimerkkiä, tarkkaile LEDit päälle ja pois päältä. Painikeksi -esimerkki -näyttely -painiketilat Sarjavalvonnassa.
PCF8575: n sovellukset
- GPIO -tapien laajentaminen Arduino -projekteille
- Rakennuskompleksin LED -matriisit
- Useiden anturien tai painikejärjestelmien lukeminen
- Releiden ja toimilaitteiden hallinta
Vianetsintä
- Ei vastausta moduulista: Varmista I2C -yhteydet ja osoitekonfiguraatiot.
- Epäjohdonmukaiset lukemat: Varmista vakaa virtalähde ja asianmukaiset vetovastukset I2C-linjoille.
- Virheellinen PIN -koodin käyttäytyminen: Kaksoiskick-nastatilat (tulo/lähtö) koodissa.
Johtopäätös
Olet onnistuneesti liitetty PCF8575 I/O -laajennukseen Arduinon kanssa, jolloin voit hallita tai lukea 16 ylimääräisestä GPIO -nastasta. Kokeile erilaisia oheislaitteita ja laajenna projektiasi tällä monipuolisella moduulilla!





2 kommentit
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’