MCP23017 16-Bit I/O Expander I2C Interface

kr.45.00 inkl. moms

MCP23017 16-Bit I/O Expander I2C Interface. Tilføj op til 128 ekstra ind/udgange til dit projekt, via I2C forbindelsen.

På lager

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

MCP23017 16-Bit I/O Expander I2C Interface. Få flere ind/udgange til dit board, helt op til 128.

Kan tilsluttes sammen med:

Tekniske detaljer:

Power Supply: 1.8V ~ 5.5V
Supply Current: 1mA
Operational Current Max out of Vss: 150mA
Operational Current Max into Vdd: 25mA
Output current per pin: 25mA
Standby Current: 1uA
I2C address: 0x20 ~ 0x27

Max udgang: Der kan max programmeres 8 addresser (0x20 ~ 0x27), med i alt 16 ind/udgange. Det vil sige at du max kan tilføje 128 ind/udgange på dit board.

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 Adafruit-MCP23017

  • Download library (Download)
  • Udpak filer
  • Flyt/kopir mappen “Adafruit-MCP23017” 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 Adafruit-MCP23017 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.

Du skal bruge

Forbind sådan:

Forbind Pin 28 (MCP23017) til LED 1
Forbind Pin 25 (MCP23017) til LED 2
Forbind Pin 18 (MCP23017) til 5V (Arduino VDD)
Forbind pin 13 (MCP23017) til Analog 4 (Arduino – i2c data SDA)
Forbind pin 12 (MCP23017) til Analog 5 (Arduino – i2c data SCL)
Forbind Pin 10 (MCP23017) til GND (Arduino VSS)
Forbind Pin 9 (MCP23017) til 5V (Arduino VDD)
Forbind Pin 4 (MCP23017) til LED 3
Forbind Pin 1 (MCP23017) til Switch (GND)

Har du flere MCP23017 monteret, skal “SDA og SCL”bare sløjfes videre. (Max 8 stk.)

Kode

#include <Wire.h>
#include <Adafruit_MCP23017.h>

#define MCP_LED1 7      //A side (Pin 28 - GPA7)
#define MCP_INPUTPIN 8  //B side (Pin 1 - GPB0)
#define MCP_LEDTOG2 4   //A side (Pin 25 - GPA4)
#define MCP_LEDTOG1 11  //B side (Pin 4 - GPB3)


Adafruit_MCP23017 mcp; // chip 1
#define addr1 000 // 0x20 - A1 low, A2 low, A3 low- Se billede for info low = GND High = 5V

//Ved flere chip
//Adafruit_MCP23017 mcp2; // chip 2 
//#define addr2 001 // 0x21 - A1 low, A2 low, A3 high - Se billede for info
  
void setup() {  
  mcp.begin(addr1);      // Default device address 0

  mcp.pinMode(MCP_LEDTOG1, OUTPUT);  // Toggle LED 1
  mcp.pinMode(MCP_LEDTOG2, OUTPUT);  // Toggle LED 2
  
  mcp.pinMode(MCP_LED1, OUTPUT);     // LED output
  mcp.digitalWrite(MCP_LED1, HIGH);

  mcp.pinMode(MCP_INPUTPIN,INPUT);   // Button i/p to GND
  mcp.pullUp(MCP_INPUTPIN,HIGH);     // Puled high to ~100k
}

// Alternate LEDTOG1 and LEDTOG2.
// Transfer pin input to LED1.
void loop() {

  delay(300);

  mcp.digitalWrite(MCP_LEDTOG1, HIGH);
  mcp.digitalWrite(MCP_LEDTOG2, LOW);

  delay(300);

  mcp.digitalWrite(MCP_LEDTOG1, LOW);
  mcp.digitalWrite(MCP_LEDTOG2, HIGH);
  
  // Transfer input pin state to LED1
  if (mcp.digitalRead(MCP_INPUTPIN)) {
     mcp.digitalWrite(MCP_LED1,HIGH);
  } else {
     mcp.digitalWrite(MCP_LED1,LOW);
  }
  
}

Kode – 2 MCP23017 tilsluttet

#include <Wire.h>
#include <Adafruit_MCP23017.h>

#define MCP_LED1 7 //A side (Pin 28 - GPA7)
#define MCP_INPUTPIN 8 //B side (Pin 1 - GPB0)
#define MCP_LEDTOG2 4 //A side (Pin 25 - GPA4)
#define MCP_LEDTOG1 11 //B side (Pin 4 - GPB3)

#define MCP2_LEDTOG1 9 //B side (Pin 2 - GPB1)

Adafruit_MCP23017 mcp; // chip 1
#define addr1 000 // 0x20 - A1 low, A2 low, A3 low- Se billede for info low = GND High = 5V

Adafruit_MCP23017 mcp2; // chip 2
#define addr2 001 // 0x21 - A1 low, A2 low, A3 high - Se billede for info

void setup() {
mcp.begin(addr1); // Default device address 0
mcp.begin(addr2); //

mcp.pinMode(MCP_LEDTOG1, OUTPUT); // Toggle LED 1
mcp.pinMode(MCP_LEDTOG2, OUTPUT); // Toggle LED 2

mcp2.pinMode(MCP2_LEDTOG3, OUTPUT); // Toggle LED 3

mcp.pinMode(MCP_LED1, OUTPUT); // LED output
mcp.digitalWrite(MCP_LED1, HIGH);

mcp.pinMode(MCP_INPUTPIN,INPUT); // Button i/p to GND
mcp.pullUp(MCP_INPUTPIN,HIGH); // Puled high to ~100k
}

// Alternate LEDTOG1 and LEDTOG2.
// Transfer pin input to LED1.
void loop() {

delay(300);

mcp.digitalWrite(MCP_LEDTOG1, HIGH);
mcp.digitalWrite(MCP_LEDTOG2, LOW);

mcp2.digitalWrite(MCP2_LEDTOG3, LOW);

delay(300);

mcp.digitalWrite(MCP_LEDTOG1, LOW);
mcp.digitalWrite(MCP_LEDTOG2, HIGH);

mcp2.digitalWrite(MCP2_LEDTOG3, HIGH);

// Transfer input pin state to LED1
if (mcp.digitalRead(MCP_INPUTPIN)) {
mcp.digitalWrite(MCP_LED1,HIGH);
} else {
mcp.digitalWrite(MCP_LED1,LOW);
}

}

Download

Kontakt os

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

Yderligere information

Placering

A4.S1.1

Anmeldelser

Der er endnu ikke nogle anmeldelser.

Vær den første til at anmelde “MCP23017 16-Bit I/O Expander I2C Interface”

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