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.