Hoe de PCF8575 I/O -expander te gebruiken met Arduino

How to Use the PCF8575 I/O Expander with Arduino

De PCF8575 is een 16-bit I/O-expander die communiceert met een microcontroller via de I2C-interface. Hiermee kunt u het aantal invoer-/uitvoerpennen op uw Arduino uitbreiden, waardoor het perfect is voor projecten die veel sensoren, knoppen of LED's vereisen. Deze zelfstudie zal u begeleiden door de PCF8575 te verbinden en te gebruiken met Arduino.


Wat u nodig hebt

  1. PCF8575 I/O -expandermodule
  2. Arduino Board (bijv. UNO, Mega, Nano)
  3. Sensoren, knoppen of LED's voor testen
  4. Breadboard en jumper draden
  5. Een computer met de Arduino Ide geïnstalleerd

Stap 1: Inzicht in de PCF8575 -module

De PCF8575 biedt 16 extra GPIO -pinnen die kunnen worden geconfigureerd als ingangen of uitgangen. Het communiceert via het I2C -protocol en heeft een verstelbaar I2C -adres voor het aansluiten van meerdere modules met dezelfde bus.

Uitspraken

Pin Functie
VCC Voeding (3.3V/5V)
GND Grond
SDA I2C -gegevenslijn
SCL I2c kloklijn
P0-P15 Algemene doel I/O -pinnen

I2C -adresconfiguratie

  • Het I2C -adres wordt bepaald door de A0-, A1- en A2 -pinnen:
    • Alle pinnen naar GND: 0x20 (Standaardadres)
    • Alle pinnen naar VCC: 0x27

Stap 2: De PCF8575 bedraden aan Arduino

Hier leest u hoe u de PCF8575 verbindt met een Arduino:

PCF8575 PIN Arduino Pin
VCC 5V
GND GND
SDA A4 (SDA)
SCL A5 (SCL)

Sluit uw randapparatuur (bijv. LED's of knoppen) aan op de P0-P15-pinnen.

Opmerking: Voor andere Arduino -boards, zorg ervoor dat u de juiste I2C -pennen gebruikt.


Stap 3: Installeer de vereiste bibliotheek

Installeer de "PCF8575" -bibliotheek om het werken met de PCF8575 te vereenvoudigen.

Stappen om te installeren:

  1. Open de Arduino Ide.
  2. Gaan naar Schetsen > Library innemen > Bibliotheken beheren.
  3. Zoek naar "PCF8575" en klik Installeren.

Stap 4: Upload de code

Voorbeeld: LED's beheersen

Deze code laat zien hoe u LED's kunt in- en uitschakelen met behulp van de 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);
}

Voorbeeld: knoppen lezen

Deze code laat zien hoe je invoer kunt lezen van knoppen die zijn verbonden met de 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);
}

Stap 5: Test de installatie

  1. Sluit de Arduino via USB aan op uw computer.
  2. Open de Arduino IDE en selecteer de juiste Bord En Haven onder de Hulpmiddelen menu.
  3. Upload de code naar de Arduino door te klikken Uploaden.
  4. Voor het LED -voorbeeld, observeer LED's in- en uitschakelen. Voor het knopvoorbeeld staat de monitorknop toe in de seriële monitor.

Toepassingen van de PCF8575

  1. GPIO -pins uitbreiden voor Arduino -projecten
  2. Building Complex LED -matrices
  3. Het lezen van meerdere sensoren of knooparrays
  4. Het beheersen van relais en actuatoren

Problemen oplossen

  • Geen reactie van de module: Controleer de I2C -verbindingen en adresconfiguratie.
  • Inconsistente lezingen: Zorg voor een stabiele voeding en de juiste pull-up weerstanden voor de I2C-lijnen.
  • Onjuiste pin -gedrag: PIN-modi met dubbele controles (invoer/uitvoer) in de code.

Conclusie

U hebt met succes de PCF8575 I/O -expander met Arduino gekoppeld, zodat u kunt besturen of lezen van 16 extra GPIO -pinnen. Experimenteer met verschillende randapparatuur en breid uw projecten uit met deze veelzijdige module!

Laat een reactie achter

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.