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
CompareDescription
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
| Pin | Function | Description |
|---|---|---|
| VCC | Power Supply | 2.7V – 5.5V DC |
| GND | Ground | Common ground |
| SDA | I2C Data | I2C data line (I2C version) |
| SCL | I2C Clock | I2C clock line (I2C version) |
| SI/SDA | SPI Data In | SPI data input (SPI version) |
| SO | SPI Data Out | SPI data output (SPI version) |
| SCK | SPI Clock | SPI clock (SPI version) |
| CS | Chip Select | SPI chip select (SPI version) |
| A0, A1, A2 | Address Select | I2C address configuration |
| INTA, INTB | Interrupt Outputs | Interrupt signals for each port |
| GPIOA0-7 | Port A I/O | 8 I/O pins for Port A |
| GPIOB0-7 | Port B I/O | 8 I/O pins for Port B |
Wiring Diagram
I2C Connection (MCP23017)
MCP23017 Module Arduino Uno --------------- ----------- VCC -----> 5V GND -----> GND SDA -----> A4 (SDA) SCL -----> A5 (SCL)
SPI Connection (MCP23S17)
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)
#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 مثال
#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