Pojďme programovat elektroniku

Programování elektroniky: Rozsvítíme barevné EL žížaly za stovku. Měří pět metrů a o světlo se tentokrát stará fosfor

  • Nedávno jsme si pohráli s 30cm LED gumičkami
  • Dnes vyzkoušíme 16× delší elektroluminiscenční kabel
  • Pohání jej střídavý proud a elektroluminiscence fosforu

Bílé a žluté obálky s 3V gumovými zářícími LED žížalami za pár kaček už jistě zaplavily Česko a dorazily do schránky každého pravověrného kutila, jenže tím žížalománie rozhodně nekončí. Málem bychom totiž zapomněli na sice starší, ale neméně efektní technologii EL drátů.

Oproti třiceticentimetrovým gumičkám mohou mít mnohametrovou délku a svítí spojitým světlem v celé délce a do všech směrů. Dnes si proto vyzkoušíme rovnou pětimetrový drát, který seženete třeba na českém LaskaKitu za 94 korun.

E-shop jej prodává pod názvem flexibilní neonová trubice, slovíčko neon je nicméně trošku zavádějící, v nitru PVC kabelu s průměrem 2,3 milimetrů (podobný jako u LED žížal) se totiž žádný takový plyn nenachází. EL dráty pouze září podobným jasem jako staré reklamní poutače.

Podívejte se na video krok za krokem, co si dnes postavíme a jak EL drát svítí za bílého dne, v naprosté tmě a pod mikroskopem:

  • 00:30 EL drát za stovku
  • 01:16 12V invertor pro výrobu 110 VAC
  • 02:00 Neon Shield a ESP32-LPKit
  • 03:45 Krabička z 3D tiskárny (Tinkercad)
  • 04:18 První test
  • 06:52 Jak svítí EL drát v naprosté tmě
  • 07:14 Červený, zelený, modrý a žlutý EL drát
  • 08:13 EL drát pod mikroskopem

Elektroluminiscenční drát

Ve skutečnosti se tedy jedná o tzv. EL drát (EL Wire), tedy elektroluminiscenční kabel složený z několika vrstev. Finální barvu a tuhost dává kabelu povrchová vrstva PVC, ve skutečnosti ale září vnitřní elektroluminiscenční jádro složené z dvojice elektrod, které odděluje dielektrické vrstvy z fosforu.

EL wire - schema.png
Základní schéma EL drátu

Když na elektrody přivedeme slabý střídavý proud s vysokou frekvencí a napětím nejméně několika desítek voltů, na elektrodách vznikne silné elektrické pole, které vybudí atomy fosforu a jeho elektrony. Ty se začnou uvolňovat a zase rekombinovat, při tom ale uvolní energii ve formě fotonů.

Vrstvička fosforu začne slabě zářit bílým až namodralým světlem, které prostupem přes povrchový obal PVC získá finální odstín. Běžný EL Wire za pár desetikorun rozhodně nedosáhne jasu LED žížal, ale za šera a v noci svítí velmi pěkně.

Image 064.pngImage 065.png
Elektroluminiscence pod redakční lupou. Všimněte si namodralé záře v nitru odkrytého kabelu. Více si o tom povíme ve videu

Drát se nezahřívá, elektroluminiscence totiž není odporové světlo a EL wire se chová spíše jako dlouhý kondenzátor s kapacitou 6 nF na metr, takže v kratších délkách, které nevyžadují tak vysokou voltáž, může být i součástí oděvů, můžete z něj vytvarovat nějaké svítící logo, zářící prvky na automobilu atp.

Střídavý proud vyrobí vysokofrekvenční invertor

Oscilující signál pro vybuzení atomů fosforu v EL drátech vyrobí speciální invertor. Náš kabel má délku 5 metrů, a tak jsme na LaskaKitu objednal laciný a bezejmenný model za 78 korun. Invertor můžeme napájet z 12V stejnosměrného zdroje, načež vyrobí střídavý proud s frekvencí až 3 kHz a napětím 110 V.

0f803871-a939-40ed-8f47-81bd3926476a
Laciný invertor, který z 12 VDC vyrobí 110 VAC při frekvenci až okolo 3 kHz

Připravte se na to, že s frekvencí v řádu jednotek tisíc Hz budou cívky v nitru invertoru slabě pískat, takže se rozhodně nehodí k posteli a bez dodateční zvukové izolace ani k ozářené psí boudě.

Běží to i na menších frekvencích a napětích

Střídavý proud s napětím 110 V už není zrovna hračka pro děti. Sice sto stále není 50Hz 230V signál z domácí elektrické zásuvky, nicméně ani tak není zrovna nejlepší nápad, abyste se dotýkali živých kontaktů.

Použitý invertor si poradí i s nižším vstupním napětím, takže pokud máte stejně jako já respekt z čehokoliv, co vyrábí více než 12 voltů, můžete jej napájet třeba z 9V baterie, anebo dokonce několika tužkových baterií v sérii.

