Pojďme programovat elektroniku: Co se děje v nitru, když bliká RGB LED, bzučí reproduktor nebo měří dálkoměr

  • Arduino je jednoduché
  • Stačí napsat řádku kódu a něco se rozsvítí
  • Co to ale znamená? Co se děje uvnitř vodiče?

Na počátku všeho byl bit. Všechno povstalo skrze něj. V něm byl život a ten život byl světlem firmwarů. – Bible bastlířská, verš první.

V dnešním pokračování seriálu o programování elektroniky se vrátíme na úplný začátek. Namísto psaní kódu se podíváme na to, jak ve své podstatě vypadá několik jednoduchých i docela komplexních digitálních signálů, které ve svých programech vytváří každý bastlíř.

Jedna věc je totiž napsat třeba příkaz tone(10, 1000, 100), který vytvoří 100ms pípnutí s frekvencí 1 000 Hz na reproduktoru připojeném k pinu 10, jenže druhá věc je pochopit, jak takový signál skutečně vypadá, tedy co jsme to opravdu tímto příkazem vytvořili na elektrické – logické úrovni.

Logický analyzátor

Pomůže nám v tom levný analyzátor signálu z eBaye, který seženete zhruba za stokorunu. Už jsme si jej v našem seriálu vyzkoušeli loni v záři, když jsme pomocí něj sledovali bity tekoucí z mikrokontroleru do laserového blikátka.

Klepněte pro větší obrázekKlepněte pro větší obrázekKlepněte pro větší obrázek
Čínský klon kompatibilní se softwarem Logic od amerického Saleae

Jedná se o laciné klony kalifornských analyzátorů Saleae, takže stačí stáhnout jejich bezplatný analytický software Logic pro Windows, MacOS a Linux, připojit krabičku skrze USB k počítači a na druhé straně sjednotit země – připojit pin GND na krabičce s GND obvodu, který budeme sledovat.

Mějte na paměti, že kupujete čínský padělek, který je sice mnohonásobně levnější, ale poškozuje amerického výrobce, kterému se to nelíbí. Firma Saleae tedy dlouhodobě hrozí, že padělky z eBaye v aplikaci zablokuje, zatím to však neudělala. Snad z dobré vůle, analyzátory za pár dolarů si totiž nakoupila hromada začínajících bastlířů, kteří zpočátku nechtějí investovat do mnohem dražších hraček.

Krabička je osmikanálová, takže zvládne paralelně sledovat až osm různých digitálních signálů. Pojďme si to rovnou vyzkoušet na tom nejjednodušším možném příkladu.

Napíšu si primitivní program pro Arduino Uno, který rozbliká jeho vestavěnou LED. Ta je připojená k pinu číslo 13, takže kód, který ji vždy rozsvítí na 100 ms a pak na stejnou dobu zase zhasne, by vypadal takto:

void setup() {
  pinMode(13, OUTPUT);
}
void loop() {
  digitalWrite(13, HIGH);
  delay(100);
  digitalWrite(13, LOW);
  delay(100);
}

LOW představuje logickou nulu (bit s hodnotou 0) a HIGH zase logickou jedničku (bit s hodnotou 1). Z elektrického hlediska se při HIGH na pinu 13 nastaví napětí ideálně na 5 V, což je pracovní napětí desky Arduino Uno, no a při LOW se zase sníží na 0 V. LED dioda začne blikat.

My se nyní na tento signál podíváme v programu Logic. Nejprve vybereme jeden z osmi kanálů na analyzátoru a připojíme jej právě na pin 13 na Arduinu. V prohlížeči Logic pak už jen stačí klepnout na tlačítko Start a program začne po určitý čas nahrávat digitální signál stanovenou rychlostí. Klon se sice chlubí rychlostí až 24 MHz, ve skutečnosti však oproti americkému originálu zvládne spíše 8-12 MHz, což ale pro běžné experimenty stačí.

Výsledek by měl vypadat zhruba takto:

Klepněte pro větší obrázek
Pulzující napětí mezi HIGH (5 V) a LOW (0 V) na pinu 13, jak jej zachytil logický analyzátor

Jak vidno, logický analyzátor převedl pulzující napětí zpět na digitální logiku, takže krásně vidíme, kdy LED svítila (HIGH = 1) a kdy zhasla (LOW = 0). Kolečkem myši si zároveň můžeme libovolně přibližovat, což nám pomůže v dalších ukázkách, kdy vše mnohem zrychlíme a půjde o každý detail.

Logic toho umí ale mnohem více. Když najedu myší na obdélník pulzu, zobrazí se mi jeho přesná délka. Ale nejen to, jelikož jsme vytvořil signál, který s určitou frekvencí rozbliká LED, Logic mi tuto frekvenci spočítá – odhaduje ji na cirka 5 Hz.

Klepněte pro větší obrázek
Když najedu ukazatelem myši na pulz, zobrazí se mi jeho údaje a frekvence 5 Hz

Je to správně? Jedno bliknutí se skládá ze 100ms světla a 100ms tmy, celý blik tedy trvá 200 ms a za jednu sekundu se jich odehraje pět. Pět pulzů za sekundu = 5 Hz. Je to správně.

Fajn, to by pro začátek stačilo. V další kapitole zachytíme mnohem zajímavější signál. Podíváme se, co se ve vodičích odehrává, když se pokusíme změřit vzdálenost pomocí oblíbeného ultrazvukového dálkoměru HC-SR04!

Diskuze (7) Další článek: USA chtějí zakázat pevné baterie. Nesmysl. Stačí levná výměna

Témata článku: Pojďme programovat elektroniku, Programování, Arduino, Elektřina, Stavebnice, C++, Fyzika, Druhá věc, Padělky, Uno, Primitivní program, Led dioda, Analyzátor, Logický analyzátor, Celá sekvence


Určitě si přečtěte

Apple dal do MacBooku procesor Core i9 a 4TB SSD. Ani se neptejte, co za to chce...

Apple dal do MacBooku procesor Core i9 a 4TB SSD. Ani se neptejte, co za to chce...

** Apple aktualizoval notebooky MacBook Pro, dostaly nový hardware ** Těšit se můžete na nové procesory a větší paměť ** Cena nejvybavenějšího modelu překročí 200 tisíc korun

Martin Miksa | 99

Nejlepší služby pro streamovanou hudbu: Není jen Spotify

Nejlepší služby pro streamovanou hudbu: Není jen Spotify

** Za měsíční předplatné je dnes možné získat přístup k desítkám milionů skladeb ** S některými méně známými interprety je ale stále problém ** Cena předplatného může být i jen pár desítek korun

Vladislav Kluska | 45

Temný režim a spousta vychytávek. Vyzkoušeli jsme nový macOS 10.14 Mojave

Temný režim a spousta vychytávek. Vyzkoušeli jsme nový macOS 10.14 Mojave

** Vyzkoušeli jsme veřejnou betu macOS 10.14 Mojave ** Hlavní novinkou je temný režim a velký důraz na soukromí ** Jako první beta je systém překvapivě rychlý a dobře použitelný.

Martin Miksa | 35

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

** Sonda LRO pořídila z oběžné dráhy Měsíce zajímavé snímky ** Jsou na nich vidět artefakty všech misí programu Apolla, které přistály na povrchu Měsíce ** Jde například o části lunárních modulů, rovery a dokonce i vlajky

Petr Kubala | 62


Aktuální číslo časopisu Computer

Jak mobily určují svoji polohu?

Velký test notebooků pro studenty

Nejlepší reproduktory na párty

Služby a aplikace pro výuku angličtiny