модуль I2c расширитель портов MCP23017 16Bit port Expander

MCP23017-mod

I2c расширитель портов ввода вывода MCP23017-ESP 16Bit port Expander
Комплектация: модуль 1шт, набор пинов, упаковка

Подробнее

При покупке этого товара вы можете получить до 8 бонусных баллов. Сумма вашей покупки составит 8 баллов которые можно обменять на купон в 0,80 грн.


89,45 грн

Описание

1) Два 8-разрядных удаленных двунаправленных порта ввода/вывода
2) Высокоскоростной I2C интерфейс
- 100 kHz
- 400 kHz
- 1.7MHz
3) Каскадирование до 8 устройств на одной шине
4) Диапазон напряжения питания от 1,8 В до 5,5 В

MCP23017 arduino

Видео MCP23017 IO Expander arduino

Пример кода с библиотекой MCP23017.h

#include <Wire.h>
#include <MCP23017.h>

int current = 0;

MCP23017 GPIOchip; 

void setup()
{
  Serial.begin(9600);
  Serial.println("Serial Started");
  Wire.begin();           
  GPIOchip.begin(B000); 
  GPIOchip.init();
  for (int i = 0; i < 16; i++)
  {
      GPIOchip.pinMode(i,  OUTPUT);
  }  
}
void loop()
{
  for (int i = 0; i < 16; i++)
  {
      GPIOchip.digitalWrite(i, current==i);
  }
  if (++current > 15)
  {
    current = 0;
  }
  delay(100);
} 

пример кода без библиотеки

#include "Wire.h"
byte b;

unsigned int pattern[17] = {
  0b0000000000000000,
  
  0b0000000000000001,
  0b0000000000000010,
  0b0000000000000100,
  0b0000000000001000,
  
  0b0000000000010000,
  0b0000000000100000,
  0b0000000001000000,
  0b0000000010000000,
  
  0b0000000100000000,
  0b0000001000000000,
  0b0000010000000000,
  0b0000100000000000,
  
  0b0001000000000000,
  0b0010000000000000,
  0b0100000000000000,
  0b1000000000000000
};

void setup()
{
    Serial.begin(9600);
    Wire.begin(); // wake up I2C bus
    // set I/O pins to outputs
    Wire.beginTransmission(0x20);
    Wire.write(0x00); // IODIRA register
    Wire.write(0x00); // set all of port A to outputs
    Wire.endTransmission();
}

void loop()
{
  for (int i = 0; i < 9*2; i++)
  {
      b = highByte(pattern[i]);
      Wire.beginTransmission(0x20);
      Wire.write(0x12);      // address bank B
      Wire.write((byte)b);
      Wire.endTransmission();
      
      b = lowByte(pattern[i]);
      Serial.print(b, BIN); Serial.println();
      Wire.beginTransmission(0x20);
      Wire.write(0x13);      // address bank A
      Wire.write((byte)b);
      Wire.endTransmission();
      
      delay(100);
  }
}


Общие сведения
можно как использовать микросхему MCP23017 16-битный как последовательный расширитель с последовательным интерфейсом I2C. В MCP23017, имеет 7-битный адрес устройства. Наиболее значимыми 4 бита "0100" , а три аренды значащих битов определяются напряжения на A2, A1 и A0-пен. Это позволяет подключить до 8 GPIO расширители на одной шине дает нам максимум 16*8 = 128 дополнительных контактов GPIO для наших проектов.
В MCP23017 чип имеет набор регистров, которые должны быть записаны, чтобы контролировать чипа поведения. Например, IODIRA & IODIRB регистров определить, является ли контакты на порты A и B являются соответственно входами(1) или выходов (0). Чтобы узнать состояние входного контакта на порт A или B, Вам необходимо прочитать GPIOA или GPIOB регистров, и установить pin выход на порт A или B для высокой или низкой, то Вам необходимо написать соответствующее значение в OLATA или OLATB регистров. Чип обладает множеством дополнительных регистров с дополнительной функциональностью, как и реверсирования полярности, включение внутреннего pull-ups и разрешением прерываний.

Микросхемы схожей организации
MCP23017 – Два 8-ми разрядных двунаправленных порта (I2C)
MCP23S17 – Два 8-ми разрядных двунаправленных порта (SPI)
MCP23008 – Один 8-ми разрядный двунаправленный порт (I2C)
MCP23S08 – Один 8-ми разрядный двунаправленный порт (SPI)

Сопутствующие товары



30 других товаров в этой категории:

Покупатели этого товара так же приобрели:

Скачать