ef613011-0332-4097-9b2f-bd45d2bdb6677d2c4a65-96af-4e08-a03f-a818c8f0e6c46c4bf896-501b-420e-a2db-fd5c005ff9ea
Různý jas za bílého dne podle napájení invertoru (5-12 V)

V takovém případě bude invertor vyrábět střídavý proud s napětím jen několika desátek voltů a dramaticky se propadné i frekvence, takže přestane pískat. Samozřejmě ale také klesne jas. A to tak, že za světla téměř nepoznáte, že svítí. V šeru a ve tmě ale bude záře opět jasně patrná.

Obecně tedy platí, že jas EL drátu nastavujeme nejen napětím, ale i frekvencí. Ten náš by si měl podle dokumentace (PDF) poradit s těmito rozsahy:

  • Napětí: 20-220 VAC
  • Frekvence: 50-5000 Hz
  • Svítivost při napětí 120 VAC a frekvenci 200-2000 Hz: 30-126 cd/m²
  • Spotřeba při napětí 120 VAC a frekvenci 200-2000 Hz: 108-1032 mW/m

Mimochodem, co se spotřeby týče, je třeba připočítat ještě odběr samotného invertoru, takže když jsme jej napájeli 12 V ze stolního zdroje, který vyráběl zhruba 106 VAC při 3000 Hz, celkový odběr u pětimetrového kabelu činil zhruba 2,5 W. A jelikož spotřeba neroste lineárně, když jsme snížili vstupní napětí na 5 V, už to byl jen zanedbatelný zlomek (zlomková ale byla i svítivost).

LaskaKit ESP32-DEVKit Neon Shield

K rozsvícení EL drátu potřebujeme jen stejnosměrný zdroj a invertor, co když ale budeme chtít do hry zapojit i nějakou tu logiku? Jak už jsem napsal výše, osobně mám respekt před jakýmkoliv napětím v řádu desítek voltů a výše a spíše mě baví hledat limity na spodní hranici (ultra low power), a tak jsem jakoukoliv práci se 100-110 volty z invertoru přenechal desce Neon Shield, kterou seženete za 288 korun.

7b25804c-709a-4404-9224-d639021e92ad
Adaptér LaskaKit ESP32-DEVKit Neon Shield pro spínání až šesti EL drátů

Deska nabízí šest výstupních kanálů s dvoupinovými samčími konektory JST XH, do kterých můžete připojovat EL dráty. Ty ale mají zpravidla samčí konektory JST SM, a tak si budete muset vyrobit buď redukci, nebo koncovky drátů nahradit. To se mimochodem týká i invertoru, protože i ten se na desce připojuje výhradně skrze konektor JST XH.

670a37d3-7926-411f-9e12-fc061d92b28e87860fec-a4b6-40de-b525-198d3ee51ba7c01172f1-3d49-4b23-92ee-802378c60c53
Náhrada konektorů JST SM na EL drátech za JST XH pro snadné připojení k desce a řídící mikropočítače ESP32-LPKit

Nakonec k desce připojíme řídící mikropočítač, přičemž modul už podle svého názvu předpokládá, že to bude prototypovací mašinka ESP32-LPKit, tedy řídící deska s oblíbeným čipem ESP32 s Wi-Fi a Bluetooth, se kterým jsme v našem seriálu pracovali už mnohokrát a můžete jej programovat i v jednoduchém Arduinu.

O spínání kanálů se starají optočleny a triaky

Konektory EL drátů 1-6 jsou na desce ESP32-LPKit připojené na GPIO výstupy 12, 13, 14, 25, 26 27 a spínáme jej prostým nastavením logického stavu na HIGH. Každý z těchto výstupů je připojený na optočlen MOC3063 a triakový spínač Z0103MN (viz schéma desky).

0e441e59-78c7-4531-9520-2df8e1d6f366
Izolovaný spínač AC pomocí optočlenu MOC3063 a triaku Z0103MN

3V signál z ESP32 se tedy převede na 110VAC okruh invertoru optickou cestou v nitru optočlenu rozsvícením LED a následnou detekcí světla fotodetektorem. Ten zároveň sepne 110VAC okruh při průchodu střídavého signálu nulou, takže by změna měla být maximálně čistá.

6a3fa4df-6b81-4166-b020-4a4ce53886d6
Schéma zapojení na desce

Jednouchý program pro spínání pomocí HTTP

A to je vlastně celé. Na desce jsou nakonec ještě konektory pro stejnosměrné napájení 7-20 V a 5V regulátor řady 7805 připojený k ESP32-LPKit. Na pohon celého zařízení bychom proto mohli použit jeden dostatečně silný 12V zdroj, který připojíme do jednoho konektoru, do druhého zapojíme vstup pro invertor a regulátor vyrobí pohon pro destičku řídícího počítače. Tu ale můžete napájet i separátně pomocí USB.

e25830be-c6b3-4a3a-b82c-877a9613cb0c664f9ece-08c9-4c3a-bde2-01d23b5d9abc
Volitelný zdroj stejnosměrného napájení 7-20V přímo na desce

