Pro M5stack jednotky lze zakoupit různé rozšiřovací moduly, kdy mezi komunikační jednotky patří právě Laser TX a RX. Tyto moduly jsou samostatné prodejné, kdy jedna slouží k příjmu a druhá k vysílání signálů formou viditelného červeného laserového paprsku.
Pro jeho spojení s M5stack deskou stačí propojit 3 vodiče u každého z modulů se samostatnou M5stack či ESP32 jednotkou/vývojovou deskou, kdy piny GND a VCC jsou stejně zapojeny na obou stranách. Připojíme GND s GND, IN s pinem D36, OUT s pinem D32 a VCC s pinem 5V. Piny IN a OUT můžete připojit i na jiné volné GPIO piny, jen je nutné provést změnu také 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. Je v něm uvedena ukázka dekódování přijímaného signálu z ovladače na televizi:
// M5 stack a jednotka Laser
// Bezdrátová komunikace laserovým paprskem
// navody.dratek.cz
// připojení potřebné knihovny
#include <M5Stack.h>
// proměnná pro uložení přijatého znaku
char ch;
// nastavení typu připojeného modulu
#define TX
//#define RX
// nastavení čísel propojovacích pinů
#define TX_PIN 32
#define RX_PIN 36
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í druhé sériové linky, na které bude probíhat komunikace
Serial2.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
// vypsání informací o typu zařízení na displej
M5.Lcd.setTextSize(4);
M5.Lcd.setTextColor(GREEN);
M5.Lcd.setCursor(60, 50);
#ifdef RX
M5.Lcd.print("LASER RX");
#elif defined TX
M5.Lcd.print("LASER TX");
#endif
M5.Lcd.setCursor(0, 100);
}
void loop() {
// část kódu pro RX část
#ifdef RX
// aktualizace M5 obvodů
M5.update();
// kontrola příchozích dat
if (Serial2.available()) {
// načtení příchozího znaku
char ch = Serial2.read();
// vytištění příchozího znaku na displej
M5.Lcd.print(ch);
}
// kontrola stisknutí tlačítka A
if (M5.BtnA.wasReleased()) {
// vymazání displeje a nastavení kurzoru na začátek
M5.Lcd.clear();
M5.Lcd.setCursor(0, 0);
}
// část kódu pro TX část
#elif defined TX
// poslání zprávy přes Laser modul,
// lze použít write i print:
// Serial2.write('A');
Serial2.print("Ahoj ");
// krátká pauza
delay(50);
#endif
}
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.