MCP23017 и Arduino

29-05-2020, 16:28 0 комментариев
Сегодня рассматриваем I2C модуль расширения и подключение MCP23017 к Arduino. О подобных платах мы уже говорили. Их ценность и практичность для любителей «самоделок» просто безгранична, ведь они позволяют расширить возможности микроконтроллера дешево и эффективно, без множества проводов и приобретения дополнительного оборудования.

Конкретно этот модуль добавляет 16 цифровых kbybq - портов. Любопытно то, что их можно настроить на выход и вход. Как вы поняли из названия выше, он взаимодействует с шиной I2C (но есть вариант и для SPI), гибок в конфигурациях и легок в сборке.

Распиновка устройства показана ниже:
Обратите внимание на технические характеристики микросхемы:
  • напряжение: 1,8В-5,5V;
  • потребляемый ток: 150мА;
  • режимы функционирования интерфейса: 100кГц/400кГц/1,7МГц;
  • габариты: 19х51 мм.
Теперь основной момент статьи – пробуем подключить Модуль MCP23017 к Ардуино. Простейшая схема сборки показана на скриншоте:
В ней задействовано такое "железо": микроконтроллер Arduino Uno, плата расширения, соединительные провода.
Для дальнейшей реализации нам понадобится стандартная специализированная библиотека Wire (для управления интерфейсом). Она уже имеется в среде разработки IDE, ничего скачивать не нужно.

Прописываем проверочный скетч:
#include "Wire.h"
 
void setup()
{
 Wire.begin(); // активируем шину I2C
// устанавливаем линии на выход
 Wire.beginTransmission(0x20);
 Wire.write(0x00); // регистр IODIRA
 Wire.write(0x00); // устанавливаем все линии порта A на выход
 Wire.endTransmission();
}
 
void loop()
{
  Wire.beginTransmission(0x20);
  Wire.write(0x12);      // адресный банк A
  Wire.write((byte)0xAA);  // отправляемое значение - все линии в лог. 1
  Wire.endTransmission();
  delay(500);
  Wire.beginTransmission(0x20);
  Wire.write(0x12);      // адресный банк A
  Wire.write((byte)0x55);  // отправляемое значение - все линии в лог. 1
  Wire.endTransmission();
  delay(500);
}
Такие адаптеры расширения – бюджетный вариант для увеличения функциональности на этапах проектирования. С ними вы значительно повысите количество подключаемых устройств, а значит, расширите их возможности.

На этом пока все! Желаем удачи!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...

Расширитель портов PCF8574 обеспечивает увеличение общего количества цифровых портов ввода/вывода для микроконтроллеров через интерфейс I2C. Все мы понимаем,...

В этой информационной статье разбираем подключение сенсора угарного газа MQ-7 к Ардуино. Мы уже говорили о подобных модулях, оценивали их высокую практичность...

Оставить комментарий