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, Fyzika, C++, Digitální komunikace, Padělky, Analyzátor, Druhá věc, Led dioda, Logický analyzátor, Uno, Celá sekvence, Primitivní program


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

Dell XPS 13: Když vás ostatní doženou až za tři roky

Dell XPS 13: Když vás ostatní doženou až za tři roky

** XPS 13 nastartoval trend notebooků bez rámečků ** Letošní model kompletně přechází na USB-C ** Navzdory malému tělu se řadí výkon ke špičce

Tomáš Holčík | 34

Astronomové objevili daleko za Plutem objekt s extrémní dráhou. Může ukazovat na existenci planety Devět

Astronomové objevili daleko za Plutem objekt s extrémní dráhou. Může ukazovat na existenci planety Devět

** Astronomové objevili daleko za Neptunem těleso 2015 TG387 ** Okolo Slunce se pohybuje po extrémně protáhlé dráze ** Jeho dráha může ukazovat na existenci planety Devět

Petr Kubala | 10

Photolemur 3: Prostě do něj přetáhnete fotky a začne se dít magie. Tedy údajně...

Photolemur 3: Prostě do něj přetáhnete fotky a začne se dít magie. Tedy údajně...

** Je lepší nabušený Photoshop, nebo program s jedním tlačítkem? ** Photolemur si myslí to druhé ** Tento fotoeditor neumí skoro nic, a přitom (skoro) všechno

Jakub Čížek | 19

Inteligentní akvárium Bluenero se o rybičky postará samo

Inteligentní akvárium Bluenero se o rybičky postará samo

** Chcete chovat akvarijní rybičky, ale nemáte čas se o ně starat? ** Chytré akvárium je samo nakrmí a postará se o jejich komfort ** Projekt Bluenero zatím sbírá finance na Indiegogo

Karel Kilián | 20

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 66

Nová americká jaderná puma změní strategii boje

Nová americká jaderná puma změní strategii boje

** Bombardér Northrop Grumman B-2 Spirit amerického letectva nedávno svrhl jadernou pumu ** Šlo o test nové varianty pumy B61-12 ** Ta by měla mít hlavice schopné explodovat se silou 0,3 až 50 kilotun

Stanislav Mihulka | 60

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

Vyzkoušeli jsme eObčanku a přihlásili se s ní na weby úřadů. Vážně to funguje!

** Máme eObčanku, máme čtečku, vyzkoušeli jsme přihlášení na weby úřadů. ** Objevily se drobné problémy, podařilo se nám je vyřešit. ** Používání eObčanky pro online identifikaci je velmi pohodlné.

Marek Lutonský | 35


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku