Using an MCP23017 Expander as a Virtual Board (16 Pin Digital IO). Pins 15-17 are used to set the I2C hardware address. By default, these pins must be connected to ground. See page eight of the data sheet
Breadboard for "Expander - MCP23017"
Fritzing diagram: expander-MCP23017.fzz
Run this example from the command line with:
node eg/expander-MCP23017.js
const { Board, Expander, Leds } = require("johnny-five");
const board = new Board();
board.on("ready", () => {
const virtual = new Board.Virtual(
new Expander("MCP23017")
);
const leds = new Leds(
Array.from(Array(8), (_, i) =>
({ pin: i * 2, board: virtual })
)
);
leds.blink(500);
board.repl.inject({
leds
});
});