Mcp23017

Iš Žinynas.
Jump to navigation Jump to search

Mcp23017-pinout.jpg.webp

Mcp23017-and-8-leds schem.png-2.webp

This port expander provides you 16 more GPIOs and cost you around 1€. And because it communicates via I²C it only uses two GPIOs of your ESP8266 and you can address up to 8 MCP23017. That makes up to 126 additional GPIOs.

ESP32 Wiring

  • SDA -> pin 21
  • SCL -> pin 22
  • VSS -> GND
  • VDD -> VIN
  • 17 -> GND
  • 16 -> GND
  • 15 -> GND
// ESP32 I2C Scanner
// Based on code of Nick Gammon http://www.gammon.com.au/forum/?id=10896
// ESP32 DevKit - Arduino IDE 1.8.5
// Device tested PCF8574 - Use pullup resistors 3K3 ohms !
// PCF8574 Default Freq 100 KHz
#include <Wire.h>
void setup()
{
Serial.begin (115200); 
Wire.begin (21, 22); // sda= GPIO_21 /scl= GPIO_22
}
void Scanner ()
{
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i); // Begin I2C transmission Address (i)
if (Wire.endTransmission () == 0) // Receive 0 = success (ACK response) 
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX); // PCF8574 7 bit address
Serial.println (")");
count++;
}
}
Serial.print ("Found "); 
Serial.print (count, DEC); // numbers of devices
Serial.println (" device(s).");
}
void loop()
{
Scanner ();
delay (100);
}

ESP8266

https://medium.com/@wilko.vehreke/more-gpios-for-the-esp8266-with-the-mcp23017-b89f5e15cde3