Mohl by na ní běžet mírně upravený program napsaný v Arduinu, který jsme použili už pro ovládání LED žížaly. Tentokrát ale bude pracovat hned s šesti vstupy. Procesor se tedy po připojení napájení připojí k předdefinované síti Wi-Fi (2,4GHz/802.11bgn) a spustí si primitivní HTTP server, který budeme moci ovládat zavoláním URL s dvojicí parametrů kanal a stav v této podobě:

http://<ipadresa>/?kanal=<hodnota 1-6>&stav=<hodnota 0-1>

Hodnota 1 rozsvítí elektroluminiscenční drát na vybraném kanálu a hodnota 0 jej zhasne. Takže kdyby náš řídící čip získal od Wi-Fi routeru třeba místní adresu 192.168.0.231, pak bychom čtvrtý kanál sepnuli povelem:

http://192.168.0.231/?kanal=4&stav=1

A to je pro dnešek už opravdu všechno. Takže hurá do elektroluminiscence, která sice oproti LED žížalám nenabídne tak silný jas, je to ale vhodné řešení, pokud potřebujete mnohem delší a spojitě svítící vodič, jehož celková spotřeba bude nakonec mnohem menší než alternativa vyrobená z LED.

Zdrojový kód programu

/*
Jednoduuchy HTTP ovladac svitivych EL dratu pomoci prototypovaci desky
LaskaKit ESP32-DEVKit Neon Shield
a https://www.laskakit.cz/laskakit-esp32-devkit/
HTTP prikazem http://<ipadresa>/?kanal=<hodnota 1-6>&stav=<hodnota 0-1>
lze spinat a vypinat okruh jednoho z sesti pripojenych EL dratu
*/

#include <WiFi.h>
#include <WebServer.h>

// Kanaly 1-6 pro spinani EL dratu jsou pripojene k pinum 12, 13, 14, 25, 26 a 27 na desce ESP32-LPKit
// Vytvorime si pro ne pole
uint8_t kanaly[6] = { 12, 13, 14, 25, 26, 27 };

// Nazev a heslo Wi-Fi
const char *ssid = "Nazev 2,4GHz 802.11bgn site";
const char *heslo = "Heslo site";

// Server pobezi na standarndim TCP portu 80
WebServer server(80);

// Funkce, ktera se zpracuje pri HTTP pozadavku /
// Podle numericke hodnoty URL parametru stav=x (0/1) a kanal=x (1 az 6),
// nastavime na adekvatnim pinu bud vysoky, nebo nizky logicky stav a pripojeny
// optoclen a triak na desce ESP32-DEVKit Neon Shield sepne opticky izolovany
// okruh stridaveho proudu pro napajeni elektroluminiscencniho dratu
void httpDotaz(void) {
  if (server.hasArg("stav") && server.hasArg("kanal")) {
    uint8_t stav = server.arg("stav").toInt();
    uint8_t kanal = server.arg("kanal").toInt();
    if (kanal >= 1 && kanal <= 6) {
      if (stav == 0 || stav == 1) {
        server.send(200, "text/plain", "OK\nKanal: " + String(kanal) + "\nStav: " + String(stav));
        digitalWrite(kanaly[kanal - 1], stav);
      } else {
        server.send(200, "text/plain", "Chyba: Stav musi byt v rozsahu 0-1");
      }
    } else {
      server.send(200, "text/plain", "Chyba: Kanal musi byt v rozsahu 1-6");
    }
  } else {
    server.send(200, "text/plain", "Chyba: URL musi byt ve tvaru /?kanal=hodnota&stav=hodnota");
  }
}

// Hlavni funkce setup se spusti po startu cipu
void setup() {
  // Nastavime vychozi zhasnuty stav kanalu pro ovladani EL dratu
  for (uint8_t i = 0; i < 6; i++) {
    pinMode(kanaly[i], OUTPUT);
    digitalWrite(kanaly[i], 0);
  }
  // Nastartujeme seriovou linku rychlosti 115200 b/s,
  // pri startu do ni budeme vypisovat stav pripojovani k Wi-Fi a IP adresu
  Serial.begin(115200);
  // Pripojime se k Wi-Fi a pote vypiseme do seriove linky IP adresu
  WiFi.disconnect();
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, heslo);
  Serial.printf("Pripojuji se k %s ", ssid);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.printf(" OK\nIP: %s\r\n", WiFi.localIP().toString());
  // Pro HTTP pozadavku / zavolame funkci httpDotaz
  server.on("/", httpDotaz);
  // Aktivujeme server
  server.begin();
}

// Smycka loop se opakuje stale dokola
// a nastartuje se po zpracovani funkce setup
void loop() {
  // Vyridime pripadne TCP spojeni se serverem
  server.handleClient();
  delay(2);
}
Diskuze (9) Další článek: Recyklace a rekuperace. Výrobce kultovní paštiky Májka předvedl technologii, která šetří vodu, energie i peníze

Témata článku: , , , , , , , , , , , , , , , , , , , , , ,