Osmimístný sedmisegmentový displej s MAX7219 a Arduinem

Sedmisegmentové displeje se hodí všude tam, kde potřebujeme jednoduše a přehledně zobrazit číslo. Najdeme je v hodinách, měřicích přístrojích, počítadlech nebo třeba jednoduchých časovačích. Problém nastává ve chvíli, kdy chceme ovládat větší počet číslic přímo z mikrokontroleru. Počet potřebných vodičů rychle roste a program se musí starat také o pravidelné obnovování displeje.

Tento modul obsahuje osm sedmisegmentových číslic a řadič MAX7219, který se o jejich ovládání postará. K Arduinu proto stačí kromě napájení připojit pouze tři signálové vodiče. V článku si ukážeme základní zapojení, zobrazování celých i desetinných čísel, nastavení jasu a několik jednoduchých praktických ukázek.

Pokračování textu Osmimístný sedmisegmentový displej s MAX7219 a Arduinem

Automatické objednávání obědů přes webové rozhraní PowerKey

Některé věci nejsou složité, ale opakují se pořád dokola. A právě proto začnou časem otravovat. Přesně takhle jsem to měl s objednáváním obědů. Každý týden otevřít web, přihlásit se, projít nabídku, vybrat jídlo na každý den, kliknout na objednání a za pár dní znovu.

Samotné objednání není nic těžkého. Jen je to další drobnost, kterou člověk musí pořád řešit. A když už se podobná činnost opakuje podle nějakých pravidel, přímo si říká o automatizaci.

Cíl byl jednoduchý: nechci každý týden ručně vybírat obědy. Chci mít možnost popsat, co mám rád, co nechci, co je nouzová varianta, a potom to celé vyřešit jedním spuštěním.

Pokračování textu Automatické objednávání obědů přes webové rozhraní PowerKey

Osmimístný LED displej s 74HC595: sedmisegmentový displej pro Arduino

Displejů pro Arduino existuje spousta. Některé zobrazují text, jiné grafiku, a některé jsou určené hlavně pro čísla. Tentokrát se podíváme na jednoduchý osmimístný sedmisegmentový LED displej, který je řízený pomocí obvodu 74HC595.
Na první pohled je to obyčejný číselný displej, jaký známe třeba z měřáků, hodin, kuchyňských vah nebo různých přístrojů. Umí zobrazovat číslice, některá písmena a desetinné tečky. Právě proto se hodí na jednoduché projekty, kde chceme zobrazit například čas, napětí, teplotu, počet kusů, skóre nebo libovolnou číselnou hodnotu.
Zajímavé na tomto modulu je hlavně to, že k jeho ovládání není potřeba velké množství pinů. O řízení displeje se stará dvojice posuvných registrů 74HC595, díky kterým stačí Arduinu jen několik datových vodičů.

Pokračování textu Osmimístný LED displej s 74HC595: sedmisegmentový displej pro Arduino

CyberDOS 0.2 – vlastní DOS a BASIC pro Cyberdeck mikro

Při postupném rozšiřování firmwaru pro Cyberdeck mikro jsem narazil na nepříjemnou, ale vlastně očekávatelnou věc – začala docházet programová paměť. Firmware stále uměl jen několik základních funkcí, přesto už zabíral velkou část omezené flash paměti ESP32-S3. Bylo jasné, že pokud do něj budu dál přidávat všechny programy napevno, brzy nebude kam pokračovat.

Proto jsem se nakonec rozhodl vytvořit vlastní jednoduchý operační systém ve stylu klasického DOSu, doplněný o vlastní interpreter BASICu. Samotný systém a interpreter zůstanou ve flash, zatímco jednotlivé programy budou napsané v BASICu a uložené na SD kartě. Cyberdeck si je pak může načíst a spustit pouze tehdy, když jsou potřeba.

Interpretovaný BASIC je samozřejmě mnohem pomalejší než program přeložený přímo z C++, ale pro moje použití to stačí. Důležitější je, že mohu přidávat nové aplikace bez změny firmwaru a dokonce je psát přímo na Cyberdecku. Tak vznikl CyberDOS s vlastním interpretem CyberBASICu. Verze 0.2 je už dostatečně použitelná na to, aby si zasloužila samostatný článek.

Cyberdeck mikro po spuštění vlastního systému CyberDOS 0.2

Původní stavbu, mechanické provedení a zapojení najdeš v článku Cyberdeck mikro. Do hardwaru jsem nijak nezasahoval. Všechno nové vzniklo pouze v softwaru.

Pokračování textu CyberDOS 0.2 – vlastní DOS a BASIC pro Cyberdeck mikro

OLED displej 128×32 0,91″ SSD1306 I²C a Arduino

OLED displeje se dnes dají koupit v mnoha různých velikostech. Tentokrát se podívám na jednu z nejmenších běžně dostupných variant s úhlopříčkou 0,91 palce a rozlišením 128 × 32 pixelů.

Displej je opravdu drobný a kvůli malé výšce se na něj nevejde příliš mnoho informací. Právě jeho podlouhlý tvar ale může být v některých projektech výhodou. Hodí se například pro zobrazení času, teploty, stavu zařízení, výsledku měření nebo několika položek jednoduchého menu.

Modul komunikuje pomocí sběrnice I²C, takže kromě napájení potřebuje pouze dva vodiče pro komunikaci. Díky tomu se snadno připojuje k Arduinu, ESP nebo dalším vývojovým deskám.

V článku si ukážeme zapojení displeje, instalaci potřebné knihovny a několik programů pro zobrazení textu i jednoduché grafiky.

Pokračování textu OLED displej 128×32 0,91″ SSD1306 I²C a Arduino

Pěstování krystalů z MAP

Už delší dobu jsem si chtěl zkusit vypěstovat vlastní krystaly. Ne jen takové ty drobné krystalky soli na talířku, ale pořádné viditelné krystaly, které vypadají trochu jako něco z chemické laboratoře, mineralogické sbírky nebo fantasy filmu.

Nakonec jsem se rozhodl vyzkoušet pěstování krystalů z látky označované jako MAP. Celý název je monoamonný fosforečnan, případně dihydrogenfosforečnan amonný. V praxi se s ním člověk nejčastěji setká jako s vodorozpustným hnojivem. A právě tahle obyčejně vypadající bílá látka umí za správných podmínek vytvořit překvapivě pěkné krystaly.

Postup jsem zkoušel podle návodu ze stránky Crystalverse, kde je pěstování MAP krystalů popsané opravdu pěkně a prakticky. Já si ho ale chtěl vyzkoušet po svém a hlavně si celý pokus zdokumentovat.

Pokračování textu Pěstování krystalů z MAP

SGP41 – senzor kvality vzduchu pro VOC a NOx

Tentokrát se mi dostal do ruky použitý modul LaskaKit SGP41 VOC a NOx. Senzory kvality vzduchu mě zajímají už delší dobu a SGP41 mě zaujal tím, že sleduje dvě různé skupiny plynů – VOC a NOx.

Protože jsem modul získal použitý, první otázkou je, jestli je senzor stále v pořádku. SGP41 má naštěstí vestavěný self-test, takže si jeho základní funkčnost můžeme ověřit přímo programem.

Pro první pokus použiju LOLIN D1 mini V4.0 s ESP8266. Modul připojím přes I²C, vyzkouším komunikaci, self-test a potom budeme sledovat jak surové hodnoty senzoru, tak vypočítané VOC a NOx indexy.

Použitý modul SGP41
Pokračování textu SGP41 – senzor kvality vzduchu pro VOC a NOx

Cyberdeck mikro

Už snad deset let si chci postavit malý kapesní cyberdeck. Něco jako malou databanku ze starých dob, kdy ještě nebyly smartphony. Teď jsem se konečně rozhoupal a pustil se do stavby.

Jako základ jsem použil ESP32-S3, malou klávesnici, SD kartu a 2,42″ OLED displej. A protože by cyberdeck bez možnosti něco k němu připojit nebyl úplný, nechybí ani rozšiřující port s několika komunikačními rozhraními.

Pokračování textu Cyberdeck mikro

OLED displej 128×64 2,42″ SSD1309 SPI a Arduino

Malé OLED displeje mám rád, protože se dají rychle připojit k Arduinu nebo ESP a hned je na čem zobrazovat hodnoty, menu nebo stav zařízení. Tentokrát tu mám ale trochu větší variantu. Nejde o klasický malý 0,96″ OLED modul, ale o bílý OLED displej s úhlopříčkou 2,42″ a rozlišením 128×64 bodů.

Displej komunikuje přes SPI, takže má víc vodičů než běžné I²C moduly, ale zase může být rychlejší a pro grafické výpisy příjemnější. V článku ho připojím k Arduinu, zkusím první zobrazení textu a grafiky a pak se podívám, k čemu se takový displej hodí v praktických projektech.

OLED displej 128×64 2,42″ SPI s řadičem SSD1309
Pokračování textu OLED displej 128×64 2,42″ SSD1309 SPI a Arduino

Ochrana před radiací – vzdálenost, stínění a čas

Ionizující záření není vidět, není cítit a bez vhodného přístroje vlastně ani nepoznáme, že se v jeho blízkosti nacházíme. Přesto existuje několik poměrně jednoduchých způsobů, jak jeho účinky výrazně omezit.

Základní principy ochrany před zevním ozářením jsou tři – vzdálenost, stínění a čas. Čím jsme od zdroje dál, čím lepší překážku mezi sebe a zdroj umístíme a čím kratší dobu se v jeho blízkosti pohybujeme, tím menší dávku dostaneme.

Teorie je jedna věc. A nebyl bych to já, kdybych si všechno prakticky nevyzkoušel.

Pokračování textu Ochrana před radiací – vzdálenost, stínění a čas