Hur man använder PCF8575 I/O Expander med Arduino

How to Use the PCF8575 I/O Expander with Arduino

PCF8575 är en 16-bitars I/O-expander som kommunicerar med en mikrokontroller via I2C-gränssnittet. Det gör att du kan utöka antalet ingångs-/utgångsstift på din Arduino, vilket gör det perfekt för projekt som kräver många sensorer, knappar eller lysdioder. Denna handledning kommer att vägleda dig genom att ansluta och använda PCF8575 med Arduino.


Vad du behöver

  1. PCF8575 I/O Expander -modul
  2. Arduino Board (t.ex. Uno, Mega, Nano)
  3. Sensorer, knappar eller lysdioder för testning
  4. Breadboard och jumpertrådar
  5. En dator med Arduino Ide installerad

Steg 1: Förstå PCF8575 -modulen

PCF8575 tillhandahåller 16 ytterligare GPIO -stift som kan konfigureras som ingångar eller utgångar. Den kommunicerar via I2C -protokollet och har en justerbar I2C -adress för att ansluta flera moduler till samma buss.

Pinout

Stift Fungera
Vcc Strömförsörjning (3.3V/5V)
Gard Jord
SDA I2C -datalinjen
SCL I2c klocklinje
P0-p15 Allmänt syfte I/O -stift

I2c adresskonfiguration

  • I2C -adressen bestäms av A0-, A1- och A2 -stiften:
    • Alla stift till GND: 0x20 (Standardadress)
    • Alla stift till VCC: 0x27

Steg 2: Kopplar PCF8575 till Arduino

Så här ansluter du PCF8575 till en Arduino:

PCF8575 -stift Arduinosnål
Vcc 5V
Gard Gard
SDA A4 (SDA)
SCL A5 (SCL)

Anslut dina kringutrustning (t.ex. lysdioder eller knappar) till P0-P15-stiften.

Notera: För andra Arduino -kort, se till att du använder rätt I2C -stift.


Steg 3: Installera det nödvändiga biblioteket

För att förenkla arbetet med PCF8575, installera biblioteket "PCF8575".

Steg för att installera:

  1. Öppna Arduino IDE.
  2. Gå till Skiss > Inkludera bibliotek > Hantera bibliotek.
  3. Sök efter "PCF8575" och klicka Installera.

Steg 4: Ladda upp koden

Exempel: Styrande lysdioder

Den här koden visar hur man slår på och av med lysdioderna med 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);
}

Exempel: Läsningsknappar

Den här koden visar hur man läser inmatning från knappar anslutna till 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);
}

Steg 5: Testa installationen

  1. Anslut Arduino till din dator via USB.
  2. Öppna Arduino IDE och välj rätt Styrelse och Hamn under Verktyg meny.
  3. Ladda upp koden till Arduino genom att klicka Ladda upp.
  4. För LED -exemplet, observera lysdioder som slås på och av. För knappen Exempel anger Monitor -knappen i seriell monitor.

Applikationer av PCF8575

  1. Utöka GPIO -stift för Arduino -projekt
  2. Bygga komplexa LED -matriser
  3. Läser flera sensorer eller knappuppsättningar
  4. Kontrollerande reläer och ställdon

Felsökning

  • Inget svar från modulen: Kontrollera I2C -anslutningar och adresskonfiguration.
  • Inkonsekventa avläsningar: Se till att en stabil strömförsörjning och korrekt pull-up-motstånd för I2C-linjerna.
  • Fel stiftbeteende: Dubbelkontrollstiftlägen (ingång/utgång) i koden.

Slutsats

Du har framgångsrikt interfogat PCF8575 I/O Expander med Arduino, så att du kan kontrollera eller läsa från 16 ytterligare GPIO -stift. Experimentera med olika kringutrustning och utöka dina projekt med denna mångsidiga modul!

Lämna en kommentar

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.