
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-23 15:05

MCP23017 - это относительно простая микросхема для изготовления платы, поскольку у нее есть порты A и B по обе стороны от микросхемы, а контакты расположены в последовательном порядке.
Точно так же адресная шина I2C тоже все вместе.
На этой ИС есть 2 контакта, которые не используются, поскольку они сопоставимы с MCP23S17, который использует интерфейс SPI, в котором используются эти контакты.
Техническое описание этой ИС можно получить в Microchip.
Шаг 1: Принципиальная схема

На принципиальной схеме показано, как подключить IC к ESP8266.
ПРИМЕЧАНИЕ: ИС работает от 2,7 до 5,5 вольт.
Контакты на моей плате
- Вывод 9 (VDD) на 3v3
- Вывод 18 (СБРОС) на 3v3
- Контакт 17 (A2) к GND
- Контакт 16 (A1) к GND
- Контакт 15 (A0) к GND
- Контакт 14 (NC) к GND (не требуется)
- Контакт 13 (SDA) к ESP GPIO0
- Контакт 12 (SCL) к ESP GPIO2
- Контакт 11 (NC) к GND (не требуется)
- Контакт 10 (VSS) к GND
Шаг 2: Изготовление основной платы

Плату просто сделать, как описано выше, все имеет простую компоновку.
На создание моей основной платы ушло немного времени, и она показана выше.
Конечно, вы можете построить эту схему на макете.
Шаг 3: Дополнительные платы

Я сделал несколько дополнительных 8-битных плат, которые можно легко подключить к различным доскам проекта.
Первая плата подключена к 7-сегментному светодиодному дисплею и соединяет контакт 1 с сегментом a, контакт 2 с b и т. Д. Для защиты светодиодов имеется небольшой резистор (около 55 Ом).
Второй - это блок из 8 переключателей, все соединенные вместе и могут быть подключены к 3,3 В или заземлению. Я не включил тяговые резисторы, поскольку в MCP23017 они встроены.
Третий - из комплекта Ebay, состоит из 8 светодиодов и массива резисторов с подключением к Gnd. У меня также есть такая же плата, но светодиоды установлены наоборот, так что она подключается к 3,3 В или 5 В вместо Gnd. На Ebay они известны как 8-канальный комплект для сборки светодиодного светильника с проточной водой, 99p из Китая.
Шаг 4: программирование

Я написал программы для работы с ESP01, так как у него всего 2 контакта ввода / вывода. Конечно, его можно использовать с любой платой ESP8266. Контакты SDA и SCL можно назначить любому контакту от 1 до 12.
При использовании более старой версии LUA (например, NodeMCU 0.9.6 build 20150704 на базе Lua 5.1.4) I2C уже установлен. В противном случае вам нужно убедиться, что модуль I2C включен в вашу сборку.
Я включил 3 простые программы Lua, чтобы показать, как можно использовать IC.
7Segment.lua управляет светодиодным дисплеем и последовательно меняет числа от 1 до 0.
KittCar.lua управляет доской с 8 светодиодами, чтобы имитировать знаменитую машину 80-х годов.
Reader.lua читает из порта Б.
Шаг 5. Какой пин?

Дополнительная программа, которую я придумал, пока возился.
Он использует порт B как вход и порт A как выход. На фотографии показаны DIP-переключатели, но вы можете подключить один из контактов порта B к Gnd, и светодиодный дисплей покажет, какой контакт подключен.
ПРИМЕЧАНИЕ: работает только с 1 контактом за раз!
Шаг 6: Заключение

Конечно, доступны и другие расширители ввода / вывода. Некоторые из них 8-битные, 16-битные и даже 24-битные! Все они работают аналогично MCP23017, но эта микросхема очень дешевая из-за своих возможностей, и ее можно купить в Китае по цене около 10 пенсов каждая.
Я не использовал все возможности этой ИС, так как есть прерывания, которые можно использовать. Чтение таблицы данных рассказывает все о различных регистрах и способах использования ИС.
Можно иметь 8 таких устройств на одной шине I2C, что дает 128 портов ввода-вывода, все они управляются 2 линиями. Подумайте о возможностях!
Рекомендуемые:
Raspberry Pi - PCA9536 Учебное пособие по Python для расширителя ввода / вывода: 4 шага

Raspberry Pi - PCA9536 Расширитель ввода / вывода Учебное пособие по Python: PCA9536 - это 8-контактное устройство CMOS, которое обеспечивает 4-битное расширение универсального параллельного ввода / вывода (GPIO) для приложений I2C-bus / SMBus. Он состоит из 4-битного регистра конфигурации для выбора входа или выхода, 4-битный
Как сделать простой мощный усилитель звука с микросхемой 4440: 11 шагов

Как сделать простой мощный усилитель звука с микросхемой 4440: это краткое обучающее видео, в котором я все сделал
NODEMCU LUA ESP8266 Управление микросхемой драйвера светодиодного дисплея M5450B7: 5 шагов (с изображениями)

NODEMCU LUA ESP8266 Управление микросхемой драйвера светодиодного дисплея M5450B7: M5450B7 представляет собой 40-контактную микросхему драйвера светодиодного дисплея DIP. Она выглядит зверьком, но ее относительно легко контролировать и программировать. Имеется 34 выходных контакта, к которым можно подключить светодиод. каждому. Устройство потребляет ток, а не подает его, поэтому c
NODEMCU LUA ESP8266 с 8-битным расширителем портов MCP23008 IC: 6 шагов

NODEMCU LUA ESP8266 с 8-битным расширителем портов MCP23008 IC: MCP23008 - это 8-битный расширитель ввода / вывода с последовательным интерфейсом, работающий от 1,8 до 5,5 вольт, поэтому он идеально подходит для ESP8266, Arduino, Raspberry Pi, PIC Chips и других. Если вы видели другую мою инструкцию по MCP23017, вам может быть интересно
Переадресация портов SMC: 6 шагов

Переадресация портов SMC: в этой инструкции я покажу вам, как перенаправить порт на ваш собственный модем или маршрутизатор, чтобы он принимал соединения с определенных портов. В это руководство я также включил некоторые общие порты, которые используются для некоторых общих вещей, требующих переадресации портов