IoT: LED dioda
(analogWrite()) |
|||
Řádka 67: | Řádka 67: | ||
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í == | ||
+ | |||
+ | 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);'' | ||
+ | |||
+ | [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 bude sekundu zhaslá, sekundu na poloviční jas a sekundu na maximální jas |
Verze z 16. 8. 2020, 10:40
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);
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 bude sekundu zhaslá, sekundu na poloviční jas a sekundu na maximální jas