PCF8575 16 Channel IO Expander I2C Module

kr.35.00 inkl. moms

PCF8575 16 Channel IO Expander I2C Module.

På lager

Varenummer (SKU): 2277 Kategori: Tags: , , , , ,

PCF8575 16 Channel IO Expander I2C Module. This 16-bit I/O expander for the two-line bidirectional bus (I2C) is designed for 2.5-V to 5.5-V VCCoperation. The PCF8575 device provides general-purpose remote I/O expansion for most microcontroller families by way of the I2C interface [serial clock (SCL), serial data (SDA)]. The device features a 16-bit quasi-bidirectional input/output (I/O) port (P07–P00, P17–P10), including latched outputs with high-current drive capability for directly driving LEDs. Each quasi-bidirectional I/O can be used as an input or output without the use of a data-direction control signal. At power on, the I/Os are high. In this mode, only a current source to VCC is active.

 

Tekniske detaljer:

  • Operating supply voltage from 4.5 to 5.5 V
  • Low standby current consumption of 10 µA maximum
  • I²C-bus to parallel port expander
  • 400 kbits/s FAST I²C-bus
  • Open-drain interrupt output
  • 16-bit remote I/O port for the I²C-bus
  • Compatible with most microcontrollers
  • I2C address: 0x20 ~ 0x27

Max udgang: Der kan max programmeres 8 adresser (0x20 ~ 0x27), med i alt 16 ind/udgange. Det vil sige at du max kan tilføje 128 ind/udgange på dit board.
Adresse: Modulet har som standard loddet A1 + A2 til GND som så giver den adressen “0x20

Kan tilsluttes sammen med:

Installere Arduino IDE Software

Før du kan starte din programmering skal Arduino’s IDE software hentes. Dette program bruges til at programmere din arduino.
Download fra dette link: Download

Installere PCF8575

  • Download library (Download)
  • Udpak filer
  • Flyt/kopir mappen “PCF8575” til  “libraries” som findes i “Arduino IDE” mappen (C:\Program Files (x86)\Arduino\libraries)
  • Åben Arduino IDE software og klik på “Sketch/Include library”
  • Klik nu på “Add Zip. library” og find Zip filen du lige har downloaded.
  • Åben “Manage” for at opdatere library.
  • Luk, og åben Arduino IDE programmet. (Genstart programmet)
  • Nu er PCF8575 Library installeret

Programmering

Inden programmeringen kan udføres skal den rigtige “COM” port findes. Klik “Værktøj/Port” – og vælg COM port.

Eksempel

Her viser vi et hurtig eksempel på hvordan du kan styre ind/udgangene, dette eksempel gør at de 2 LED blinker og LED 3 stopper med at lyse når der trykkes på knappen (Knappen er ikke vist).

Du skal bruge

Forbind sådan:

Forbind Analog 4 (Arduino) – SDA (Modulet)
Forbind Analog 5 (Arduino) – SCL (Modulet)
Forbind 5V (Arduino) – VCC (Modulet)
Forbind GND (Arduino) – GND (Modulet)

Forbind P00 (Modulet) – LED 1 (5V+)
Forbind P01 (Modulet) – LED 2 (5V+)
Forbind P02 (Modulet) – LED 3 (5V+)

Hvis der skal en knap på til at styre LED 3 skal den forbindes mellem VCC og P03.

Find adressen på modulet

Modulet har en I2C adresse, den skal findes før modulet kan vise noget. Dette kan gøres med denne kode. Adressen indsættes i koden som vises længere mede. – Standart er 0x20, men se billede for at lave en adresse med jumperne på modulet. Skal der flere modulet på skal lodningerne bag modulet ændres.

 

kode: (I2C Scanner)

