MCP23017 I2C I/O Expander Module 16-Bit

5,000 د.ع

Expand the I/O capabilities of your Arduino, ESP32, Raspberry Pi, or STM32 projects with this MCP23017 Serial Interface Module. Based on the popular Microchip MCP23017 (I2C) or MCP23S17 (SPI) 16-bit port expander IC, this module allows you to add up to 16 additional GPIO pins using just two (I2C) or four (SPI) control lines, freeing up valuable pins on your main microcontroller for other critical functions.

In stock

Compare
SKU: DIYS10841 Category:

Description

MCP23017 / MCP23S17 I/O Expander Module – 16-Bit Bidirectional Serial Interface

Expand the I/O capabilities of your Arduino, ESP32, Raspberry Pi, or STM32 projects with this MCP23017 Serial Interface Module. Based on the popular Microchip MCP23017 (I2C) or MCP23S17 (SPI) 16-bit port expander IC, this module allows you to add up to 16 additional GPIO pins using just two (I2C) or four (SPI) control lines, freeing up valuable pins on your main microcontroller for other critical functions.

The module features 16 bidirectional I/O pins divided into two 8-bit ports (PORTA and PORTB), each of which can be independently configured as input or output. Individual pins support pull-up resistors, interrupt outputs, and can be configured to generate interrupts on pin changes, eliminating the need for constant polling. With an operating frequency up to 10MHz (SPI version) or 1.7MHz (I2C version), this expander provides fast and responsive I/O expansion for demanding applications.

Key Features

16 Bidirectional I/O Pins

Provides 16 individually configurable I/O pins divided into two 8-bit ports (PORTA and PORTB). Each pin can be programmed as input or output with configurable pull-up resistors.

Selectable I2C or SPI Interface

Available in both I2C (MCP23017) and SPI (MCP23S17) versions, allowing you to choose the optimal communication protocol for your project requirements and available microcontroller pins.

Multiple Device Support

The I2C version supports up to 8 devices on the same bus using three address selection pins (A0, A1, A2), allowing expansion up to 128 additional I/O pins from a single I2C bus.

High-Speed Operation

SPI version supports clock speeds up to 10MHz for fast data transfer, while the I2C version supports up to 1.7MHz for responsive I/O operations.

Interrupt Output Pins

Features two interrupt output pins (INTA and INTB) that can be configured to trigger on pin changes, reducing microcontroller polling overhead and improving system efficiency.

Hardware Address Selection

Onboard jumpers allow easy configuration of the I2C slave address, enabling multiple modules to coexist on the same I2C bus without address conflicts.

Configurable Interrupts

Each port can be configured to generate interrupts on pin changes, with the ability to select rising edge, falling edge, or both trigger conditions.

Specifications

  • Model: MCP23017 (I2C) / MCP23S17 (SPI)

  • I/O Pins: 16 bidirectional

  • Interfaces: I2C (up to 1.7MHz) or SPI (up to 10MHz)

  • Operating Voltage: 2.7V – 5.5V DC

  • Standby Current: 1µA typical

  • Interrupt Outputs: 2 (INTA, INTB)

  • Address Selection (I2C): 3 pins (up to 8 addresses)

  • Dimensions: Approximately 35mm x 25mm

  • Pin Header: 2.54mm pitch for easy breadboarding

Pin Configuration

PinFunctionDescription
VCCPower Supply2.7V – 5.5V DC
GNDGroundCommon ground
SDAI2C DataI2C data line (I2C version)
SCLI2C ClockI2C clock line (I2C version)
SI/SDASPI Data InSPI data input (SPI version)
SOSPI Data OutSPI data output (SPI version)
SCKSPI ClockSPI clock (SPI version)
CSChip SelectSPI chip select (SPI version)
A0, A1, A2Address SelectI2C address configuration
INTA, INTBInterrupt OutputsInterrupt signals for each port
GPIOA0-7Port A I/O8 I/O pins for Port A
GPIOB0-7Port B I/O8 I/O pins for Port B

Wiring Diagram

I2C Connection (MCP23017)

text
MCP23017 Module          Arduino Uno
---------------          -----------
VCC            ----->    5V
GND            ----->    GND
SDA            ----->    A4 (SDA)
SCL            ----->    A5 (SCL)

SPI Connection (MCP23S17)

text
MCP23S17 Module          Arduino Uno
---------------          -----------
VCC            ----->    5V
GND            ----->    GND
SI             ----->    Pin 11 (MOSI)
SO             ----->    Pin 12 (MISO)
SCK            ----->    Pin 13 (SCK)
CS             ----->    Pin 10

Arduino Code Example (I2C Version)

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

Adafruit_MCP23017 mcp;

void setup() {
  Serial.begin(9600);
  mcp.begin();  // Default I2C address 0x20
  
  // Configure pins
  for (int i = 0; i < 16; i++) {
    mcp.pinMode(i, OUTPUT);
  }
  
  Serial.println("MCP23017 Ready");
}

void loop() {
  // Blink all LEDs in sequence
  for (int i = 0; i < 16; i++) {
    mcp.digitalWrite(i, HIGH);
    delay(100);
    mcp.digitalWrite(i, LOW);
  }
}

Common Applications

  • Expanding I/O for Arduino and Raspberry Pi projects

  • Reading multiple switches and buttons

  • Controlling LED matrices and 7-segment displays

  • Industrial control panel interfaces

  • Home automation sensor networks

  • Robotics and automation control

  • Memory-constrained microcontroller projects

Package Contents

  • 1 x MCP23017 / MCP23S17 I/O Expander Module

وحدة توسعة I/O MCP23017 / MCP23S17 – واجهة تسلسلية ثنائية الاتجاه 16 بت

وسع قدرات الإدخال/الإخراج لمشاريع Arduino أو ESP32 أو Raspberry Pi أو STM32 الخاصة بك باستخدام وحدة التوسعة MCP23017. استنادًا إلى شريحة MCP23017 (I2C) أو MCP23S17 (SPI) الشهيرة من Microchip، تسمح لك هذه الوحدة بإضافة ما يصل إلى 16 دبوس GPIO إضافي باستخدام خطي تحكم فقط، مما يوفر دبابيس قيمة على متحكمك الرئيسي لوظائف أخرى مهمة.

تتميز الوحدة بـ 16 دبوس إدخال/إخراج ثنائية الاتجاه مقسمة إلى منفذي 8 بت، يمكن تكوين كل منهما بشكل مستقل كمدخل أو مخرج. تدعم الدبابيس الفردية مقاومات سحب ومخرجات مقاطعة، ويمكن تكوينها لتوليد مقاطعات عند تغيير حالة الدبوس، مما يلغي الحاجة إلى الاستقصاء المستمر.

المميزات الرئيسية

16 دبوس إدخال/إخراج ثنائية الاتجاه

توفر 16 دبوس إدخال/إخراج قابلة للتكوين بشكل فردي، مقسمة إلى منفذي 8 بت. يمكن برمجة كل دبوس كمدخل أو مخرج مع مقاومات سحب قابلة للتكوين.

واجهة I2C أو SPI قابلة للاختيار

متوفرة بإصدارات I2C و SPI، مما يسمح لك باختيار بروتوكول الاتصال الأمثل لمتطلبات مشروعك ودبابيس المتحكم المتاحة.

دعم أجهزة متعددة

يدعم إصدار I2C ما يصل إلى 8 أجهزة على نفس الناقل باستخدام ثلاثة دبابيس اختيار عنوان، مما يسمح بتوسيع يصل إلى 128 دبوس إدخال/إخراج إضافي من ناقل I2C واحد.

تشغيل عالي السرعة

يدعم إصدار SPI سرعات ساعة تصل إلى 10 ميجاهرتز لنقل بيانات سريع، بينما يدعم إصدار I2C سرعات تصل إلى 1.7 ميجاهرتز لعمليات إدخال/إخراج سريعة الاستجابة.

دبابيس خرج مقاطعة

تتميز بدبوسي خرج مقاطعة يمكن تكوينهما للتنشيط عند تغيير حالة الدبوس، مما يقلل من عبء استقصاء المتحكم الدقيق ويحسن كفاءة النظام.

اختيار عنوان الأجهزة

تسمح الوصلات المدمجة بتكوين سهل لعنوان I2C، مما يتيح لأجهزة متعددة العمل على نفس ناقل I2C بدون تعارض في العناوين.

مقاطعات قابلة للتكوين

يمكن تكوين كل منفذ لتوليد مقاطعات عند تغيير حالة الدبوس، مع القدرة على اختيار حافة الصعود أو حافة الهبوط أو كليهما كشرط للتنشيط.

المواصفات الفنية

  • الموديل: MCP23017 (I2C) / MCP23S17 (SPI)

  • دبابيس الإدخال/الإخراج: 16 ثنائية الاتجاه

  • الواجهات: I2C (حتى 1.7 ميجاهرتز) أو SPI (حتى 10 ميجاهرتز)

  • جهد التشغيل: 2.7V – 5.5V

  • تيار الاستعداد: 1 ميكروأمبير

  • مخرجات المقاطعة: 2

  • اختيار العنوان (I2C): 3 دبابيس

  • الأبعاد: حوالي 35 مم × 25 مم

كود Arduino مثال

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

Adafruit_MCP23017 mcp;

void setup() {
  Serial.begin(9600);
  mcp.begin();
  
  for (int i = 0; i < 16; i++) {
    mcp.pinMode(i, OUTPUT);
  }
  
  Serial.println("MCP23017 جاهز");
}

void loop() {
  for (int i = 0; i < 16; i++) {
    mcp.digitalWrite(i, HIGH);
    delay(100);
    mcp.digitalWrite(i, LOW);
  }
}

التطبيقات الشائعة

  • توسيع الإدخال/الإخراج لمشاريع Arduino و Raspberry Pi

  • قراءة مفاتيح وأزرار متعددة

  • التحكم في مصفوفات LED وشاشات 7 أجزاء

  • واجهات لوحات التحكم الصناعية

  • شبكات استشعار أتمتة المنزل

  • مشاريع الروبوتات والأتمتة

  • مشاريع المتحكمات الدقيقة محدودة الذاكرة

محتويات العلبة

  • 1 × وحدة توسعة I/O MCP23017 / MCP23S17

Reviews

There are no reviews yet

Be the first to review “MCP23017 I2C I/O Expander Module 16-Bit”

Your email address will not be published. Required fields are marked *