Letní IoT: Den 2

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Cykly)
m (Podmínka)
 
(Není zobrazeno 16 mezilehlých verzí od 1 uživatele.)
Řádka 1: Řádka 1:
[[Category:VSE]][[Category:Informatika]][[Category:Letní IoT]]
+
[[Category:VSE]][[Category:Informatika]][[Category:Letní IoT]][[Category:IoT]]
  
 
== Opakování ==
 
== Opakování ==
 +
Na začátek si zopakujeme věci, které jsme dělali včera.
  
Na začátek si zopakujeme věci, co jsme dělali včera
+
# Blikání LED diody s 2s prodlevou
 +
# 3 LED diody, po 2 sekundách se bude střídat, která bude svítit (červená, žlutá, zelená, čer...)
 +
# Vypsat do konzole všechna jednociferná čísla.
  
# Blikání ledky v 2s prodlevou
+
== Cykly ==
# Vypsat (do konzole) všechny sudá čísla do 50
+
[[IoT: Cykly | Cykly ]] — když potřebujeme něco udělat vícekrát.
# 3 LEDky, po 2 sekundách se bude střídat, která bude svítit (červená, žlutá, zelená, čer...)
+
  
 +
Zkuste předělat tento úkol když umíte for cyklus.
 +
# Vypsat do konzole všechna jednociferná čísla.
  
= Cykly =
+
== LED dioda ==
 +
