MCP23017 16-Bit I/O Expander I2C Interface. Få flere ind/udgange til dit board, helt op til 128.
Kan tilsluttes sammen med:
- Alle boards med SCK/SDA udgange (I2C)
- Arduino Boards
- NodeMcu/Wemos Boards
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.
Anmeldelser
Der er endnu ikke nogle anmeldelser.