IoT: LED dioda

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
(RGB LEDka: div)
(RGB LEDka: - RGB)
Řádka 146: Řádka 146:
 
  digitalWrite(red, HIGH);
 
  digitalWrite(red, HIGH);
 
  digitalWrite(gre, HIGH);
 
  digitalWrite(gre, HIGH);
 +
 +
 +
=== Samostatný úkol ===
 +
#zelená barva
 +
#bílá barva
 +
#černá barva
 +
 +
== 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 153: Řádka 161:
  
 
Víme že:
 
Víme že:
* RGB v desítkové soustavě je '''od 0 do 255'''
+
* [https://www.w3schools.com/colors/colors_rgb.asp RGB model] je '''od 0 do 255'''
 
* hodnota do metody analogWrite je v rozsahu '''0 až 1023'''
 
* hodnota do metody analogWrite je v rozsahu '''0 až 1023'''
  
Řádka 163: Řádka 171:
 
  analogWrite(gre, 0);
 
  analogWrite(gre, 0);
 
  analogWrite(blu, 1020);
 
  analogWrite(blu, 1020);
 +
 +
=== Samostatný úkol ===
 +
# Růžová barva
 +
# Vaše oblíbená barva
 +
# Tyrkysová barva
  
 
<div class="Poznamka">
 
<div class="Poznamka">
 
Kompletní kód naleznete na GiTu. (upřesním...)
 
Kompletní kód naleznete na GiTu. (upřesním...)
 
</div>
 
</div>

Verze z 18. 11. 2020, 12:32


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í

LEDka má 2 piny - kladný (+) a záporný (-) Obrázek

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

Zapojení LEDky je následující (bude schéma)

3V3 / GPIO pin -- katoda LEDky - anoda LEDky - 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 LEDka mohla spálit a poškodit i další zařízení.

Rožnutí

Na rožíhání a zhasínání LEDek máme metodu digitalWrite(nazev, stav)

Stavy máme dva - zapnuto / vypnuto ... svítí / nesvítí ... HIGH / LOW

Příklad

Na pinu D1 / GPIO5 máme zapojenou LEDku 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();
digitalWrite(cervena, LOW);
delay();
}

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

Potom jsme rožli LEDku, počká se prodleva a pak se LEDka zase zhasne.

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í.

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

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

Ale co když chceme LEDku rožnout jen částečně ... třeba na půl jasu?

Č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);

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

  1. LEDka s postupně rozsvítí a pak postupně zhasne
  2. 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á
  3. LEDka bude sekundu zhaslá, sekundu na poloviční jas a sekundu na maximální jas

RGB LEDka

Popis

RGB LEDka má v sobě jakoby 3 LEDky - Red, Green, Blue Má 3 katody (+) a jednu anodu (-) [schéma]

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.

Zapojení

GPIO pin - rezistor - katoda - GND

SCHÉMA DODÁM

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že fialové barvy můžeme dosáhnout následujícím způsobem

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é ...
analogWrite(red,556);
analogWrite(gre, 0);
analogWrite(blu, 1020);

Samostatný úkol

  1. Růžová barva
  2. Vaše oblíbená barva
  3. Tyrkysová barva

Kompletní kód naleznete na GiTu. (upřesním...)

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