MCP23008

Med en MCP23008 kan man utvide systemet med 8 GPIO porter, som blir styrt via I2C.
Last ned datablad: MCP23008-MCP23S08-Data-Sheet-20001919F.pdf

MCP23008

Vdd = Pluss
Vss = Minus
GP0-7 = GPIO porter
SCL/SDA = I2C buss
NC = Ikke i bruk
RESET = Reset registere
INT = Interrupt pin

A0-A2 er adressepinner, hvis man har flere enheter. Kan ha opp til 8 stk.
Koble adressepinne(ne) man vil bruke til Vdd med en 10k resistor per pin. 0x20 er default (alle koblet til Vss)

A0 A1 A2 Adresse
Vss Vss Vss 0x20
Vdd Vss Vss 0x21
Vss Vdd Vss 0x22
Vdd Vdd Vss 0x23
Vss Vss Vdd 0x24
Vdd Vss Vdd 0x25
Vss Vdd Vdd 0x26
Vdd Vdd Vdd 0x27

Eksempel på oppkobling med en enkel bryter og adresse 0x20 (default i Adafruit sitt biblotek):

circuit

#include "Adafruit_MCP23008.h"

Adafruit_MCP23008 mcp;

void setup() {
  mcp.begin();           // begin(ADRESSE) for annen adresse
  mcp.pinMode(0, INPUT); // Sett GP0 til input
  mcp.pullUp(0, HIGH);   // Bruk en intern svak 100k motstand
  pinMode(13, OUTPUT);   // Sett pin 13 (LED ved usb port på nanoen) til output
}

void loop() {
  // Slå LED av og på med bryteren
  digitalWrite(13, mcp.digitalRead(0));
}