Pro M5stack jednotky lze zakoupit různé rozšiřovací moduly, kdy jedním z nich je rozšíření EXT.IO. Tento modul obsahuje I2C extender PCA9554, který nám přidá 8 digitálních vstupně-výstupních pinů.
Pro jeho spojení s M5stack deskou stačí propojit 4 vodiče nebo použít Grove konektor PortA. Propojíme GND s GND, VCC s pinem 5V, SDA s pinem D21 a SCL s pinem D22. Piny pro I2C sběrnici SDA a SCL můžete připojit i na jiné volné GPIO piny, jen je nutné provést změnu taky na začátku programu.
Ukázkový program najdete níže, přičemž jeho popis můžete najít na videu, které je připojeno na konci návodu:
// M5 stack a jednotka EXT IO // Jednotka rozšiřující sběrnicí 8 pinů // navody.dratek.cz // připojení potřebných knihoven #include <M5Stack.h> #include "PCA9554.h" // vytvoření objektu z knihovny PCA9554 extIO(0x20); // Create an object at this address // proměnná pro uložení čteného výsledku byte vysledek; void setup() { // zahájení komunikace s M5 stack M5.begin(); // zahájení komunikace s napájecím čipem M5.Power.begin(); // vypnutí reproduktoru dacWrite(25, 0); // zahájení komunikace po I2C sběrnici Wire.begin(); // vyčištění obrazovky a vypsání informací M5.Lcd.clear(BLACK); M5.Lcd.setTextSize(2); M5.Lcd.setTextColor(YELLOW); M5.Lcd.setCursor(70, 0); M5.Lcd.print("EXT_IO ukazkan"); M5.Lcd.setCursor(5, 20); M5.Lcd.print("Pripojte jednotku do PortA"); M5.Lcd.setTextColor(WHITE); // nastavení komunikačních I2C pinů extIO.twiWrite(21, 22); delay(10); // nastavení funkce pinů //extIO.portMode0(ALLOUTPUT); //Set the port as all output extIO.pinMode0(0, OUTPUT); extIO.pinMode0(1, INPUT); } void loop() { // ukázka zápisu na jednotlivé piny extIO.digitalWrite0(0, HIGH); delay(1000); extIO.digitalWrite0(0, LOW); delay(1000); // ukázka čtení stavu celého portu // a výpis v binárním kódu extIO.digitalReadPort0(vysledek); Serial.print("Vysledek: "); Serial.println(vysledek, BIN); // vymazání předchozího textu pomocí černého obdélníka M5.Lcd.fillRect(160, 25 + 40, 100, 25, BLACK); M5.Lcd.setCursor(160, 25 + 40); M5.Lcd.print(vysledek, BIN); }
Sestřih ze streamu:
Celý záznam:
Na eshopu můžete tento M5stack modul zakoupit zde:
https://dratek.cz/arduino/20932-m5stack-i-o-rozsireni.html