Get free delivery on all orders over £20!

Come utilizzare l'espansore I/O PCF8575 con Arduino

How to Use the PCF8575 I/O Expander with Arduino

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

  1. Modulo Expander PCF8575 I/O
  2. Arduino Board (ad es. Uno, Mega, Nano)
  3. Sensori, pulsanti o LED per il test
  4. Breadboard e fili jumper
  5. 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

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:

  1. Apri l'IDE Arduino.
  2. Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
  3. 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

  1. Collega l'Arduino al tuo computer tramite USB.
  2. Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
  3. Carica il codice su Arduino facendo clic Caricamento.
  4. 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

  1. Espandere i pin GPIO per i progetti Arduino
  2. Costruire matrici a LED complesse
  3. Leggendo più sensori o array di pulsanti
  4. 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!

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.

2 commenti

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

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’

Bruce Pedersen,

Lascia un commento