De PCF8575 is een 16-bit I/O-expander die communiceert met een microcontroller via de I2C-interface. Hiermee kunt u het aantal invoer-/uitvoerpennen op uw Arduino uitbreiden, waardoor het perfect is voor projecten die veel sensoren, knoppen of LED's vereisen. Deze zelfstudie zal u begeleiden door de PCF8575 te verbinden en te gebruiken met Arduino.
Wat u nodig hebt
- PCF8575 I/O -expandermodule
- Arduino Board (bijv. UNO, Mega, Nano)
- Sensoren, knoppen of LED's voor testen
- Breadboard en jumper draden
- Een computer met de Arduino Ide geïnstalleerd
Stap 1: Inzicht in de PCF8575 -module
De PCF8575 biedt 16 extra GPIO -pinnen die kunnen worden geconfigureerd als ingangen of uitgangen. Het communiceert via het I2C -protocol en heeft een verstelbaar I2C -adres voor het aansluiten van meerdere modules met dezelfde bus.
Uitspraken
| Pin | Functie |
|---|---|
| VCC | Voeding (3.3V/5V) |
| GND | Grond |
| SDA | I2C -gegevenslijn |
| SCL | I2c kloklijn |
| P0-P15 | Algemene doel I/O -pinnen |
I2C -adresconfiguratie
- Het I2C -adres wordt bepaald door de A0-, A1- en A2 -pinnen:
- Alle pinnen naar GND:
0x20(Standaardadres) - Alle pinnen naar VCC:
0x27
- Alle pinnen naar GND:
Stap 2: De PCF8575 bedraden aan Arduino
Hier leest u hoe u de PCF8575 verbindt met een Arduino:
| PCF8575 PIN | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 (SDA) |
| SCL | A5 (SCL) |
Sluit uw randapparatuur (bijv. LED's of knoppen) aan op de P0-P15-pinnen.
Opmerking: Voor andere Arduino -boards, zorg ervoor dat u de juiste I2C -pennen gebruikt.
Stap 3: Installeer de vereiste bibliotheek
Installeer de "PCF8575" -bibliotheek om het werken met de PCF8575 te vereenvoudigen.
Stappen om te installeren:
- Open de Arduino Ide.
- Gaan naar Schetsen > Library innemen > Bibliotheken beheren.
- Zoek naar "PCF8575" en klik Installeren.
Stap 4: Upload de code
Voorbeeld: LED's beheersen
Deze code laat zien hoe u LED's kunt in- en uitschakelen met behulp van de 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);
}
Voorbeeld: knoppen lezen
Deze code laat zien hoe je invoer kunt lezen van knoppen die zijn verbonden met de 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);
}
Stap 5: Test de installatie
- Sluit de Arduino via USB aan op uw computer.
- Open de Arduino IDE en selecteer de juiste Bord En Haven onder de Hulpmiddelen menu.
- Upload de code naar de Arduino door te klikken Uploaden.
- Voor het LED -voorbeeld, observeer LED's in- en uitschakelen. Voor het knopvoorbeeld staat de monitorknop toe in de seriële monitor.
Toepassingen van de PCF8575
- GPIO -pins uitbreiden voor Arduino -projecten
- Building Complex LED -matrices
- Het lezen van meerdere sensoren of knooparrays
- Het beheersen van relais en actuatoren
Problemen oplossen
- Geen reactie van de module: Controleer de I2C -verbindingen en adresconfiguratie.
- Inconsistente lezingen: Zorg voor een stabiele voeding en de juiste pull-up weerstanden voor de I2C-lijnen.
- Onjuiste pin -gedrag: PIN-modi met dubbele controles (invoer/uitvoer) in de code.
Conclusie
U hebt met succes de PCF8575 I/O -expander met Arduino gekoppeld, zodat u kunt besturen of lezen van 16 extra GPIO -pinnen. Experimenteer met verschillende randapparatuur en breid uw projecten uit met deze veelzijdige module!





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