Pro M5stack jednotky lze zakoupit různé rozšiřovací moduly, kdy jedním ze základních je RGB. Tento modul obsahuje 3 RGB LED diody kompatibilní se systémem Neopixel.

M5stack jednotka RGB se třemi Neopixel diodami

Pro jeho spojení s M5stack deskou stačí propojit 3 vodiče. Připojíme GND s GND, OUT s pinem D26 a VCC s pinem 5V. Pin OUT můžete připojit i na jiné volné GPIO piny, jen je nutné provést změnu taky na začátku programu.

M5stack jednotka RGB se třemi Neopixel diodami

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. Kromě RGB modulu je v něm zanasena také práce s dalšími třemi tlačítky přímo na M5stack:

// M5 stack a jednotka RGB
// Jednotka s 3xRGB diodami typu Neopixel
// navody.dratek.cz

// připojení potřebných knihoven
#include <Adafruit_NeoPixel.h>
#include <M5Stack.h>
// nastavení čísel propojovacích pinů
#define BUT_A   39
#define BUT_B   38
#define BUT_C   37
#define RGB_PIN 26
// počet RGB diod
#define NUMPIXELS 3

// vytvoření objekt pixels z knihovny
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, RGB_PIN, NEO_GRB + NEO_KHZ800);
// proměnná pro uložení délky zpoždění
int zpozdeni = 0;

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);
  // nastavení tlačítek jako vstupů
  pinMode(BUT_A, INPUT_PULLUP);
  pinMode(BUT_B, INPUT_PULLUP);
  pinMode(BUT_C, INPUT_PULLUP);

  // zahájení komunikace s RGB diodami
  pixels.begin();
  // výpis informace na displej
  M5.Lcd.setTextFont(4);
  M5.Lcd.setCursor(70, 100, 4);
  M5.Lcd.println("RGB priklad");
}

void loop() {
  // nastavení délky zpoždění
  // pomocí čtení stavu tlačítek
  if (digitalRead(BUT_A) == LOW) {
    zpozdeni = 100;
  }
  else if (digitalRead(BUT_B) == LOW) {
    zpozdeni = 300;
  }
  else if (digitalRead(BUT_C) == LOW) {
    zpozdeni = 500;
  }
  else {
    zpozdeni = 1000;
  }
  // nastavení barev na jednotlivé RGB diody s intenzitou složek 0-255
  // funkce setPixelColor(číslo diody, barva(červená, zelená, modrá))
  pixels.setPixelColor(0, pixels.Color(100, 0, 0));
  pixels.setPixelColor(1, pixels.Color(0, 100, 0));
  pixels.setPixelColor(2, pixels.Color(0, 0, 100));
  // nahrání nastavení do RGB diod
  pixels.show();
  // nastavené zpoždění
  delay(zpozdeni);
  // nastavení barev na jednotlivé RGB diody s intenzitou složek 0-255
  // funkce setPixelColor(číslo diody, barva(červená, zelená, modrá))
  pixels.setPixelColor(0, pixels.Color(0, 100, 0));
  pixels.setPixelColor(1, pixels.Color(0, 0, 100));
  pixels.setPixelColor(2, pixels.Color(100, 0, 0));
  // nahrání nastavení do RGB diod
  pixels.show();
  // nastavené zpoždění
  delay(zpozdeni);

  // nastavení barev na jednotlivé RGB diody s intenzitou složek 0-255
  // funkce setPixelColor(číslo diody, barva(červená, zelená, modrá))
  pixels.setPixelColor(0, pixels.Color(0, 0, 100));
  pixels.setPixelColor(1, pixels.Color(100, 0, 0));
  pixels.setPixelColor(2, pixels.Color(0, 100, 0));
  // nahrání nastavení do RGB diod
  pixels.show();
  // nastavené zpoždění
  delay(zpozdeni);
}

Sestřih ze streamu:

Celý záznam:

Na eshopu můžete tento M5stack Accel modul zakoupit zde:
https://dratek.cz/arduino/20929-m5stack-rgb-led-modul.html

FB tw

Další podobné články