Micro:bit (a obecně jakékýkoli digitální obvod) může na výstupních pinech nastavit jen dvě napěťové úrovně: napětí blízké napájecímu, v našem případě přibližně 3 V (log.1) a 0 V (log.0). Pro dosažení změny velikosti stejnosměrného napětí je proto nutno použít malý trik – rychle přepínat mezi oběma napěťovými úrovněmi.
Při přepínání mezi oběma zmíněnými napěťovými úrovněmi bude střední hodnota výstupního napětí odpovídat poměru doby, kdy je pin v průběhu jedné periody v log.1 a kdy je v log.0.
Tato metoda se jmenuje pulsně šířková modulace (Pulse Width Modulation – PWM).
Doba trvání celého cyklu (perioda) se u micro:bitu udává v mikrosekundách (μs) a určuje ji blok [analog set period]. Přednastavená perioda v bloku je 20 000 μs (0,02 s; frekvence 50 Hz). Použitelný rozsah hodnot leží mezi 2 μs (0,000 002 s; frekvence 500 kHz) až 2 000 000 μs (2 s; frekvence 0,5 Hz).
Dobu, po kterou je signál v průběhu periody v log.1 (střída) určuje blok [analog write pin]. Do tohoto bloku lze vložit číslo v rozsahu 0 (výstup trvale v log.0) až 1023 (výstup trvale v log.1) a nastavovat tak střídu v celém rozsahu přibližně po krocích 0,1 %.
Frekvence je převrácenou hodnotou délky periody a udává se jako počet period za sekundu a její jednotkou je hertz (Hz):
Testovací program je velmi jednoduchý (Microsoft Makecode Block Editor):
Takto vypadají průběhy výstupního napětí:
Převod PWM na stejnosměrné napětí
Abychom získali z impulsů s proměnnou střídou skutečně stejnosměrné napětí, je třeba ho vyhladit. K vyhlazení použijeme dolní propusti, které tlumí signály od určité hodnoty kmitočtu výše. V praxi to tedy znamená, že ze signálu jsou odfiltrovány více či méně účinně (to podle typu propusti) všechny složky, které shora přesahují mezní kmitočet propusti.
Dolní propust 1. řádu
Mezní kmitočet tohoto filtru je přibližně 16 kHz. Pro kvalitní vyhlazení obdélníkového signálu je třeba zvolit frekvenci PWM několikanásobně vyšší, než je mezní kmitočet filtru.
Při frekvenci PWM 500 kHz je už zvlnění napětí na výstupu filtru 1. řádu přijatelné. Pokud zvolíme 10x nižší mezní frekvenci filtru (1,6 kHz), je možné získat použitelně vyhlazené stejnosměrné napětí už při frekvencích PWM 50 až 100 kHz.
Dolní propust 2. řádu
Jako operační zesilovač je nutno použít typ, který může pracovat už při napájecím napětí 3 V. Pro experiment byl použit levný a dostupný dvojitý zesilovač LM358, dalším, dokonce vhodnějším typem je MCP602.
Zákmity na hranách signálu jsou způsobeny nepřesným souběhem hodnot součástek a také nevalnou kvalitou operačního zesilovače, znamená to tedy, že pokud chceme použít filtr 2. řádu, musíme věnovat větší péči výběru součástek i přesnému nastavení filtru, odměnou nám ale bude, že frekvence PWM může být mnohem nižší, než v prvním případě.
Pro běžné použití má však převod PWM na stejnosměrné napětí zcela postačující kvalitu v obou případech.
Závěr
Při použití funkcí program JavaScript Block Editor je micro:bit je schopen generovat pulsně šířkovou modulaci (PWM) signálu s frekvencí 0,5 Hz až 500 kHz ve velmi slušné kvalitě. PWM signál je možno naráz generovat nejvýše na třech výstupních pinech micro:bitu a – to je velmi důležité si uvědomit – že všechny signály PWM vždy budou mít stejnou opakovací frekvenci a mohou se lišit jen střídou.
Tímto způsobem řízení dodávaného výkonu je možno se vyhnout značným energetickým ztrátám nejen při řízení rychlosti otáčení elektrických motorů, ale například také při řízení jasu vláknových žárovek nebo LED.
Kvalita převodu PWM na stejnosměrného napětí a také rozsah tohoto napětí je dána především parametry použitých součástek a pečlivostí návrhu, ale, jak je vidět s předešlých odstavců, i se zcela běžnými součástkami je možno dosáhnout přijatelných výsledků.