Il PCF8575 è un espansore I/O a 16 bit che comunica con un microcontrollore tramite l'interfaccia I2C. Ti consente di espandere il numero di pin di input/output sul tuo Arduino, rendendolo perfetto per i progetti che richiedono molti sensori, pulsanti o LED. Questo tutorial ti guiderà attraverso la connessione e l'utilizzo del PCF8575 con Arduino.
Cosa avrai bisogno
- Modulo Expander PCF8575 I/O
- Arduino Board (ad es. Uno, Mega, Nano)
- Sensori, pulsanti o LED per il test
- Breadboard e fili jumper
- Un computer con l'IDE Arduino installato
Passaggio 1: comprensione del modulo PCF8575
PCF8575 fornisce 16 pin GPIO aggiuntivi che possono essere configurati come ingressi o uscite. Comunica tramite il protocollo I2C e ha un indirizzo I2C regolabile per collegare più moduli allo stesso bus.
Pinout
Spillo | Funzione |
---|---|
VCC | Alimentazione (3.3V/5V) |
GND | Terra |
SDA | Linea di dati I2C |
SCL | Linea di orologio i2c |
P0-P15 | Pinni per scopi generici I/O |
Configurazione dell'indirizzo I2C
- L'indirizzo I2C è determinato dai pin A0, A1 e A2:
- Tutti i pin a GND:
0x20
(indirizzo predefinito) - Tutti i pin a VCC:
0x27
- Tutti i pin a GND:
Passaggio 2: Cablaggio del PCF8575 ad Arduino
Ecco come collegare il PCF8575 a un Arduino:
PIN PCF8575 | Arduino Pin |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
Collegare le tue periferiche (ad es. LED o pulsanti) ai pin P0-P15.
Nota: Per altre schede Arduino, assicurati di utilizzare i pin i2C corretti.
Passaggio 3: installare la libreria richiesta
Per semplificare il lavoro con PCF8575, installare la libreria "PCF8575".
Passi da installare:
- Apri l'IDE Arduino.
- Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
- Cerca "PCF8575" e fai clic su Installare.
Passaggio 4: caricare il codice
Esempio: controllo dei LED
Questo codice dimostra come attivare e disattivare i LED utilizzando 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);
}
Esempio: pulsanti di lettura
Questo codice dimostra come leggere l'input dai pulsanti connessi a 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);
}
Passaggio 5: testare l'installazione
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice su Arduino facendo clic Caricamento.
- Per l'esempio a LED, osservare i LED accese e spegnere. Per l'esempio del pulsante, gli stati del pulsante di monitoraggio nel monitor seriale.
Applicazioni del PCF8575
- Espandere i pin GPIO per i progetti Arduino
- Costruire matrici a LED complesse
- Leggendo più sensori o array di pulsanti
- Controllo di relè e attuatori
Risoluzione dei problemi
- Nessuna risposta dal modulo: Verifica le connessioni I2C e la configurazione dell'indirizzo.
- Letture incoerenti: Garantire un alimentatore stabile e resistori di pull-up adeguati per le linee I2C.
- Comportamento del pin errato: Modalità PIN a doppio controllo (input/output) nel codice.
Conclusione
Hai interfacciato con successo l'espansore I/O PCF8575 con Arduino, permettendoti di controllare o leggere da 16 pin GPIO aggiuntivi. Sperimenta periferiche diverse ed espandi i tuoi progetti con questo modulo versatile!