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:
- Alle boards med SCK/SDA udgange (I2C)
- Arduino Boards
- NodeMcu/Wemos Boards
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.