IoT: LED dioda

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (Příklad)
m (Příklad: - odsazení kódu)
 
(Není zobrazeno 38 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]][[Category:Učebnice IoT]]
  
= Co to je? =
+
== Co to je? ==
  
LED (zkratka z anglického Light-Emitting Diode, česky elektroluminiscenční dioda, též světelná dioda, svítivá dioda, slangově ledka, ojediněle svítivka) je v elektrotechnice  
+
<div class="Definice">
označení pro diodu, která emituje světlo, případně infračervené nebo ultrafialové záření, čímž se liší od standardní diody. LED vyzařuje z obnaženého PN přechodu, a vede  
+
LED (zkratka z anglického Light-Emitting Diode, česky elektroluminiscenční dioda, též světelná dioda, svítivá dioda, slangově ledka, ojediněle svítivka) je v elektrotechnice  
stejnosměrný proud pouze jedním směrem. Na rozdíl od žárovky dosahuje vysoké účinnosti, je mechanicky odolná, levná na výrobu, a proto je čím dál více využívána (kontrolky,  
+
označení pro diodu, která emituje světlo, případně infračervené nebo ultrafialové záření, čímž se liší od standardní diody. LED vyzařuje z obnaženého PN přechodu, a vede  
displeje, osvětlení).
+
stejnosměrný proud pouze jedním směrem. Na rozdíl od žárovky dosahuje vysoké účinnosti, je mechanicky odolná, levná na výrobu, a proto je čím dál více využívána (kontrolky,  
 +
displeje, osvětlení).
 
   
 
   
In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2020-08-09]. Dostupné z: https://cs.wikipedia.org/wiki/LED
+
In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2020-08-09]. Dostupné z: https://cs.wikipedia.org/wiki/LED
 +
</div>
  
= Popis a zapojení =
+
== Popis a zapojení ==
  
LEDka má 2 piny - kladný (+) a záporný (-)  
+
LED dioda má 2 piny —  kladný (+) a záporný (-)  
  
Menší ploška v diodě a delší nožička je katoda (+)
+
Menší ploška v diodě a delší „nožička“ je katoda (+)
  
Větší ploška v diodě a kratší nožička je anoda (-)
+
Větší ploška v diodě a kratší „nožička“ je anoda (-)
  
Zapojení LEDky je následující [[Image:Letní IoT: LEDka schéma.png | schéma ]] [[Image:Letní IoT: LEDka fotka.png | fotka]]
+
[[Image:schema-led-dioda.png]]
  
  GPIO pin - katoda LEDky - anoda LEDky - rezistor (odpor) - GND (zem)
+
Zapojení LED diody je následující
 +
 
 +
[[Image:schema-ledka.png]]
 +
 
 +
 
 +
  GPIO pin - katoda LED diody - anoda LED diody - rezistor (odpor) - GND (zem)
  
 
Rezistor můžete umístit před nebo za diodu.
 
Rezistor můžete umístit před nebo za diodu.
  
<div class="Varovani">Vždy je nutné vybrat správnou hodnotu rezistoru, jinak by se LEDka mohla spálit a poškodit i další zařízení.</div>
+
<div class="Varovani">Vždy je nutné vybrat správnou hodnotu rezistoru, jinak by se LED dioda mohla spálit a poškodit i další zařízení.</div>
  
= Rožnutí =
+
== Rožnutí ==
 +
 
 +
Na rožíhání a zhasínání LED diod máme metodu
 +
 
 +
<div class="Syntaxe">
 +
'''digitalWrite(''nazev'', ''stav'')'''
 +
</div>
  
<div class="Priklad"> Na rožíhání a zhasínání LEDek máme metodu '''digitalWrite(nazev, stav)''' </div>
+
''nazev'' — název, co jsme dali u ''#define '''nazev''' 5''
  
Stavy máme dva - zapnuto / vypnuto ... svítí / nesvítí ... '''HIGH / LOW'''
+
Stavy máme dva:
 +
#* '''HIGH''' — svítí
 +
#* '''LOW''' — nesvítí
  
== Příklad ==
+
=== Příklad ===
  
Na pinu D1 / GPIO5 máme zapojenou LEDku a tu chceme rozsvítit a pak zhasnout.
+
Na pinu D1 / GPIO5 máme zapojenou LED diodu a tu chceme rozsvítit a pak zhasnout.
  
 
  #define cervena 5
 
  #define cervena 5
Řádka 41: Řádka 56:
  
 
  void setup() {
 
  void setup() {
pinMode(cervena, OUTPUT);
+
    pinMode(cervena, OUTPUT);
 
  }
 
  }
  
Řádka 47: Řádka 62:
  
 
  void loop() {
 
  void loop() {
digitalWrite(cervena, HIGH);
+
    digitalWrite(cervena, HIGH);
delay();
+
    delay(1000);
digitalWrite(cervena, LOW);
+
    digitalWrite(cervena, LOW);
delay();
+
    delay(1000);
 
  }
 
  }
  
Definovali jsme si, že na GPIO5 je LEDka a že je výstupní.
+
Definovali jsme si, že na GPIO5 je LED dioda a že je výstupní.
  
Potom jsme rožli LEDku, počká se prodleva a pak se LEDka zase zhasne.
+
Potom jsme rožli LED diodu, počká se prodleva a pak se LED dioda zase zhasne.
  
<div class="Priklad"> Blikání s LEDkou </div>
+
<div class="Priklad"> [https://github.com/CestmirKolarik/IoTucebnice/blob/main/ArduinoIDE/LEDka_roznuti/LEDKa_roznuti.ino Blikání s LED diodou]. </div>
 +
 
 +
=== Samostatné úkoly ===
 +
Zapojte si 3 LED diody. Modrou, červenou a zelenou. Každá ať je zapojena na zvlášť – na jiném pinu.
 +
 
 +
[[Image:schema-3ledky.png]]
 +
 
 +
# modrá i červená LED dioda se rožnou na 3 s a pak 3 s nebudou svítit
 +
# modrá LED dioda se rozsvítí na 4 s, pak zhasne a zároveň se rozsvítí červená LED dioda, ta zhasne po 4s a znovu se rozsvítí modrá LED dioda
 +
# modrá LED dioda bude svítit 5 sekund a dvě a půl svítit nebude
 +
# každá LED dioda bude svítit 1s, pak se zhasne a rozsvítí se další (např. modrá, červená, zelená, modrá...)
 +
# vymysleti si vlastní zadání
  
 
== Další možnosti definování ==
 
== Další možnosti definování ==
Řádka 70: Řádka 96:
 
V návodech se můžete setkat i s některou z těchto možností.
 
V návodech se můžete setkat i s některou z těchto možností.
  
= Částečné rozžíhání =
+
== Postupné rozžíhání ==
  
Metodu '''digitalWrite();''' jsme si již ukázali. Ta je k rožnutí, či zhasnutí LEDky.
+
Metodu '''digitalWrite();''' jsme si již ukázali. Ta je k rožnutí, či zhasnutí LED diody.
  
Ale co když chceme LEDku rožnout jen částečně ... třeba na půl jasu?
+
Ale co když chceme LED diodu rozsvítit jen částečně ... třeba na půl jasu?
  
Či aby se postupně rozžíhala?
+
Či aby se postupně rozžíhala? K tomu nám slouží metoda:
  
<div class="Priklad"> K tomu nám slouží metoda ''analogWrite(nazevLedky, cislo);'' </div>
+
<div class="Syntaxe">
nazevLedky - ten název, co jsme dali u ''#define nazevLedky 15''
+
'''analogWrite(''nazev'', ''cislo'');'''
cislo - jak má svítit - v našem případě je to v rozmezí 0 - 1023 - 1024 možností
+
</div>
 +
''nazev'' — název, co jsme dali u ''#define '''nazev''' 5''
  
takže, chceme rozsvítit LEDku napůl jen - '''analogWrite(ledka, 512);'''
+
''cislo'' — jak má svítit — v našem případě je to v rozmezí 0 - 1023 (1024 možností)
 +
 
 +
takže, chceme rozsvítit LED diodu napůl jen - '''analogWrite(nazev, 512);'''
  
 
[http://jurasek.wz.cz/index.php/iot1/16-regulace-jasu-led Regulace jasu]
 
[http://jurasek.wz.cz/index.php/iot1/16-regulace-jasu-led Regulace jasu]
  
== Příklad ==
+
=== Příklad ===
  
LEDka se během 5ti sekund rožne.
+
LED dioda se během cca 5 sekund rožne.
  
  #define ledka 15
+
  #define ledka 5
 
   
 
   
 
  void setup() {
 
  void setup() {
Řádka 106: Řádka 135:
 
  }
 
  }
  
== Samostatný úkol ==
+
<div class="Priklad"> [https://github.com/CestmirKolarik/IoTucebnice/blob/main/ArduinoIDE/LEDka_postupne_roznuti/LEDKa_postupne_roznuti.ino Postupné rožnutí] </div>
# 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 bude sekundu zhaslá, sekundu na poloviční jas a sekundu na maximální jas
+
  
= RGB LEDka =
+
=== Samostatný úkol ===
 +
# LED dioda se postupně rozsvítí a pak postupně zhasne (během 6 sekund)
 +
# Během pěti sekund se LED dioda rožne, sekundu zůstane rožnutá na maximum, 5 sekund se bude zhasínat a sekundu zůstane zhasnutá
 +
# LED dioda bude sekundu zhaslá, sekundu na poloviční jas a sekundu na maximální jas
 +
 
 +
== RGB LED dioda ==
 +
 
 +
=== Popis ===
  
== Popis ==
+
RGB LED dioda má v sobě jakoby 3 LED dioda – Red, Green, Blue
 +
Má 3 katody (+) a jednu anodu (-)
  
RGB LEDka má v sobě jakoby 3 LEDky - Red, Green, Blue
+
[[Image:schema-rgb-dioda.png]]
Má 3 katody (+) a jednu anodu (-) [[https://ampul.cz/image/cache/catalog/image/data/led-dioda-katoda-600x600-product_popup.jpg schéma]]
+
  
 
Abychom ji mohli rozsvítit do námi požadované barvy, musíme něco vědět o [[https://www.w3schools.com/colors/colors_rgb.asp RGB mobelu]]
 
Abychom ji mohli rozsvítit do námi požadované barvy, musíme něco vědět o [[https://www.w3schools.com/colors/colors_rgb.asp RGB mobelu]]
Teoreticky je 16milionů 255natřetí možných kombinací, jak může svítit.
 
  
Budeme chtít zelenou - tak přivedeme napětí ke katodě která je spojena přechodem pn emitujícím zelené světlo.
+
Teoreticky je 16milionů, 255natřetí možných kombinací, jak může svítit.
  
== Zapojení ==
+
Budeme chtít zelenou, tak přivedeme napětí ke katodě která je spojena přechodem pn emitujícím zelené světlo.
  
GPIO pin - rezistor - katoda - GND
+
[http://jurasek.wz.cz/index.php/iot1/24-rgb-led RGB led ]
  
'''SCHÉMA DODÁM'''
+
=== Zapojení ===
  
== Příklady ==
+
[[Image:schema-RGBledka.png]]
 +
 
 +
GPIO pin - rezistor - katoda | anoda - GND
 +
 
 +
=== Příklady ===
  
 
Definuji si 3 výstupy - červený, zelný a modrý
 
Definuji si 3 výstupy - červený, zelný a modrý
Řádka 148: Řádka 184:
 
  digitalWrite(gre, HIGH);
 
  digitalWrite(gre, HIGH);
  
 +
<div class="Priklad"> [https://github.com/CestmirKolarik/IoTucebnice/blob/main/ArduinoIDE/LEDka_RGB/LEDka_RGB.ino RGB LED dioda] </div>
  
 
=== Samostatný úkol ===
 
=== Samostatný úkol ===
Řádka 154: Řádka 191:
 
#černá barva
 
#černá barva
  
== Více barev ==
+
=== Více barev ===
  
 
Ale takto získáme jen omezené množství barev, ale my chceme třeba fialovou, která je
 
Ale takto získáme jen omezené množství barev, ale my chceme třeba fialovou, která je
Řádka 165: Řádka 202:
 
* hodnota do metody analogWrite je v rozsahu '''0 až 1023'''
 
* hodnota do metody analogWrite je v rozsahu '''0 až 1023'''
  
takže fialové barvy můžeme dosáhnout následujícím způsobem
+
Také si musíme uvědomit že je používané PWM - námi zvolená barva na LEDce nebude úplně stejná jako původní barva.
 
+
<div class="Varovani"> Poznámka pro mě - ((255+1)*4)-1 ??? - nejlepší efektivita ale pracné, či dát 255 * 4 a spokojit se s tím, že to nebude moc přesné ... </div>
+
  
 
  analogWrite(red,556);
 
  analogWrite(red,556);
 
  analogWrite(gre, 0);
 
  analogWrite(gre, 0);
 
  analogWrite(blu, 1020);
 
  analogWrite(blu, 1020);
 +
 +
<div class="Priklad"> [https://github.com/CestmirKolarik/IoTucebnice/blob/main/ArduinoIDE/LEDka_RGB_mix/LEDka_RGB_mix.ino RGB LED dioda více barev]</div>
  
 
=== Samostatný úkol ===
 
=== Samostatný úkol ===
Řádka 177: Řádka 214:
 
# Vaše oblíbená barva
 
# Vaše oblíbená barva
 
# Tyrkysová barva
 
# Tyrkysová barva
 
<div class="Poznamka">
 
Kompletní kód naleznete na GiTu. (upřesním...)
 
</div>
 

Aktuální verze z 27. 5. 2021, 06:19


Obsah

Co to je?

LED (zkratka z anglického Light-Emitting Diode, česky elektroluminiscenční dioda, též světelná dioda, svítivá dioda, slangově ledka, ojediněle svítivka) je v elektrotechnice označení pro diodu, která emituje světlo, případně infračervené nebo ultrafialové záření, čímž se liší od standardní diody. LED vyzařuje z obnaženého PN přechodu, a vede stejnosměrný proud pouze jedním směrem. Na rozdíl od žárovky dosahuje vysoké účinnosti, je mechanicky odolná, levná na výrobu, a proto je čím dál více využívána (kontrolky, displeje, osvětlení).

In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2020-08-09]. Dostupné z: https://cs.wikipedia.org/wiki/LED

Popis a zapojení

LED dioda má 2 piny — kladný (+) a záporný (-)

Menší ploška v diodě a delší „nožička“ je katoda (+)

Větší ploška v diodě a kratší „nožička“ je anoda (-)

Schema-led-dioda.png

Zapojení LED diody je následující

Schema-ledka.png


GPIO pin - katoda LED diody - anoda LED diody - rezistor (odpor) - GND (zem)

Rezistor můžete umístit před nebo za diodu.

Vždy je nutné vybrat správnou hodnotu rezistoru, jinak by se LED dioda mohla spálit a poškodit i další zařízení.

Rožnutí

Na rožíhání a zhasínání LED diod máme metodu

digitalWrite(nazev, stav)

nazev — název, co jsme dali u #define nazev 5

Stavy máme dva:

    • HIGH — svítí
    • LOW — nesvítí

Příklad

Na pinu D1 / GPIO5 máme zapojenou LED diodu a tu chceme rozsvítit a pak zhasnout.

#define cervena 5

Definujeme, že ne GPIO5 je "něco" a to "něco" se jmenuje cervena

void setup() {
   pinMode(cervena, OUTPUT);
}

Řekneme, že cervena je výstupní

void loop() {
   digitalWrite(cervena, HIGH);
   delay(1000);
   digitalWrite(cervena, LOW);
   delay(1000);
}

Definovali jsme si, že na GPIO5 je LED dioda a že je výstupní.

Potom jsme rožli LED diodu, počká se prodleva a pak se LED dioda zase zhasne.

Samostatné úkoly

Zapojte si 3 LED diody. Modrou, červenou a zelenou. Každá ať je zapojena na zvlášť – na jiném pinu.

Schema-3ledky.png

  1. modrá i červená LED dioda se rožnou na 3 s a pak 3 s nebudou svítit
  2. modrá LED dioda se rozsvítí na 4 s, pak zhasne a zároveň se rozsvítí červená LED dioda, ta zhasne po 4s a znovu se rozsvítí modrá LED dioda
  3. modrá LED dioda bude svítit 5 sekund a dvě a půl svítit nebude
  4. každá LED dioda bude svítit 1s, pak se zhasne a rozsvítí se další (např. modrá, červená, zelená, modrá...)
  5. vymysleti si vlastní zadání

Další možnosti definování

#define modra 5
#define modra D1;
const char modra = 5;
char modra 5;
int modra = D1;
const char modra = 5;

V návodech se můžete setkat i s některou z těchto možností.

Postupné rozžíhání

Metodu digitalWrite(); jsme si již ukázali. Ta je k rožnutí, či zhasnutí LED diody.

Ale co když chceme LED diodu rozsvítit jen částečně ... třeba na půl jasu?

Či aby se postupně rozžíhala? K tomu nám slouží metoda:

analogWrite(nazev, cislo);

nazev — název, co jsme dali u #define nazev 5

cislo — jak má svítit — v našem případě je to v rozmezí 0 - 1023 (1024 možností)

takže, chceme rozsvítit LED diodu napůl jen - analogWrite(nazev, 512);

Regulace jasu

Příklad

LED dioda se během cca 5 sekund rožne.

#define ledka 5

void setup() {

pinMode(ledka, OUTPUT);
}

void loop() {

for(int i = 0; i < 1024; i++)
{
  analogWrite(ledka, i);
  delay(5);
}
}

Samostatný úkol

  1. LED dioda se postupně rozsvítí a pak postupně zhasne (během 6 sekund)
  2. Během pěti sekund se LED dioda rožne, sekundu zůstane rožnutá na maximum, 5 sekund se bude zhasínat a sekundu zůstane zhasnutá
  3. LED dioda bude sekundu zhaslá, sekundu na poloviční jas a sekundu na maximální jas

RGB LED dioda

Popis

RGB LED dioda má v sobě jakoby 3 LED dioda – Red, Green, Blue Má 3 katody (+) a jednu anodu (-)

Schema-rgb-dioda.png

Abychom ji mohli rozsvítit do námi požadované barvy, musíme něco vědět o [RGB mobelu]

Teoreticky je 16milionů, 255natřetí možných kombinací, jak může svítit.

Budeme chtít zelenou, tak přivedeme napětí ke katodě která je spojena přechodem pn emitujícím zelené světlo.

RGB led

Zapojení

Schema-RGBledka.png

GPIO pin - rezistor - katoda | anoda - GND

Příklady

Definuji si 3 výstupy - červený, zelný a modrý

#define red ...
#define gre ...
#fefine blu ...


Chceme červenou
#FF0000 - (255, 0, 0)
digitalWrite(red, HIGH);
Chceme žlutou
#FFFF00 - (255, 255, 0)
digitalWrite(red, HIGH);
digitalWrite(gre, HIGH);

Samostatný úkol

  1. zelená barva
  2. bílá barva
  3. černá barva

Více barev

Ale takto získáme jen omezené množství barev, ale my chceme třeba fialovou, která je

fialová #8b00ff - (139; 0; 255)

Takže musíme použít metodu analogWrite()

Víme že:

Také si musíme uvědomit že je používané PWM - námi zvolená barva na LEDce nebude úplně stejná jako původní barva.

analogWrite(red,556);
analogWrite(gre, 0);
analogWrite(blu, 1020);

Samostatný úkol

  1. Růžová barva
  2. Vaše oblíbená barva
  3. Tyrkysová barva
Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje