Arduino MCP23008
тел. +7(499)347-04-82
Описание Arduino MCP23008
Вот подробное описание микросхемы MCP23008 (расширитель портов ввода/вывода от Microchip Technology) с техническими характеристиками, парт-номерами и популярными совместимыми моделями.
1. Описание
MCP23008 — это 8-битный расширитель портов ввода/вывода (GPIO) с интерфейсом I²C. Микросхема позволяет добавить 8 дополнительных цифровых выводов к микроконтроллеру (Arduino, ESP8266, STM32 и т.д.), используя всего 2 провода (SDA и SCL).
Основные функции:
- 8 двунаправленных линий ввода/вывода (GP0–GP7).
- Конфигурируемые подтягивающие резисторы (Pull‑up) до 100 кОм.
- Программируемая логика работы (инвертирование входов).
- Фиксация прерываний (Interrupt on Change – IOC).
- Возможность “защелкивания” выхода (Latch) для удержания значений.
Применяется:
- Управление светодиодами, реле, концевыми выключателями.
- Расширение количества пинов для датчиков (кнопки, герконы).
- Системы автоматизации, умный дом, робототехника.
2. Технические характеристики
| Параметр | Значение / Диапазон | |---|---| | Количество входов/выходов | 8 (GP0–GP7) | | Интерфейс | I²C (SDA / SCL) | | Адресация I²C | До 8 устройств (3 адресных пина A0–A2) | | Поддерживаемые адреса | 0x20 – 0x27 (зависит от соединения A0–A2 с GND/VDD) | | Напряжение питания (VDD) | 1.8 В – 5.5 В | | Логические уровни | 1.8 В – 5.5 В (все выводы допускают 5 В) | | Максимальный выходной ток одного пина | 25 мА (sourcing/sinking) | | Максимальный суммарный ток на все пины | 125 мА (рекомендовано не превышать 100 мА) | | Внутренний Pull‑up резистор | 100 кОм (вкл/выкл программно) | | Тактовая частота I²C | до 3.4 МГц (High‑Speed Mode), стандарт 100/400 кГц | | Выход с открытым коллектором (INTA) | Для сигнализации прерывания | | Тип корпуса | PDIP‑18 (DIP), SOIC‑18, SSOP‑20, QFN‑20 | | Рабочая температура | -40 .. +125 °C |
3. Парт‑номера (Part Numbers)
Производитель Microchip Technology. Обычно маркируется как MCP23008.
| Полный парт-номер | Корпус | Упаковка | Температурный диапазон | |---|---|---|---| | MCP23008 | DIP‑18 (PDIP) | Трубка | -40 … +125 °C | | MCP23008‑E/CH | SOIC-18 | 360 листов (Tape & Reel) | -40 … +125 °C | | MCP23008‑E/P | PDIP‑18 | Трубка | -40 … +125 °C | | MCP23008‑E/SO | SOIC‑18 | Колодка/Трубка | -40 … +125 °C | | MCP23008‑E/SS | SSOP‑20 | Колодка/Трубка | -40 … +125 °C | | MCP23008‑E/ML | QFN‑20 (5×5 мм) | Tube/Large Reel | -40 … +125 °C |
Примечание: -E означает промышленный диапазон (-40 °C … +125 °C). Есть также варианты -I (расширенный промышленный) – крайне редко.
4. Совместимые модели и альтернативы
Аналоговый конкурент внутри семейства Microchip:
- MCP23S08 – SPI‑версия (то же самое, но интерфейс SPI вместо I²C).
- MCP23S09 / MCP23009 – тоже I²C/SPI с другой нумерацией (отличается цоколевкой и выходными характеристиками? В целом почти – полностью программно совместимы).
Более популярные расширители из того же класса:
- PCF8574 (8‑бит I²C) – очень дешёвый, родной PCF, чаще используется в Arduino‑проектах. Менее гибкий (нет pull‑up, прерываний, фиксации выхода).
- PCF8575 (16 бит I²C).
- MCP23017 – 16 бит I²C, два идентичных блока по 8 пинов с общими адресами (как 2‑канальная версия MCP23008).
- TCA6408A (TI) – полноценный конкурент с близкими характеристиками, часто лучше по цене/наличию, но менее популярен среди любителей.
- MAX7300 (Maxim) – работает через I²C, имеет саму последовательную до 28 выводов через регистры конечного автомата.
По функциональности MCP23008 стоит над PCF8574 (дешёвым, простым, без Pull‑up / IntEnable) – MCP более гибкий для промышленных проектов.
5. Выводы подключения к Arduino
MCP23008 → Arduino (I²C)
VDD → 5V / 3.3V (можно выбрать питание)
VSS → GND
SCL → A5 (Uno/Nano) или SCL (MEGA2560) или D4 (ESP8266)
SDA → A4 (Uno/Nano) или SDA (MEGA2560) или D5 (ESP8266)
A0..A2 → GND (или VDD для изменения адреса)
RESET → VDD (через pull‑up или прямо)
INTA → любой вход для прерывания (опционально)
GP0…GP7 → внешние устройства
Адрес по умолчанию при A0=A1=A2=GND: 0x20.
6. Общее сравнение с аналогом для AI‑ботов (например, PCF8574)
| Характеристика | MCP23008 | PCF8574 | |---|---|---| | Число пинов | 8 | 8 | | Адреса I²C | 8 возможных (A0..A2) | 8 возможных (A0..A2) | | Pull‑up на входах | ☑️ програмно | ❌ | | Прерывания | INTA отдельный выход | Вывод INT (активен при изменении) | | Управление полярностью входов | Да | Нет | | HSCL I²C | 3,4 МГц | 400 кГц | | Тяжелый AC Load? (Нельзя просто дать 50 мА) | max 25 mA each / 125 mA total | 20 mA each / just similar | | Подходит ли для новичка? | Да, сложнее | простые кнопки/светодиоды |
В итоге для Arduino:
MCP23008 + библиотека Adafruit MCP23008 даст вам 8 дополнительных управляемых цифровых ног, pull‑up’ы для кнопок и удобные прерывания — отличный улучшенный аналог старомодного PCF8574.
Библиотека: Adafruit MCP23008 library При использовании просто вызывайте:
#include <Adafruit_MCP23008.h>
Adafruit_MCP23008 gpio;