El PCF8575 es un expansor de E/S de 16 bits que se comunica con un microcontrolador a través de la interfaz I2C. Le permite expandir el número de pines de entrada/salida en su Arduino, lo que lo hace perfecto para proyectos que requieren muchos sensores, botones o LED. Este tutorial lo guiará a través de la conexión y el uso del PCF8575 con Arduino.
Lo que necesitarás
- PCF8575 Módulo de expansión de E/S
- Arduino Board (por ejemplo, Uno, Mega, Nano)
- Sensores, botones o LED para realizar pruebas
- Cables de placa y jersey
- Una computadora con el Arduino IDE instalado
Paso 1: Comprender el módulo PCF8575
El PCF8575 proporciona 16 pines GPIO adicionales que se pueden configurar como entradas o salidas. Se comunica a través del protocolo I2C y tiene una dirección I2C ajustable para conectar múltiples módulos al mismo bus.
Pinout
| Alfiler | Función |
|---|---|
| VCC | Fuente de alimentación (3.3V/5V) |
| Gnd | Suelo |
| SDA | Línea de datos I2C |
| SCL | Línea de reloj I2C |
| P0-P15 | Alfileres de E/S de propósito general |
Configuración de la dirección I2C
- La dirección I2C está determinada por los pines A0, A1 y A2:
- Todos los alfileres para GND:
0x20(dirección predeterminada) - Todos los pines a VCC:
0x27
- Todos los alfileres para GND:
Paso 2: Cableado el PCF8575 a Arduino
Aquí le mostramos cómo conectar el PCF8575 a un Arduino:
| Pin PCF8575 | Alfiler de arduino |
|---|---|
| VCC | 5V |
| Gnd | Gnd |
| SDA | A4 (SDA) |
| SCL | A5 (SCL) |
Conecte sus periféricos (por ejemplo, LED o botones) a los pines P0-P15.
Nota: Para otros tableros Arduino, asegúrese de usar los pines I2C correctos.
Paso 3: Instale la biblioteca requerida
Para simplificar el trabajo con el PCF8575, instale la biblioteca "PCF8575".
Pasos para instalar:
- Abra el IDE Arduino.
- Ir a Bosquejo > Incluir biblioteca > Administrar bibliotecas.
- Busque "PCF8575" y haga clic en Instalar.
Paso 4: cargar el código
Ejemplo: controladores de LED
Este código demuestra cómo activar y desactivar los LED usando el 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);
}
Ejemplo: Botones de lectura
Este código demuestra cómo leer la entrada de los botones conectados al 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);
}
Paso 5: prueba la configuración
- Conecte el Arduino a su computadora a través de USB.
- Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
- Sube el código al Arduino haciendo clic en Subir.
- Para el ejemplo de LED, observa los LED encendidos y apagados. Para el ejemplo del botón, los estados del botón de monitor en el monitor en serie.
Aplicaciones del PCF8575
- Expandir Pins GPIO para proyectos Arduino
- Construcción de matrices LED complejas
- Leer múltiples sensores o matrices de botones
- Controladores de relés y actuadores
Solución de problemas
- Sin respuesta del módulo: Verifique las conexiones I2C y la configuración de la dirección.
- Lecturas inconsistentes: Asegúrese de una fuente de alimentación estable y resistencias de pull-up adecuadas para las líneas I2C.
- Comportamiento incorrecto del PIN: Modos de pin de doble verificación (entrada/salida) en el código.
Conclusión
Has interactuado con éxito el expansor de E/S PCF8575 con Arduino, lo que le permite controlar o leer desde 16 pines GPIO adicionales. ¡Experimente con diferentes periféricos y expanda sus proyectos con este módulo versátil!





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