Biblioteka Easyswitch_MCP23017

Poniżej nakładka na bibliotekę Adafruit-MCP23017-Arduino-Library,
Biblioteka pozwala na utworzenie jednej klasy dla wszystkich (4,8) ekspanderów ułatwiając korzystnie z nich.

Rozpakowujemy folder do Arduino\libraries , w Windows :
C:\Program Files (x86)\Arduino\libraries

Pobiernie:

 

Opis funkcji:

setAllMode(byte mode);  // INPUT, OUTPUT
  ustawienie wejść lub wyjść dla wszystkich ekspanderów

setMcpMode(byte select_mcp, byte mode); // (1,2,3,4,5,6,7,8 ; INPUT,OUTPUT)
  ustawienie wejść lub wyjść dla danego ekspandera

setPinMode(byte select_mcp, byte pin, byte mode); // (1,2,3,4,5,6,7,8 ; 0-15 ; INPUT,OUTPUT)
  ustawienie wejścia lub wyjścia dla danego pinu

void setAllState(byte set); // HIGH , LOW
  ustawienie wszystkich wyjść , HIGH , LOW

void setMcpState(byte select_mcp, byte set);< br/>
  ustawienie wyjść dla danego ekspandera (1,2,3,4,5,6,7,8 ; HIGH,LOW)

void setPinState(byte select_mcp, byte pin, byte set);
  ustawienie wyjść dla danego pinu ekspandera (1,2,3,4,5,6,7,8 ; 0-15; HIGH,LOW)

Przykładowy kod :

#include "Easyswitch_MCP23017.h" // dodajemy bibliotekę do obsługi MCP

Easyswitch_MCP23017 mcp(4); // w nawiasie liczba ekspanderów. (adresy 0x20,0x21,0x22,0x23)

void setup() { 
  mcp.begin();
  mcp.setAllMode(OUTPUT); // ustaw wszystkie ekspandery jako wyjscia
  mcp.setAllState(LOW); // ustaw wszystkie wyjścia na GND
}

void loop() {
  // ustaw wyjścia , VCC
  mcp.setPinState(1, 0 , HIGH); // ekspander 1, pin 0 , ustaw VCC
  sleep(100); // poczekaj 100ms
  mcp.setPinState(1, 1 , HIGH); // ekspander 1, pin 1 , ustaw VCC
  sleep(100); // poczekaj 100ms
  mcp.setPinState(1, 2 , HIGH); // ekspander 1, pin 2 , ustaw VCC
  sleep(100);
  mcp.setPinState(4, 8 , HIGH); // ekspander 4, pin 8 , ustaw VCC
  sleep(100); // poczekaj 100ms
  mcp.setPinState(4, 9 , HIGH); // ekspander 4, pin 9 , ustaw VCC
  sleep(100); // poczekaj 100ms
  mcp.setPinState(4, 10 , HIGH); // ekspander 4, pin 10 , ustaw VCC
  sleep(100);

  //  ustaw wyjścia , GND
  mcp.setPinState(1, 0 , LOW); // ekspander 1, pin 0 , ustaw GND
  sleep(100); // poczekaj 100ms
  mcp.setPinState(1, 1 , LOW); // ekspander 1, pin 1 , ustaw GND
  sleep(100); // poczekaj 100ms
  mcp.setPinState(1, 2 , LOW); // ekspander 1, pin 2 , ustaw GND
  sleep(100);
  mcp.setPinState(4, 8 , LOW); // ekspander 4, pin 8 , ustaw GND
  sleep(100); // poczekaj 100ms
  mcp.setPinState(4, 9 , LOW); // ekspander 4, pin 9 , ustaw GND
  sleep(100); // poczekaj 100ms
  mcp.setPinState(4, 10 , LOW); // ekspander 4, pin 10 , ustaw GND
}

Wersje:

v1_0:
pierwsza wersja.