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.
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.
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);
}
Motorizovaný kulový ventil. Má široké uplatnění v různých průmyslových a obytných instalacích. Může být integrován do automatických systémů řízení, kde je možné ovládat průtok dálkově nebo automatizovaně podle předem nastavených podmínek.
Motorizované kulové vently s obvodem CR01, CR02, CR03 nebo CR04 je poměrně jednoduché po elektrické stránce správně zapojit. U ventilu s obvodem CR05 je tomu ale trochu jinak - ventil si sám nehlídá krajní polohy otevření, nebo zavření. Z toho důvodu vznikl tento článek, ukazující některé výhody, použití a především správné zapojení ventilu s obvodem CR05.