GPIO expander
Što ovaj primjer pokazuje
Treptanje LED diode s pina GPIO expandera PCAL6416A. Njegovih 16 pinova izvedeno je na header GPIO EXPANDER kao P0-0 do P0-7 i P1-0 do P1-7. U kodu su P0-0 do P0-7 pinovi od 0 do 7 (IO_PIN_A0 do IO_PIN_A7), a P1-0 do P1-7 pinovi od 8 do 15 (IO_PIN_B0 do IO_PIN_B7).
Prije učitavanja spojite sve ovako: jedan kraj otpornika od 330 Ω spojite na P1-7, drugi kraj na anodu LED diode, a katodu LED diode na GND. Ta vrijednost potječe iz ove skice; MicroPython primjer za GPIO expander umjesto toga traži otpornik od 300 Ω na P1-5.
Primjer koda
#include "Inkplate.h" //Include Inkplate library to the sketch
// We are going to use pin P1-7 (or GPB7 on older Inkplates).
// Remember! GPA0 = 0, GPA1 = 1, ..., GPA7 = 7, GPB0 = 8, GBP1 = 9, ..., GPB7 = 15.
// And also P0-0 = GPA0, P0-1 = GPA1, ..., P0-7 = GPA7, P1-0 = GPB0, P1-1 = GPB1, ..., P1-7 = GPB7.
#define LED_PIN IO_PIN_B7
Inkplate display; // Create an object on Inkplate library and also set library into 1-bit mode (BW)
void setup()
{
display.begin(); // Init Inkplate library (you should call this function ONLY ONCE)
display.expander1.pinMode(LED_PIN,
OUTPUT); // Set P1-7 to output. On that pin, we sholud connect LED with current limiting resistor
// If we do not specify which IO expander we want to use, by the default external IO
// expander will be used of the one with header named IO Expander 2.
}
void loop()
{
display.expander1.digitalWrite(LED_PIN, LOW); // Set output to low (LED does not light up)
delay(1000); // Wait for one second
display.expander1.digitalWrite(LED_PIN, HIGH); // Set output to high (LED lights up)
delay(1000); // Wait for one second
}
Neki komentari u datoteci napisani su za druge Inkplate pločice: Inkplate 7SPECTRA nema 1-bitni način rada, a njegov header expandera označen je kao GPIO EXPANDER.
Korištene funkcije
Inkplate()returns NoneStvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šestobojni način rada, pa konstruktor ne prima argument načina rada.
ReturnsKonstruktor; nema povratne vrijednosti.
display.begin()returns voidInicijalizira biblioteku i periferne jedinice, uključujući GPIO expander na I2C adresi 0x20. Pozovite ga jednom u setup().
ReturnsNišta.
display.expander1.pinMode(uint8_t _pin, uint8_t _mode, bool _bypassCheck = false)returns voidPostavlja način rada pina expandera, poput Arduino funkcije pinMode().
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | _pin | Pin expandera, od 0 do 15, ovdje IO_PIN_B7 (P1-7). |
uint8_t | _mode | Arduino način rada pina, ovdje OUTPUT. |
bool | _bypassCheck | Zadano je false. |
display.expander1.digitalWrite(uint8_t _pin, uint8_t _state, bool _bypassCheck = false)returns voidPostavlja izlazni pin expandera na HIGH ili LOW.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | _pin | Pin expandera, od 0 do 15. |
uint8_t | _state | HIGH ili LOW. |
bool | _bypassCheck | Zadano je false. |
Što očekivati
LED dioda na P1-7 treperi: jednu sekundu je isključena, jednu sekundu uključena. Zaslon se ne mijenja, a skica ništa ne ispisuje u Serial Monitor.
Biblioteka koristi P1-1 za mjerenje napona baterije, a P1-2 za napajanje microSD kartice. Ta dva pina ostavite slobodnima; pogledajte Jumperi.
🔗Otvorite cjeloviti primjer
examples/Inkplate7SPECTRA/Advanced/IO/Inkplate7SPECTRA_External_IO_Expander