Gravity: MCP23017 I2C 16 Digital IO Expansion Module

SKU: DFR0626

The Gravity: MCP23017 I2C 16 Digital IO Expansion Module extends microcontroller IO capabilities with 16 additional ports, supporting up to 8 modules for a total of 128 ports, featuring configurable GPIO pins and interrupt signal detection, ideal for complex applications.

Front of MCP23017 I2C 16-Bit I/O Expander Module with multiple GPIO pins for Arduino projects.-DFRobot product sku:DFR0626 image.
  • Docs
  • Tech Specs
  • Specification

    Parameter Details
    Power Supply 3.3V-5.5V
    IIC Address 0x20~0x27
    Digital IO/Input/Output PA0-PA7, PB0-PB7
    IO Driving Current 20mA
    Signal Interrupt Pin IA, IB
    Dimension 44x32mm / 1.73x1.26"

    Pinout

    dfr0627 Pinout
    dfr0627 Pinout
    dfr0627 Pinout

    Num Name Description
    1 +/VCC Positive
    2 -/GND Negative
    3 C IIC Clock Line
    4 D IIC Data Line
    5 RST Reset Pin
    6 IA GPIOA Interrupt Detection Pin
    7 IB GPIOB Interrupt Detection Pin
    8 PWR Power Indicator
    9 A0/A1/A2 IIC Address Switch

    Digital IO Port Table

    CPIOA 0 1 2 3 4 5 6 7
    PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7
    CPIOB 8 9 10 11 12 13 14 15
    PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7

    Each digital pin in the table can be arbitrarily configured as input or output, and a pull-up input, interrupt and so on.

    FAQ

    • Has this been discontinued, and if not, what is the ETA for stock arrival?

      I get the following error after compile NANO ESP32 board:

      In file included from C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:2:
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:127:27: error: expected ')' before '&' token
      DFRobot_MCP23017(TwoWire &wire = Wire, uint8_t addr = 0x27);
      ~ ^~
      )
      In file included from C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/Arduino.h:223,
      from C:\Users\STERGIOS\AppData\Local\Temp\arduino\sketches\B8181C72A8CE2F11A73E666B827C4C2F\sketch\MCP23017_DfR_Test_1.ino.cpp:1:
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: error: 'digitalPinToGPIONumber' is not a type
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:46:66: error: 'digitalPinToGPIONumber' is not a type
      #define digitalWrite(pin, val) digitalWrite(digitalPinToGPIONumber(pin), val)
      ^~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:154:7: note: in expansion of macro 'digitalWrite'
      int digitalWrite(ePin_t pin, uint8_t level);
      ^~~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: error: 'digitalPinToGPIONumber' is not a type
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      In file included from C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:2:
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:299:3: error: 'TwoWire' does not name a type; did you mean 'TwoWire_h'?
      TwoWire *_pWire;
      ^~~~~~~
      TwoWire_h
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:19:22: error: 'Wire' was not declared in this scope
      DFRobot_MCP23017 mcp(Wire, /*addr =*/0x20);//constructor, change the Level of A2, A1, A0 via DIP switch to revise the I2C address within 0x20~0x27.
      ^~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:19:22: note: suggested alternative: 'pipe'
      DFRobot_MCP23017 mcp(Wire, /*addr =*/0x20);//constructor, change the Level of A2, A1, A0 via DIP switch to revise the I2C address within 0x20~0x27.
      ^~~~
      pipe
      In file included from C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/Arduino.h:223,
      from C:\Users\STERGIOS\AppData\Local\Temp\arduino\sketches\B8181C72A8CE2F11A73E666B827C4C2F\sketch\MCP23017_DfR_Test_1.ino.cpp:1:
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino: In function 'void setup()':
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:39:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPA0, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:40:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPA1, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:41:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPA2, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:42:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPB7, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:43:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPA4, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:44:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPB6, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:45:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPB5, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:46:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPB4, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:47:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPB3, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:83: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:48:7: note: in expansion of macro 'pinMode'
      mcp.pinMode(/*pin = */mcp.eGPB2, /*mode = */INPUT_PULLUP);
      ^~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:47:61: note: initializing argument 1 of 'int DFRobot_MCP23017::pinMode(int (*)(DFRobot_MCP23017::ePin_t), uint8_t)'
      #define pinMode(pin, mode) pinMode(digitalPinToGPIONumber(pin), mode)
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:145:7: note: in expansion of macro 'pinMode'
      int pinMode(ePin_t pin, uint8_t mode);
      ^~~~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino: In function 'void loop()':
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:87: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:69:24: note: in expansion of macro 'digitalRead'
      uint8_t value1 = mcp.digitalRead(/*pin = */mcp.eGPB7);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: note: initializing argument 1 of 'int DFRobot_MCP23017::digitalRead(int (*)(DFRobot_MCP23017::ePin_t))'
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:87: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:70:24: note: in expansion of macro 'digitalRead'
      uint8_t value2 = mcp.digitalRead(/*pin = */mcp.eGPB6);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: note: initializing argument 1 of 'int DFRobot_MCP23017::digitalRead(int (*)(DFRobot_MCP23017::ePin_t))'
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:87: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:71:24: note: in expansion of macro 'digitalRead'
      uint8_t value3 = mcp.digitalRead(/*pin = */mcp.eGPB5);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: note: initializing argument 1 of 'int DFRobot_MCP23017::digitalRead(int (*)(DFRobot_MCP23017::ePin_t))'
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:87: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:72:24: note: in expansion of macro 'digitalRead'
      uint8_t value4 = mcp.digitalRead(/*pin = */mcp.eGPB4);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: note: initializing argument 1 of 'int DFRobot_MCP23017::digitalRead(int (*)(DFRobot_MCP23017::ePin_t))'
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:87: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:73:24: note: in expansion of macro 'digitalRead'
      uint8_t value5 = mcp.digitalRead(/*pin = */mcp.eGPB3);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: note: initializing argument 1 of 'int DFRobot_MCP23017::digitalRead(int (*)(DFRobot_MCP23017::ePin_t))'
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:87: error: invalid conversion from 'int8_t' {aka 'signed char'} to 'int (*)(DFRobot_MCP23017::ePin_t)' [-fpermissive]
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ~~~~~~~~~~~~~~~~~~~~~~^~~~~
      C:\Users\STERGIOS\Desktop\MCP23017_DfR_Test_1\MCP23017_DfR_Test_1.ino:74:24: note: in expansion of macro 'digitalRead'
      uint8_t value6 = mcp.digitalRead(/*pin = */mcp.eGPB2);
      ^~~~~~~~~~~
      C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\cores\esp32/io_pin_remap.h:42:65: note: initializing argument 1 of 'int DFRobot_MCP23017::digitalRead(int (*)(DFRobot_MCP23017::ePin_t))'
      #define digitalRead(pin) digitalRead(digitalPinToGPIONumber(pin))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      c:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master/DFRobot_MCP23017.h:162:7: note: in expansion of macro 'digitalRead'
      int digitalRead(ePin_t pin);
      ^~~~~~~~~~~
      Multiple libraries were found for "Wire.h"
      Used: C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire
      Not used: C:\Users\STERGIOS\Documents\Arduino\libraries\Wire
      Using library DFRobot_MCP23017 at version 1.0.0 in folder: C:\Users\STERGIOS\Documents\Arduino\libraries\DFRobot_MCP23017-master
      Using library Wire at version 2.0.0 in folder: C:\Users\STERGIOS\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.13\libraries\Wire
      exit status 1

      Compilation error: 'Wire' was not declared in this scope

      Any help would be greatly appreciated

    Explore More Related Questions >

    Was this article helpful?

    TOP