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!

Lascia un commento

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.