[[IoT: LED dioda # Postupné rozžíhání | Postupné rozžíhání ]] — postupně rožneme a zhasneme LED diodu.
  
[[ Letní IoT : Cykly ]]
+
== Podmínka ==
 +
[[IoT: Podmínka | Podmínka]]
  
[[ Letní IoT : Cykly # For cyklus | For cyklus ]]
+
== Náhodné číslo ==
 +
[[IoT: Seznámení #Náhodné číslo | Náhodné číslo]]
  
= LEDka =
+
Samostatné úkoly
 +
* Náhodné číslo od 1 do 200, když bude číslo vyšší než 100, bude svítit červená LED dioda, jinak bude svítit modrá
 +
* Náhodné číslo v rozmezí od 1 do 3, na každou hodnotu bude svítit jiná LED dioda
  
Metodu ''digitalWrite();'' jsme si již ukázali. Ta je k rožnutí, či zhasnutí LEDky.
+
== Vlastní metoda ==
Ale co když chceme LEDku rožnout jen částečně? ... či aby se postupně rozžíhala?
+
[[IoT: Vlastní metoda | Vlastní metoda ]] — s návratovým typem i bez něj.
  
K tomu nám slouží metoda ''analogWrite(nazevLedky, cislo);''
+
Vyzkoušejte samostatné úkoly.
nazevLedky - ten název, co jsme dali u ''#define nazevLedky 15''
+
cislo - jak má svítit - v našem případě je to v rozmezí 0 - 1023 - 1024 možností
+
  
takže, chceme rozsvítit LEDku napůl jen - ''analogWrite(ledka, 512);''
+
== Tlačítko ==
 +
[[IoT: Tlačítko | Tlačítko]] — prostudujte zapojení a zápis kódu.
  
[http://jurasek.wz.cz/index.php/iot1/16-regulace-jasu-led Regulace jasu]
+
Udělejte samostatné úkoly.
  
== Příklad ==
+
== Display ==
 +
[[IoT: Display | Display ]] — další výstupní zařízení.
  
LEDka se během 5ti sekund rožne.
+
== Závěrečné opakování ==
 
+
Na závěr dnešního dne si zkusme tento krátký
#define ledka 15
+
[https://forms.gle/bL21pSMRH4aQjbr59 testík].
+
void setup() {
+
+
pinMode(ledka, OUTPUT);
+
}
+
+
void loop() {
+
+
for(int i = 0; i < 1024; i++)
+
{
+
  analogWrite(ledka, i);
+
  delay(5);
+
}
+
}
+
 
+
== Samostatný úkol ==
+
# LEDka s postupně rozsvítí a pak postupně zhasne
+
# Během pěti sekund se LEDka rožne, sekundu zůstane rožnutá na maximum, 5 sekund se bude zhasínat a sekundu zůstane zhasnutá
+
# LEDka 5× blikne (5s) a pak 3 s počká (for cyklus)
+
## Při každém bliknutí se vypíše do konzole "Bliknutí číslo: "
+
 
+
= Podmínka =
+
 
+
if(jeSplneno)
+
{
+
  toto se provede, pokud je podmínka splněna
+
}
+
else
+
{
+
  toto se provede, když podmínka není splněna
+
}
+
 
+
Co může být v ''if()''?
+
* boolean
+
** if(spleno) { Serial.print("splneno"); } else { Serial.print("nesplneno"); }
+
* int
+
** if(teplota > 20) { ... rozsviť LEDku; }
+
 
+
= Vlastní metoda =
+
 
+
Již známe 2 metody ''void setup()'' a ''void loop()''
+
My se teď naučíme vytvořit si vlastní metodu.
+
 
+
Metoda se skládá z návratového typu, názvu metody a v závorkách má parametry.
+
 
+
My nepotřebujeme, aby nám metoda něco vracela, tak použijeme ''void''
+
 
+
void blikni() {
+
+
digitalWrite(ledka, HIGH);
+
delay(500)
+
digitalWrite(ledka, LOW);
+
}
+
 
+
a teď stačí napsat
+
blikni();
+
a provede se to, co je v té metodě... paráda, co? :D
+
 
+
Metodě můžeme dát parametr - počet bliknutí třeba
+
 
+
void blikni(int pocet) {
+
+
for(int i = 0, i < pocet; i++)
+
{
+
  digitalWrite(ledka, HIGH);
+
  delay(500)
+
  digitalWrite(ledka, LOW);
+
  delay(500);
+
}
+
}
+
 
+
Co udělá tento příkaz? (vyzkošej!)
+
blikni(5);
+
 
+
== Samostatný úkol ==
+
#Vytvoř metodu, co na 3 s rozsvítí ledku.
+
#Vytvoř metodu, co 10× vypíše "blik"
+
#Vytvoř metodu, co 3× vypíše zadané slovo a zabliká při tom
+
 
+
 
+
= Tlačítko =
+
 
+
[http://jurasek.wz.cz/index.php/iot1/15-ovladani-pres-tlacitko Tlačítko]
+
 
+
== Samostatné úkoly ==
+
# Když se zmačkne tlačítko, rozsvítí se modrá LEDka za 3 sekundy
+
# Žlutá dioda stále svítí, když zmáčkneme tlačítko, tak se zhasne a do konzole se vypíše "Zmáčkl si tlačítko po (číslo)"
+
 
+
 
+
= Display =
+
 
+
Teď si ukážeme další výstupní zařízení - display.
+
 
+
Aby display správně fungoval, musíme udělat tyto věci
+
 
+
Bacha, aby byla fajn adresa LiquidCrystal_I2C lcd(0x3F, 16, 2);
+
 
+
Adresa lze zjistit přes I2C_Scanner
+
 
+
importovat knihovny
+
#include <Wire.h>
+
#include <LiquidCrystal_I2C.h>
+
+
nastavit velikost displeje
+
LiquidCrystal_I2C lcd(0x27, 16, 2);
+
+
ve void setup()
+
+
lcd.begin();
+
 
+
A to je vše!
+
 
+
A teď si ukážeme pár metod pro práci s displejem
+
 
+
lcd.backlight(); - rožne se podsvícení
+
lcd.noBacklight(); - zhasne se podsvícení
+
lcd.print(); - napíše na display
+
lcd.clear(); - smaže vše z displeje
+
lcd.setCursor(0, 1); - nastaví kurzor na (znak, řádek)
+
 
+
== Zapojení ==
+
 
+
[https://randomnerdtutorials.com/esp32-esp8266-i2c-lcd-arduino-ide/ prozkoumejte!]
+
 
+
Tento display komunikuje přes I2C a na napájení má 5V.
+
 
+
'''Zkuste to zapojit sami a pak zavolejte lektora na zkontrolování.'''
+
 
+
Aby Vám to fungovalo, musíte mít knihovnu v počítači.
+
 
+
== Samostatný úkol ==
+
# Napište na display své jméno
+
# Napište na display své jméno a pod to "Hrajeme si s IoT"
+
# 5 sekund bude na displeji Vaše jméno a dalších 5 s tam bude "Hrajeme si s IoT"
+
# Prozkoumejte projekty knihovny (Soubor -> Příklady ->
+

Aktuální verze z 7. 4. 2021, 10:52


Obsah

Opakování

Na začátek si zopakujeme věci, které jsme dělali včera.

  1. Blikání LED diody s 2s prodlevou
  2. 3 LED diody, po 2 sekundách se bude střídat, která bude svítit (červená, žlutá, zelená, čer...)
  3. Vypsat do konzole všechna jednociferná čísla.

Cykly

Cykly — když potřebujeme něco udělat vícekrát.

Zkuste předělat tento úkol když umíte for cyklus.

  1. Vypsat do konzole všechna jednociferná čísla.

LED dioda

Postupné rozžíhání — postupně rožneme a zhasneme LED diodu.

Podmínka

Podmínka

Náhodné číslo

Náhodné číslo

Samostatné úkoly

Vlastní metoda

Vlastní metoda — s návratovým typem i bez něj.

Vyzkoušejte samostatné úkoly.

Tlačítko

Tlačítko — prostudujte zapojení a zápis kódu.

Udělejte samostatné úkoly.

Display

Display — další výstupní zařízení.

Závěrečné opakování

Na závěr dnešního dne si zkusme tento krátký testík.

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje