Letní IoT: Den 2

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(Cykly)
(LEDka)
Řádka 20: Řádka 20:
 
= LEDka =
 
= LEDka =
  
Metodu ''digitalWrite();'' jsme si již ukázali. Ta je k rožnutí, či zhasnutí LEDky.
+
[[ Letní IoT : LEDka # Částečné rozžíhání | Částečné rozžíhání ]]
Ale co když chceme LEDku rožnout jen částečně? ... či aby se postupně rozžíhala?
+
 
+
K tomu nám slouží metoda ''analogWrite(nazevLedky, cislo);''
+
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);''
+
 
+
[http://jurasek.wz.cz/index.php/iot1/16-regulace-jasu-led Regulace jasu]
+
 
+
== Příklad ==
+
 
+
LEDka se během 5ti sekund rožne.
+
 
+
#define ledka 15
+
+
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 =
 
= Podmínka =

Verze z 16. 8. 2020, 10:40


Obsah

Opakování

Na začátek si zopakujeme věci, co jsme dělali včera

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


Cykly

Letní IoT : Cykly

  1. Úvod do cyklů
  2. For cyklus
  3. Samostatné úkoly

LEDka

Částečné rozžíhání

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()?

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

  1. Vytvoř metodu, co na 3 s rozsvítí ledku.
  2. Vytvoř metodu, co 10× vypíše "blik"
  3. Vytvoř metodu, co 3× vypíše zadané slovo a zabliká při tom


Tlačítko

Tlačítko

Samostatné úkoly

  1. Když se zmačkne tlačítko, rozsvítí se modrá LEDka za 3 sekundy
  2. Ž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í

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

  1. Napište na display své jméno
  2. Napište na display své jméno a pod to "Hrajeme si s IoT"
  3. 5 sekund bude na displeji Vaše jméno a dalších 5 s tam bude "Hrajeme si s IoT"
  4. Prozkoumejte projekty knihovny (Soubor -> Příklady ->
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje