Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Hvis du har for få inn-/ utganger kan du bruke en port expander. MCP23008 er en integrert krets som gir deg 8 ekstra inn-/ utganger ved å bruke bare to pinner på Arduino. Den kommuniserer via I²C. Denne kretsen har 3 adressepinner som må kobles enten høy (5V) eller lav (jord) for å bestemme adressen på kretsen. Det vil si at du kan koble opp 8 kretser på den samme bussen, og det vil gi 64 ekstra inn-/ utganger. Det finnes også en 16-ports versjon , MCP23017, som gjør at du maksimalt kan få 128 inn-/ utganger på I²C-bussen på en Arduino Uno.

Datablad MCP23008

Datablad MCP23017

Bibliotek MCP23008

Bibliotek MCP23017

Forklaring på pinnene

SCL: Klokkelinje I²C, kobles til A5 på Arduino Uno.

SDA: Datalinje I²C, kobles til A4 på Arduino Uno.

RESET: Denne kobles til +5V gjennom en 10kΩ motstand.

VDD: +5V.

VSS: Jord.

GP0..GP7: General purpose IO. Disse kan konfigureres som inn- eller utganger. De har også intern pullup som Arduino.

A0..A2: Adressepinner (se tabell under).

INT: Interrupt. Denne kan kobles til en interruptlinje på Arduino (D2 eller D3 på Uno). Den gir et signal når det er endring på en inngang.

NC: No connection.

Adressering:

For å kommunisere via I²C må Arduino vite adressen til kretsen den skal kommunisere med. På disse kretsene er det 3 adressepinner, A0, A1 og A2 som kobles enten høy eller lav etter følgende tabell:

A2A1A0Adresse
0000
0011
0102
0113
1004
1015
1106
1117

 

Eksempel med en inngang og en utgang

Her er det koblet inn en trykkbryter på GP0, og en LED på GP3. Alle adressepinnene er koblet til jord, altså I²C-adressen er 0.

Code Block
languagecpp
titlemcp23008_test
#include <Wire.h>
#include <Adafruit_MCP23008.h>

const int addr = 0;
Adafruit_MCP23008 mcp;

void setup(){
  mcp.begin(addr);
  mcp.pinMode(0, INPUT);
  mcp.pinMode(3, OUTPUT);
}

void loop(){
  if(mcp.digitalRead(0))
    mcp.digitalWrite(3, HIGH);
  else
    mcp.digitalWrite(3, LOW);
}

GitHub: Examples/PortExpander/PortExpander.ino