Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
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 линиями. Подумайте о возможностях!