Teď na chvíli necháme programování a postavíme si elektrický obvod. Vezmi si modrou svítivou diodu (LED, „světýlko”) a nepájivé pole („hloupou destičku”). Zkusíme světýlko rozsvítit.
LED rozsvítíš tak, že ji připojíš ke zdroji napětí, například k baterce.
Jako zdroj napětí můžeme použít i náš modul.
Ten bere elektřinu přes USB a dává nám ji k dispozici
na některých svých „nožičkách”:
konkrétně plus na nožičce označené 3V
a mínus na nožičce označené G
.
Na tyhle nožičky musíš zapojit diodu.
Připojování diody má jeden háček: musíš ji zapojit správným směrem – plus na plus, mínus na mínus. Opačně dioda svítit nebude. Dobrá zpráva je, že když diodu otočíš špatně, nic se jí nestane.
Základní vlastnost diody je ta, že pustí elektrický proud jen jedním směrem. Svítící dioda – angl. Light Emitting Diode, LED – ještě k tomu navíc svítí.
Je potřeba rozpoznat rozdíl mezi nožičkami diody.
Katoda (-
) je ta kratší nožička.
Pouzdro diody je u katody trochu seříznuté
a vevnitř v pouzdře, když se pozorně podíváš, uvidíš
u katody větší plíšek.
Té druhé nožičce se říká anoda (+
).
Tak, teď víš, kam diodu zapojit: katodu (kratší nožičku)
na G
a anodu na 3V
.
Držení nožiček diody u nožiček modulu by ti nejspíš zaměstnalo obě ruce. Aby sis je uvolnila, použij nepájivé pole (angl. breadboard). Je v něm spousta dírek, do kterých se dají strkat dráty. V rámci každé poloviny destičky je každá řada dírek – tedy každá pětice – spojená dohromady. Když zapojíš drátky do stejné řady, spojíš je tím.
Zasuň modul do nepájivého pole. Pak připoj katodu
do dírky ve stejné řadě, kde je nožička
3V
modulu, a podobně anodu k G
.
Mělo by to vypadat jako na tomto obrázku:
Potom zapoj USB kabel. Dioda by se měla rozsvítit!
Zkus si, co se stane, když diodu zapojíš naopak.
Aby dioda svítila, musí být připojená na dvě místa,
mezi kterými je takzvaný potenciálový rozdíl — napětí.
Na nožičce G
je 0 voltů; na nožičce
3V
jsou 3,3 volty – je tedy mezi nimi rozdíl 3,3 V, přesně tolik,
kolik modrá LED potřebuje ke svícení.
Samotná hodnota napětí nedává smysl – například
říct, že je na jednom místě 3,3 V je nepřesné.
Hodnota ve voltech se vždycky musí k něčemu vztahovat;
vyjadřuje rozdíl mezi dvěma místy.
V elektronice používáme rozdíl oproti „zemi” – napětí
na nožičce G
. Stanovíme si, že tam je
0 voltů a ostatní napětí počítáme vzhledem k ní.
Na nožičce 3V
je tedy napětí 3,3 V vzhledem k zemi.
Proč jsme diodu na to, aby se rozsvítila,
připojili k modulu a ne jen k baterce?
Ten modul je trošku složitější zařízení než baterka a jedna důležitá věc,
kterou umí navíc, je nastavovat napětí na různých nožičkách.
Umí zařídit, aby se nožička chovala jednou jako 3V
a jindy jako G
.
Když připojíš diodu mezi G
a takovou
přepínatelnou nožičku, můžeš nastavit, kdy svítí a kdy ne.
Přepoj anodu diody z 3V3
na D5
. Katodu nech na G
.
Máš-li zapojeno, znovu se připoj k MicroPythonu a zadej následující kód:
from machine import Pin
pin = Pin(14, Pin.OUT)
pin.value(0)
pin.value(1)
Když objekt Pin vytvoříš s Pin.OUT
, MicroPython na něm bude nastavovat
napětí – buď 3,3 V (value(1)
) nebo 0 V (value(0)
).
A tak se dá s diodou blikat.
Číslování nožiček je bohužel dvojí – nožička
označená jako D5
má v procesoru přiřazené číslo 14.
Třída Pin
v MicroPythonu používá číslování procesoru.
Naštěstí máš tahák,
kde snadno dohledáš že D5
a Pin(14)
jsou dvě jména stejné nožičky.
Zvládneš napsat program, který zařídí, aby dioda
svítila pouze když je zmáčknuté tlačítko FLASH
a jinak ne?
Nápověda: Můžeš pořád dokola zjišťovat stav tlačítka a nastavovat podle něj stav LED.
{ "data": { "sessionMaterial": { "id": "session-material:2019/brno-jaro-2019-pondeli:micropython:4", "title": "Obvod", "html": "\n \n \n\n <h2>Obvod</h2>\n<p>Teď na chvíli necháme programování a postavíme si elektrický obvod.\nVezmi si modrou svítivou diodu (LED, „světýlko”) a\nnepájivé pole („hloupou destičku”).\nZkusíme světýlko rozsvítit.</p>\n<p>LED rozsvítíš tak, že ji připojíš ke <em>zdroji napětí</em>, například k baterce.</p>\n<p>Jako zdroj napětí můžeme použít i náš modul.\nTen bere elektřinu přes USB a dává nám ji k dispozici\nna některých svých „nožičkách”:\nkonkrétně plus na nožičce označené <code>3V</code>\na mínus na nožičce označené <code>G</code>.\nNa tyhle nožičky musíš zapojit diodu.</p>\n<p>Připojování diody má jeden háček:\nmusíš ji zapojit správným směrem – plus na plus, mínus na mínus.\nOpačně dioda svítit nebude. Dobrá zpráva je, že\nkdyž diodu otočíš špatně, nic se jí nestane.</p>\n<div class=\"admonition note\"><p>Základní vlastnost <em>diody</em> je ta, že pustí\nelektrický proud jen jedním směrem. Svítící dioda\n– <em>angl. Light Emitting Diode, LED</em> – ještě k\ntomu navíc svítí.</p>\n</div><p>Je potřeba rozpoznat rozdíl mezi nožičkami diody.\n<em>Katoda</em> (<code>-</code>) je ta kratší nožička.\nPouzdro diody je u katody trochu seříznuté\na vevnitř v pouzdře, když se pozorně podíváš, uvidíš\nu katody větší plíšek.\nTé druhé nožičce se říká anoda (<code>+</code>).</p>\n<p>Tak, teď víš, kam diodu zapojit: katodu (kratší nožičku)\nna <code>G</code> a anodu na <code>3V</code>.</p>\n<p>Držení nožiček diody u nožiček modulu by ti nejspíš\nzaměstnalo obě ruce. Aby sis je uvolnila, použij\n<em>nepájivé pole</em> (angl. <em>breadboard</em>).\nJe v něm spousta dírek, do kterých se dají strkat dráty.\nV rámci každé poloviny destičky je každá řada dírek –\ntedy každá pětice – spojená dohromady.\nKdyž zapojíš drátky do stejné řady, spojíš je tím.</p>\n<p>Zasuň modul do nepájivého pole. Pak připoj katodu\ndo dírky ve stejné řadě, kde je nožička\n<code>3V</code> modulu, a podobně anodu k <code>G</code>.\nMělo by to vypadat jako na tomto obrázku:</p>\n<p><span class=\"figure\"><a href=\"/2019/brno-jaro-2019-pondeli/micropython/output/static/circuits/led_bb.svg\"><img src=\"/2019/brno-jaro-2019-pondeli/micropython/output/static/circuits/led_bb.svg\" alt=\"diagram zapojení\"></a></span></p>\n<p>Potom zapoj USB kabel. Dioda by se měla rozsvítit!</p>\n<p>Zkus si, co se stane, když diodu zapojíš naopak.</p>\n<p><span class=\"figure\"><a href=\"/2019/brno-jaro-2019-pondeli/micropython/output/static/circuits/led_bb_off.svg\"><img src=\"/2019/brno-jaro-2019-pondeli/micropython/output/static/circuits/led_bb_off.svg\" alt=\"diagram zapojení\"></a></span></p>\n<p>Aby dioda svítila, musí být připojená na dvě místa,\nmezi kterými je takzvaný <em>potenciálový rozdíl</em> — napětí.\nNa nožičce <code>G</code> je 0 voltů; na nožičce\n<code>3V</code> jsou 3,3 volty – je tedy mezi nimi rozdíl 3,3 V, přesně tolik,\nkolik modrá LED potřebuje ke svícení.</p>\n<div class=\"admonition note\"><p>Samotná hodnota napětí nedává smysl – například\nříct, že je na jednom místě 3,3 V je nepřesné.\nHodnota ve voltech se vždycky musí k něčemu vztahovat;\nvyjadřuje rozdíl mezi dvěma místy.\nV elektronice používáme rozdíl oproti „zemi” – napětí\nna nožičce <code>G</code>. Stanovíme si, že tam je\n0 voltů a ostatní napětí počítáme vzhledem k ní.\nNa nožičce <code>3V</code> je tedy napětí 3,3 V vzhledem k zemi.</p>\n</div><h2>Výstup</h2>\n<p>Proč jsme diodu na to, aby se rozsvítila,\npřipojili k modulu a ne jen k baterce?\nTen modul je trošku složitější zařízení než baterka a jedna důležitá věc,\nkterou umí navíc, je nastavovat napětí na různých nožičkách.\nUmí zařídit, aby se nožička chovala jednou jako <code>3V</code> a jindy jako <code>G</code>.\nKdyž připojíš diodu mezi <code>G</code> a takovou\npřepínatelnou nožičku, můžeš nastavit, kdy svítí a kdy ne.</p>\n<p>Přepoj anodu diody z <code>3V3</code> na <code>D5</code>. Katodu nech na <code>G</code>.</p>\n<p>Máš-li zapojeno, znovu se připoj k MicroPythonu a zadej následující kód:</p>\n<div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">machine</span> <span class=\"kn\">import</span> <span class=\"n\">Pin</span>\n<span class=\"n\">pin</span> <span class=\"o\">=</span> <span class=\"n\">Pin</span><span class=\"p\">(</span><span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"n\">Pin</span><span class=\"o\">.</span><span class=\"n\">OUT</span><span class=\"p\">)</span>\n<span class=\"n\">pin</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">)</span>\n<span class=\"n\">pin</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">)</span>\n</pre></div><p>Když objekt Pin vytvoříš s <code>Pin.OUT</code>, MicroPython na něm bude nastavovat\nnapětí – buď 3,3 V (<code>value(1)</code>) nebo 0 V (<code>value(0)</code>).\nA tak se dá s diodou blikat.</p>\n<div class=\"admonition note\"><p>Číslování nožiček je bohužel dvojí – nožička\noznačená jako <code>D5</code> má v procesoru přiřazené číslo 14.\nTřída <code>Pin</code> v MicroPythonu používá číslování procesoru.\nNaštěstí máš <a href=\"https://pyvec.github.io/cheatsheets/micropython/nodemcu-cs.pdf\">tahák</a>,\nkde snadno dohledáš že <code>D5</code> a <code>Pin(14)</code> jsou dvě jména stejné nožičky.</p>\n</div><p>Zvládneš napsat program, který zařídí, aby dioda\nsvítila pouze když je zmáčknuté tlačítko <code>FLASH</code> a jinak ne?</p>\n<div class=\"admonition note\"><p>Nápověda: Můžeš pořád dokola zjišťovat stav tlačítka\na nastavovat podle něj stav LED.</p>\n</div><div class=\"solution\" id=\"solution-0\">\n <h3>Řešení</h3>\n <div class=\"solution-cover\">\n <a href=\"/2019/brno-jaro-2019-pondeli/micropython/output/index/solutions/0/\"><span class=\"link-text\">Ukázat řešení</span></a>\n </div>\n <div class=\"solution-body\" aria-hidden=\"true\">\n <div class=\"highlight\"><pre><span></span><span class=\"kn\">from</span> <span class=\"nn\">machine</span> <span class=\"kn\">import</span> <span class=\"n\">Pin</span>\n<span class=\"n\">pin_diody</span> <span class=\"o\">=</span> <span class=\"n\">Pin</span><span class=\"p\">(</span><span class=\"mi\">14</span><span class=\"p\">,</span> <span class=\"n\">Pin</span><span class=\"o\">.</span><span class=\"n\">OUT</span><span class=\"p\">)</span>\n<span class=\"n\">pin_tlacitka</span> <span class=\"o\">=</span> <span class=\"n\">Pin</span><span class=\"p\">(</span><span class=\"mi\">0</span><span class=\"p\">,</span> <span class=\"n\">Pin</span><span class=\"o\">.</span><span class=\"n\">IN</span><span class=\"p\">)</span>\n<span class=\"k\">while</span> <span class=\"bp\">True</span><span class=\"p\">:</span>\n <span class=\"n\">pin_diody</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">(</span><span class=\"mi\">1</span> <span class=\"o\">-</span> <span class=\"n\">pin_tlacitka</span><span class=\"o\">.</span><span class=\"n\">value</span><span class=\"p\">())</span>\n</pre></div>\n </div>\n</div>\n\n\n " } } }