#include <Wire.h> 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);             //  wait for serial monitor
  Serial.println("nI2C Scanner");
}
 
 
void loop()
{
  byte error, address;
  int nDevices;
 
  Serial.println("Scanning...");
 
  nDevices = 0;
  for(address = 1; address < 127; address++ )
  {
    // The i2c_scanner uses the return value of
    // the Write.endTransmisstion to see if
    // a device did acknowledge to the address.
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
 
    if (error == 0)
    {
      Serial.print("I2C device found at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.print(address,HEX);
      Serial.println("  !");
 
      nDevices++;
    }
    else if (error==4)
    {
      Serial.print("Unknown error at address 0x");
      if (address<16)
        Serial.print("0");
      Serial.println(address,HEX);
    }    
  }
  if (nDevices == 0)
    Serial.println("No I2C devices foundn");
  else
    Serial.println("donen");
 
  delay(5000);           // wait 5 seconds for next scan
}

 

Kode (Stand alone)

#include <Wire.h>
#include "PCF8575.h"

PCF8575 expander(0x20); // 0x20 - A1 low, A2 low, A3 low- Se billede for info low = GND High = 5V

void setup() {

//LED
expander.pinMode(0, OUTPUT);
expander.pinMode(1, OUTPUT);
expander.pinMode(2, OUTPUT);

//Knap
expander.pinMode(3, INPUT);
}

void loop() {

expander.digitalWrite(0, HIGH);
expander.digitalWrite(1, LOW);
delay(100);

expander.digitalWrite(0, LOW);
expander.digitalWrite(1, HIGH);
delay(300); // задержка 1с

int p1Digital = expander.digitalRead(3); // read P1

//Button ON
if (p1Digital == 1 ) {

expander.digitalWrite(2, HIGH);

}

//Button OFF
if (p1Digital == 0 ) {

expander.digitalWrite(2, LOW);

}

int di = expander.digitalRead(3);
Serial.print("READ VALUE FROM PCF P1: ");
Serial.println(di);

}

Kode (2 Moduler)

#include <Wire.h>
#include "PCF8575.h"

PCF8575 expander(0x20); // 0x20 - A0 low, A1 low, A2 low- Se billede for info low = GND High = 5V
PCF8575 expander2(0x21); // 0x20 - A0 high, A1 low, A2 low- Se billede for info low = GND High = 5V

void setup() {
Serial.begin(115200);

//LED modul 1
expander.pinMode(0, OUTPUT);
expander.pinMode(1, OUTPUT);
expander.pinMode(2, OUTPUT);

//LED modul 2
expander2.pinMode(0, OUTPUT);
expander2.pinMode(1, OUTPUT);
expander2.pinMode(2, OUTPUT);

//Knap
expander.pinMode(3, INPUT);
expander.pinMode(3, INPUT);

}

void loop() {

expander.digitalWrite(0, HIGH);
expander.digitalWrite(1, LOW);
expander2.digitalWrite(0, HIGH);
expander2.digitalWrite(1, LOW);
delay(100);

expander.digitalWrite(0, LOW);
expander.digitalWrite(1, HIGH);
expander2.digitalWrite(0, LOW);
expander2.digitalWrite(1, HIGH);
delay(300); // задержка 1с

int p3Digital = expander.digitalRead(3); // read P3
int p3Digital2 = expander2.digitalRead(3); // read P3

//Button ON (Modul 1)
if (p3Digital == 1 ) {
expander.digitalWrite(2, HIGH);
}

//Button OFF (Modul 1)
if (p3Digital == 0 ) {
expander.digitalWrite(2, LOW);
}

//Button ON (Modul 2)
if (p3Digital2 == 1 ) {
expander2.digitalWrite(2, HIGH);
}

//Button OFF (Modul 1)
if (p3Digital2 == 0 ) {
expander2.digitalWrite(2, LOW);
}

//Tjek status på modul 1 i serial monitoren

int di = expander.digitalRead(3);
Serial.print("READ VALUE FROM PCF P1: ");
Serial.println(di);

}

 

Download

Kontakt os

Du er altid velkommen til at kontakte os på info@ardustore.dk, og vi vil hjælpe dig.

Anmeldelser

Der er endnu ikke nogle anmeldelser.

Vær den første til at anmelde “PCF8575 16 Channel IO Expander I2C Module”

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *