MCP23017 16 bites I2C I/O expander modul CJMCU-2317
zoom_out_map
chevron_left chevron_right

A termékfotók tájékoztató jellegűek, és a gyártási tételtől és a beszállítótól függően kisebb eltéréseket mutathatnak. A termék specifikációi és árai előzetes értesítés nélkül változhatnak. Mindent megteszünk, hogy a lehető legpontosabb és leghitelesebb specifikációkat adjuk meg a termékoldalon, de lehetséges, hogy ezek nem teljesen helyesek. Ha ilyen esetet észlel, kérjük, jelentse nekünk.

A termék szakemberek számára készült, és használatához képzett, valamint felhatalmazott személyzet szükséges. A termék nem tartalmaz összeszerelési/használati útmutatót . A termék nem megfelelő képesítéssel rendelkező személyek általi üzembe helyezése a weboldalon található Általános Szerződési Feltételek értelmében a jótállás elvesztését eredményezi.

A megadott műszaki adatok (áram, teljesítmény stb.) ideális működési körülmények között érvényes maximális értékeket jelentenek. A biztonságos használat és az optimális élettartam érdekében javasolt a terméket folyamatos üzemben legfeljebb a megadott maximális értékek 50%-án használni.

Új

MCP23017 16 bites I2C CJMCU-2317 I/O bővítő modul

A MCP23017 CJMCU-2317 bővítőmodul 16 digitális bemeneti/kimeneti lábat ad egy fejlesztőpanelhez I2C-n keresztül, A0-A2 által konfigurálható címmel akár 8 modul számára ugyanazon a buszon, két megszakítási kimenettel INTA és INTB, minden lábon belső felhúzóval, valamint Arduino, ESP32, STM32 és Raspberry Pi kompatibilitással; ideális relékhez, LED-ekhez, gombokhoz és sok bemenettel vagy kimenettel rendelkező panelekhez.

1 751,37 Ft Adóval együtt

1 447,41 Ft Áfa nélkül

There are no reviews yet.
1-2 zile
check In Stoc

Shipping by csütörtök 22 október

A termék megvásárlásával jár 87,57 Ft hűségpont.

Jótállás: 24 hónap magánszemélyeknek
NEMZETKÖZI SZÁLLÍTÁS
Nemzetközi gyors szállítás az EU-n belül. Ingyenes szállítás 100 EUR feletti megrendelések esetén a legtöbb EU-országban.
GYORS KISZÁLLÍTÁS 24 ÓRÁN BELÜL
24 órán belül szállítunk raktárunkból
HŰSÉGPONTOK
Minden rendelés után pontokat kap, a rendelés értékének 5%-ában.

A MCP23017 CJMCU-2317 kiterjesztő modul 16 digitális bemeneti/kimeneti lábat ad hozzá egy fejlesztőpanelhez I2C interfészen keresztül, az MCP23017 áramkört két sor tüskesorral kombinálva a gyors breadboardos szereléshez. Akkor hasznos, amikor a mikrovezérlő GPIO-lábainak száma nem elegendő, például több relé, LED, LED-kijelzős megoldás, gomb vagy kapcsoló vezérléséhez, illetve nagyszámú digitális bemenet olvasásához.

Az MCP23017 chip egy 16 bites I2C kiterjesztő, amely két, egyenként 8 lábú portra van szervezve, GPA0 - GPA7 és GPB0 - GPB7, és minden láb külön-külön bemenetként vagy kimenetként konfigurálható, továbbá 100 kOhm-os belső felhúzó ellenállással rendelkezik, amely szoftverből aktiválható. A kommunikáció 100 kHz, 400 kHz vagy 1.7 MHz sebességű I2C interfészt használ, a buszcím pedig az A0, A1 és A2 lábak alapján állítható be, így 8 lehetséges cím adódik 0x20 és 0x27 között, és akár 8 azonos modul is csatlakoztatható ugyanarra az SDA/SCL párra. A modul két programozható INTA és INTB megszakításkimenettel rendelkezik, amelyek automatikusan létrejönnek, amikor egy bemenet állapota megváltozik, van egy bemeneti logika invertálására szolgáló polaritásregisztere, valamint egy belső resetáramköre is tápfeszültség-ráadáskor.

A fő jellemzők közé tartozik az SOIC tokozású MCP23017 áramkör, az I2C vonalakhoz integrált pull-up ellenállás-hálózat, a tápellátást, vezérlést és a 16 I/O csatornát összefogó két tüskesor, valamint a NYÁK-on lévő rögzítőfuratok; a tápellátás közvetlenül a modul VCC és GND lábain keresztül történik.

I2C interfészen keresztül a modul kompatibilis Arduino, ESP32, STM32, Raspberry Pi és bármely más olyan fejlesztőpanellel vagy mikrovezérlővel, amely rendelkezik SDA és SCL lábakkal.

 

Specifikációk:

Tápfeszültség: 3.3 - 5.5 VDC

Nyugalmi áram: 1 uA (max.)

Chip: MCP23017

Interfész: I2C (IIC)

I/O lábak száma: 16 (2 port x 8, GPA0 - GPA7 és GPB0 - GPB7)

I2C frekvencia: akár 1.7 MHz (100 kHz / 400 kHz / 1.7 MHz)

Maximális áram I/O lábanként: 25 mA

Teljes tokáram: 125 mA

Belső pull-up ellenállások: 100 kOhm, egyenként konfigurálhatók minden lábon

Megszakításkimenetek: INTA, INTB, aktív magas, aktív alacsony vagy open-drain módra konfigurálhatók

I2C cím: 0x20 - 0x27

Címkonfiguráló lábak: A0, A1, A2 (legfeljebb 8 modul ugyanazon a buszon)

Üzemi hőmérséklet: -40 - 85 Celsius fok

Méretek: 21 x 26.5 mm

 

Layout:

1. MCP23017 kiterjesztő áramkör: Az eredeti integrált áramkör SOIC tokozásban, amely az I2C parancsokat 16 digitális bemeneti vagy kimeneti vonallá alakítja.

2. Pull-up ellenállás-hálózat: Integrált ellenállás-hálózat, amely pull-upként szolgál az SDA és SCL vonalakhoz, és elegendő rövid, ugyanazon a buszon lévő kapcsolatokhoz.

3. Táp- és vezérlőtűsor: A VCC, GND, SCL, SDA, RESET, A0, A1, A2, INTA és INTB lábakat fogja össze.

4. I/O tűsor: A 16 digitális csatornát fogja össze, GPA0 - GPA7 és GPB0 - GPB7.

5. Rögzítőfuratok: Lyukak a panel tartóra vagy házba szereléséhez.

 

Pinout:

Csatlakozó Pin Funkció
Táp- és vezérlőtűsor VCC 3.3 - 5.5 VDC tápellátás
Táp- és vezérlőtűsor GND Közös föld
Táp- és vezérlőtűsor SCL I2C órajelvonal
Táp- és vezérlőtűsor SDA I2C adatvonal
Táp- és vezérlőtűsor RESET Alacsony szintre aktív reset, normál működéshez VCC-re kell kötni
Táp- és vezérlőtűsor A0, A1, A2 I2C cím beállítása, minden láb GND-re vagy VCC-re kötve
Táp- és vezérlőtűsor INTA A port A megszakításkimenete
Táp- és vezérlőtűsor INTB A port B megszakításkimenete
I/O tűsor GPA0 - GPA7 8 digitális bemeneti vagy kimeneti láb, A port
I/O tűsor GPB0 - GPB7 8 digitális bemeneti vagy kimeneti láb, B port

 

A2 A1 A0 I2C cím
GND GND GND 0x20
GND GND VCC 0x21
GND VCC GND 0x22
GND VCC VCC 0x23
VCC GND GND 0x24
VCC GND VCC 0x25
VCC VCC GND 0x26
VCC VCC VCC 0x27

 

Kapcsolási rajz és I2C cím:

A kapcsolási rajz a modul és a fejlesztőpanel közötti minimális összeköttetést mutatja a VCC, GND, SCL és SDA lábakon keresztül, az адресztáblázat pedig pontosan megmutatja az A0, A1 és A2 lábak azon kombinációit, amelyek a 0x20 és 0x27 közötti 8 lehetséges címet adják, több modul használatához ugyanazon a buszon.

 

Használat:

Csatlakoztassa a modul VCC és GND lábait egy 3.3 V-os vagy 5 V-os tápforráshoz, a fejlesztőpanel logikai szintjétől függően, majd kösse az SCL és SDA lábakat a megfelelő I2C vonalakra.

Kösse a RESET lábat közvetlenül VCC-re vagy egy 10 kOhm-os ellenálláson keresztül, hogy a modul ne maradjon reset állapotban, és megfelelően felismerhető legyen a buszon.

Állítsa be a kívánt I2C címet az A0, A1 és A2 lábak GND-re vagy VCC-re kötésével, például mindhárom GND-re kötve a 0x20 címhez, a címtáblázat szerint.

Programból konfigurálja a GPA0 - GPA7 és GPB0 - GPB7 16 lábat bemenetként vagy kimenetként, mielőtt olvasná vagy írná az állapotukat, mert tápfeszültség ráadása után alapértelmezetten mind bemenetként működnek.

Gombokra vagy kapcsolókra kötött bemeneteknél aktiválja a belső pull-upot szoftverből, és kerülje a további külső ellenállásokat, ha nincs szükség más konfigurációra.

Relékhez vagy LED-ekhez tartozó terhelések esetén tartsa be az I/O lábankénti 25 mA-es maximális áramot, valamint a tok 125 mA-es összáramát, nagyobb terhelésekhez pedig használjon tranzisztorokat vagy külön relémodulokat.

Több modulos alkalmazás esetén ugyanazon a buszon rendeljen minden modulhoz egyedi címet az A0, A1, A2 kombinációjával, legfeljebb 8 egyidejű modulig.

A folyamatos I2C-lekérdezés csökkentéséhez használja az INTA és INTB kimeneteket, amelyek LOW szintre váltanak, amikor a megfelelő porton egy bemenet megváltozik, és olvassa ki az elfogási regisztereket annak megállapításához, melyik láb és milyen állapot váltotta ki a megszakítást.

Néhány centiméternél hosszabb vezetékeknél vagy több modul esetén ugyanazon a buszon adjon hozzá külső, 4.7 kOhm-os pull-up ellenállásokat az SDA és SCL vonalakra, a modulon lévő belső hálózat kiegészítéseként.

 

Méretábra:

88289
Kommunikációs interfész
I2C
Fő chip
MCP23017
I/O csatornák száma
16

Produs destinat utilizarii in proiecte electronice, automatizari, prototipare, educatie si cercetare.

Produsul trebuie utilizat numai conform specificatiilor tehnice mentionate in descriere si/sau in documentatia produsului.

Avertismente generale de siguranta:

Nu utilizati produsul la tensiuni, curenti sau temperaturi peste valorile specificate.

Montajul si conectarea trebuie realizate de persoane cu cunostinte tehnice minime in domeniul electric/electronic.

Evitati scurtcircuitele, inversarea polaritatii si conectarea gresita a alimentarii.

Nu lasati produsul alimentat nesupravegheat in timpul testelor.

Produsul nu este jucarie si nu este destinat copiilor.

Pentru modulele electronice, se recomanda utilizarea in carcase, panouri sau montaje protejate, dupa caz.

Identificare produs:

Denumirea produsului, codul/SKU-ul si caracteristicile tehnice sunt mentionate in pagina produsului si/sau pe eticheta ambalajului.

Producator / Importator / Distribuitor:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Website: www.sigmanortec.ro

Persoana responsabila in UE:

Sigmanortec S.R.L.

Calea Bucuresti nr. 9, Targu Jiu, Gorj, Romania

E-mail: [email protected]

Documentatie si siguranta:

Pentru informatii suplimentare, fise tehnice, declaratii de conformitate sau instructiuni, ne puteti contacta la [email protected].

/*
  MCP23017 16-Bit I2C IO Expander - Basic Hardware Test
  Board: Arduino Uno (Arduino AVR Boards)
  Library: Wire.h only (included with Arduino IDE, no extra library needed)

  Wiring:
  MCP23017 VCC    -> Arduino 5V
  MCP23017 GND    -> Arduino GND
  MCP23017 SCL    -> Arduino A5 (SCL)
  MCP23017 SDA    -> Arduino A4 (SDA)
  MCP23017 RESET  -> Arduino 5V
  MCP23017 A0,A1,A2 -> GND (I2C address 0x20)
  MCP23017 GPA0   -> 220 ohm resistor -> LED anode, LED cathode -> GND

  This test writes directly to the MCP23017 registers to confirm
  the module answers on the I2C bus and that GPA0 can be toggled,
  without relying on any external library.
*/

#include <Wire.h>

const uint8_t MCP23017_ADDR = 0x20;
const uint8_t REG_IODIRA = 0x00; // direction register port A
const uint8_t REG_GPIOA  = 0x12; // read/write register port A

void mcpWriteRegister(uint8_t reg, uint8_t value) {
  Wire.beginTransmission(MCP23017_ADDR);
  Wire.write(reg);
  Wire.write(value);
  Wire.endTransmission();
}

bool mcpIsPresent() {
  Wire.beginTransmission(MCP23017_ADDR);
  return (Wire.endTransmission() == 0);
}

void setup() {
  Serial.begin(9600);
  Wire.begin();

  Serial.println("Scanning for MCP23017 at address 0x20...");

  if (!mcpIsPresent()) {
    Serial.println("MCP23017 not found, check VCC, GND, SDA, SCL and RESET");
    while (1);
  }

  Serial.println("MCP23017 found on the I2C bus");

  // Set GPA0 as output, the rest of port A stays as input
  mcpWriteRegister(REG_IODIRA, 0xFE);
}

void loop() {
  // Turn GPA0 on
  mcpWriteRegister(REG_GPIOA, 0x01);
  Serial.println("GPA0 set HIGH, LED should turn on");
  delay(1000);

  // Turn GPA0 off
  mcpWriteRegister(REG_GPIOA, 0x00);
  Serial.println("GPA0 set LOW, LED should turn off");
  delay(1000);
}

Ez az útmutató bemutatja, hogyan lehet működésbe helyezni az MCP23017 CJMCU-2317 expander modult egy Arduino Uno tábla segítségével, hogy LED-et vezéreljünk és gomb állapotát olvassuk az I2C buszra felvett 16 további pinin keresztül. A modul akkor hasznos, amikor a projektnek több digitális be- vagy kimenetére van szüksége, mint ahány pin elérhető az alaplapon, például több LED-et, gombot vagy relét tartalmazó panelekhez.

MCP23017 I2C 16-Bit IO Expander Module

Működési elv:

Az MCP23017 belső regisztereken keresztül kommunikál az Arduino-val, amelyeket a könyvtár I2C-n keresztül ír és olvas. Két irányítási regiszter, az IODIRA és IODIRB határozza meg, hogy az egyik port 8 pinjei közül melyik be- vagy kimenet, míg a GPIOA és GPIOB regiszterek olvassák vagy írják a pinok fizikai állapotát. A modul I2C-címe 4 rögzített bitből és az A2, A1 és A0 pinok állapotából képződik, ami a 0x20 (amikor mindhárom GND-re van kötve) és 0x27 (amikor mindhárom VCC-re van kötve) közötti címtartományt adja. Ebben az útmutatóban az A0, A1 és A2 a GND-en marad, így a modul a 0x20 címre válaszol. Az Adafruit_MCP23X17 könyvtár elrejti ezeket a regisztereket, és egyszerű funkciókat biztosít, mint a pinMode, digitalWrite és digitalRead a 16 pin mindegyikéhez, amelyeket 0-tól (GPA0) 15-ig (GPB7) számoznak.

Szükséges alkatrészek:

Csatlakoztatás:

A modul az Arduino felé mindössze 4 aktív vezetéket használ, plusz a RESET pin és a címzési pinok, amelyeket rögzítetten az ellátásra vagy a földre kötnek.

Termék pinje Csatlakozik a Funkció
VCC 5V Arduino Uno Modul tápellátása
GND GND Arduino Uno Közös föld
SCL A5 (SCL) Arduino Uno I2C órajel vonal
SDA A4 (SDA) Arduino Uno I2C adatvonal
RESET 5V Arduino Uno A modult normál működésben tartja
A0, A1, A2 GND Beállítja az I2C-címet 0x20-ra
GPA0 220 ohmos ellenállás, majd LED anódja, LED katódja a GND-re Vezérelt kimenet, LED bekapcsolása
GPB0 A gomb egyik lábára, a másik lába a GND-re Bemenet beépített pull-up-mal, gomb állapotának olvasása

Tábla és könyvtárak:

Válassza ki az Arduino IDE-ben az Arduino Uno táblát a Tools > Board > Arduino AVR Boards menüből, amely a csomagban az Arduino IDE-vel alapértelmezésben megtalálható, és nem szükséges további cím hozzáadása a File > Preferences menüben. Telepítse a Library Manager-ból az Adafruit MCP23017 Arduino Library könyvtárat az Adafruit szerzőtől, amely az Adafruit_MCP23X17.h fájlt tartalmazza, és engedélyezze a menedzsernek, hogy az ehhez szükséges Adafruit BusIO függőséget is telepítse. Az alapvető I2C-kommunikáció a Wire könyvtárat használja, amely az Arduino IDE-ben alapértelmezésben megtalálható, és nem szükséges külön telepíteni.

Kód:

A következő program inicializálja a modult az alapértelmezett 0x20 címen, a GPA0-t LED-kimenetként, a GPB0-t pedig beépített pull-up-mal rendelkező gombemenetként konfigurálja, majd bekapcsolja a LED-et, amíg a gomb le van nyomva.

/*
  MCP23017 16-Bit I2C IO Expander - Button and LED Example
  Board: Arduino Uno (Arduino AVR Boards)
  Library: Adafruit MCP23017 Arduino Library (Adafruit_MCP23X17.h) by Adafruit
  Library: Wire.h (included with Arduino IDE)
  Wiring:
  MCP23017 VCC    -> Arduino 5V
  MCP23017 GND    -> Arduino GND
  MCP23017 SCL    -> Arduino A5 (SCL)
  MCP23017 SDA    -> Arduino A4 (SDA)
  MCP23017 RESET  -> Arduino 5V
  MCP23017 A0,A1,A2 -> GND (I2C address 0x20)
  MCP23017 GPA0   -> 220 ohm resistor -> LED anode, LED cathode -> GND
  MCP23017 GPB0   -> push button -> GND (other button terminal)
*/
#include <Adafruit_MCP23X17.h>
Adafruit_MCP23X17 mcp;
const uint8_t LED_PIN = 0;     // GPA0
const uint8_t BUTTON_PIN = 8;  // GPB0
void setup() {
  Serial.begin(9600);
  // Initialize the MCP23017 at I2C address 0x20
  if (!mcp.begin_I2C(0x20)) {
    Serial.println("MCP23017 not found, check wiring and RESET pin");
    while (1);
  }
  // Configure GPA0 as output for the LED
  mcp.pinMode(LED_PIN, OUTPUT);
  // Configure GPB0 as input with internal pull-up for the button
  mcp.pinMode(BUTTON_PIN, INPUT_PULLUP);
  Serial.println("MCP23017 initialized at address 0x20");
}
void loop() {
  // Read the button state, LOW means pressed (pulled to GND)
  int buttonState = mcp.digitalRead(BUTTON_PIN);
  if (buttonState == LOW) {
    mcp.digitalWrite(LED_PIN, HIGH);  // turn LED on
  } else {
    mcp.digitalWrite(LED_PIN, LOW);   // turn LED off
  }
  Serial.print("Button state: ");
  Serial.println(buttonState == LOW ? "pressed" : "released");
  delay(100);
}

Hogyan működik a kód:

A program elején az Adafruit_MCP23X17.h könyvtárat be kell építeni, és létre kell hozni az mcp objektumot, amelyen keresztül az összes parancs a modulra kerül. A setup függvényben a soros port 9600 baudban inicializálódik, majd az mcp.begin_I2C hívódik meg a 0x20 címmel az I2C-kommunikáció létrehozásához, és ha a modul nem válaszol, a program hibaüzenetet jelenít meg és végtelen ciklussen megáll. A setup-ben is a LED_PIN (GPA0) kimenetként és a BUTTON_PIN (GPB0) INPUT_PULLUP-ként van konfigurálva, az MCP23017 beépített pull-up-ját használva. A loop függvényben a gomb állapotát az mcp.digitalRead(BUTTON_PIN) olvassa, és ha az érték LOW, vagyis a gomb le van nyomva, akkor a LED_PIN-re HIGH értéket ír a LED bekapcsolásához, egyébként LOW értéket. A gomb állapota a soros monitorra is elküldetik, majd egy rövid delay követ.

Eredmény:

Nyissa meg a soros monitort 9600 baudon, a GPA0-ra csatlakoztatott LED-nek világítania kell, amikor a GPB0-ra csatlakoztatott gombot lenyomva tartja, és sötétnek kell lennie, amikor elengedik, valamint a monitor az olvasott gomb állapotát mutatja.

MCP23017 initialized at address 0x20
Button state: released
Button state: released
Button state: pressed
Button state: pressed
Button state: pressed
Button state: released
Button state: released

Gyakori problémák:

Az MCP23017 not found üzenet a soros monitoron általában akkor jelenik meg, amikor a RESET pin nincs csatlakoztatva, mert a modul visszaállítás állapotában marad, a megoldás a RESET közvetlen VCC-re vagy 10 kOhm-os ellenálláson keresztül való csatlakoztatása.

A modul nem válaszol a kódban használt címre, azt jelenti, hogy az mcp.begin_I2C-ben beállított cím nem felel meg az A0, A1 és A2 pinok állapotának, ellenőrizze ezeknek a pinoknak a csatlakozásait, és futtasson egy I2C scannert a valódi cím megerősítéséhez.

A gomb úgy tűnik, hogy mindig lenyomva van, vagy soha nem észlelhető a lenyomása, azt jelenti, hogy a BUTTON_PIN nem INPUT_PULLUP-ként, hanem egyszerű INPUT-ként lett konfigurálva, így a bemenet elektromosan lebeg.

A LED kimarad, pedig a gomb le van nyomva, azt jelenti, hogy a LED fordítva van beépítve, vagy a 220 ohm-os ellenállás hiányzik vagy szakadt, ellenőrizze a LED polaritását és az ellenállás folytonosságát.

Ha több modult használ ugyanazon a buszzon, és egyik sem válaszol helyesen, ellenőrizze, hogy nincs-e két modul ugyanazzal az A0, A1 és A2 kombinációval, minden modulnak egyedi címre van szüksége.

Instabil kommunikáció vagy időszakos hibák néhány centiméteres vezetékek esetén az SDA és SCL buszokra csatlakoztatott 4,7 kOhm-os külső pull-up ellenállások hozzáadásával oldhatók meg, kiegészítve a modul belső hálózatát.

Korlátozások és tanácsok:

Az MCP23017 nem biztosít PWM kimeneteket és nem támogat analóg bemeneteket, csak digitális be- és kikapcsolt típusú jelekhez alkalmas, nem változó feszültségek olvasásához vagy közvetlen fényerő-szabályozáshoz. A 25 mA maximális áram pinként és 125 mA összesen a chip szintjén korlátozza a közvetlenül a GPIO-pinokra csatlakoztatott terhelést, relékhez, motorokhoz vagy nagy teljesítményű LED-ekhez tranzisztorokra vagy külön relékmodulokra van szükség. Ugyanazon az I2C-buszOn egyszerre akár 8 modul is működhet, amelyek összesen 128 további pint biztosítanak, hasznosak sok gomb, LED vagy digitális szenzort tartalmazó panelekhez, az INTA és INTB kimenetek pedig lehetővé teszik a változások kezelését megszakítás révén, a busz folyamatos lekérdezése nélkül.