Lekce opět navazuje na předchozí lekci A6 s programováním. Ukážeme si, jak stiskem tlačítek budeme zapínat a vypínat LED světlo.
název: B6 Zapínáme a vypínáme světlo
kategorie: B mírně pokročilí
ref.číslo: B6
projekt: 10+10 dní s microbitem pro mírně pokročilé, lekce B6
verze: 01, 2017-04-03
autor: Ivo Obr, Lanškroun
Lekce opět navazuje na předchozí lekci A6 s programováním pomocí bloků a to práci s tlačítky na Micro:bit. Matice 5×5 LED diod bude pro nás LED svítilna a my si ukážeme, jak stiskem tlačítek budeme světlo zapínat a vypínat. Tlačítko “A” na Micro:bit bude pro nás zapínací tlačítko, tlačítko “B” bude vypínací. LED diody na displeji rozsvítíme pomocí známého příkazu “display.show(image)” (lekce B2), kde si vytvoříme obrázek (image) se jménem “svetlo”, zhasínání můžeme provést pomocí známého příkazu “display.clear()”.
Jenom si zopakujeme slovně, co má mikropočítač vykonat a pak si sestavíme program.
- ) Na začátku zhasneme displej.
- ) Budeme opakovaně zjišťovat, zda-li jsou tlačítka stisknutá a to následovně :
- když stiskneme tlačítko “A”, tak necháme provést příkaz “display.show(svetlo)”.
- když stiskneme tlačítko “B”, tak necháme provést příkaz “display.clear()”.
- k opakování těchto dotazů použijeme již známý příkaz “while True”, a do jeho těla cyklu dáme oba dotazy na stisk tlačítek.
Pro dotaz na na stisknuté tlačítko použijeme příkaz “if”, v překladu znamená “když”. Vysvětlení funkce už známe z lekcí pro začátečníky. V MicroPython tento příkaz napíšeme takto :
if “logický výraz“:
zde jsou uvedeny příkazy, které se provedou, pokud “logický výraz” má hodnotu True
další příkaz, který již není součástí příkazu if a provádí se vždy
Takže k tvorbě programu. Nejdříve si opět zapíšeme úvodní povinný příkaz
from microbit import *
Vytvoříme si obraz světla – to je zapnutí všech LED diod na plný jas :
svetlo = Image(“99999:99999:99999:99999:99999”)
Dále zhasneme displej na úplném začátku programu :
display.clear()
Následuje opakování všech příkazů uzavřených do cyklu “while” :
while True:
Příkazy, které budou “tělem cyklu while”, musíme odsadit o čtyři sloupce směrem doprava. Jsou to dva příkazy – dotazy na stisk tlačítek “A” a “B”. První je dotaz na stisk tlačítka “A”. Pokud je tlačítko stisknuto, logický výraz “button_a.is_pressed()” má hodnotu True (je to pravda, že je tlačítko stisknuto) a provede se příkaz, který následuje za příkazem “if” a je odsazen o 4 sloupce směrem doprava od tohoto příkazu:
if button_a.is_pressed():
display.show(svetlo)
Stejným způsobem naprogramujeme dotaz na tlačítko “B”.
if button_b.is_pressed():
display.clear()
No a to je vše. Nyní si celý program napíšeme do editoru. Pořádně si provedeme kontrolu, jestli máme vše správně napsáno a další kontrolu kliknutím na ikonu Check. Nejčastější chyby jsou nadbytečné mezery na konci řádků a chybějící poslední prázdný řádek. Celý program by měl vypadat takto:
Program si uložte do složky Microla pod jménem “B6.py” .
Úkoly pro tuto lekci :
- zkuste upravit jas LED diod v obrázku “svetlo” (nějaký vzor)
- zkuste zaměnit funkce tlačítek “A” a “B”