LED diódy využivajú rôzne napätia a prúdy vzhľadom na vyžarovanú farbu a veľkosť viď tabuľka nižšie.
- červená 1.9 V 20 mA
- range'>oranžová 2.0 V 25 mA
- žltá 2.0 V 25 mA
- zelená 2.2 V 20 mA
- modrá 3.5 V 20 mA
- biela 3,5 V 20 mA
Predradený odpor je nevyhnutý pre zapojenie led diód pri inom než 1,5-3,5V napätí. Slúži teda na úpravu napájacieho napätia aby nedošlo k prepáleniu diódy. Jeho hodnota sa líši aj podľa toho, ako sú ledky zapojené (paralelne alebo sériovo).
Kód programu v C#
Na začiatku si navrhneme triedu dióda:
Kód v C#
class Led { public Led(string meno, double napatie, double prud) { this.meno = meno; this.napatie = napatie; this.prud = prud; this.AlowZmenu = false; } public Led(string meno, double napatie, double prud,bool zmena) { this.meno = meno; this.napatie = napatie; this.prud = prud; this.AlowZmenu = zmena; } public double Napatie { set; get; } public double Prud { set; get; } public string Meno { set; get; } public bool PovolZmenu { set; get; } }
Ďalej si vytvoríme 7 diód:
Kód v C#
private void createLeds() { /* červená 1.9 V 20 mA oranžová 2.0 V 25 mA žltá 2.0 V 25 mA zelená 2.2 V 20 mA modrá 3.5 V 20 mA biela 3.5 V 20 mA */ mojaLed[0] = new Led("červená", 1.9, 20); mojaLed[1] = new Led("oranžová", 2.0, 25); mojaLed[2] = new Led("žltá", 2.0, 25); mojaLed[3] = new Led("zelená", 2.2, 20); mojaLed[4] = new Led("modrá ", 3.5, 20); mojaLed[5] = new Led("biela ", 3.5, 20); mojaLed[6] = new Led("vlastná ", 0, 0,true); foreach (Led s1 in mojaLed) { this.comboBox1.Items.Add(s1.meno); } }
Samotný výpočet ,
R=U/I ,kde R je predradný odpor
P=I*U ,kde P je stratový vykon na odpore .
Kód v C#
double r = (uf - uled) / (iled / 1000); //R=U/I double rp = (iled / 1000) * (uf - uled); //P=I*U
Ďalej si ešte ukážeme ako prevedieme hodnotu odporu zadanú v tvare napr 1K2 na číslo, na to nám poslúži nasledujúci kód :
Kód v C#
private void convert(string nazov, out double hodnota) { hodnota = 0; try { Regex lRegEx1 = new Regex(@"(?<celecislo>\d{0,3})(?<rada>[rRkKmM])(?<desatinnecislo>\d{0,3})");//napr 1R3 string rada = string.Empty; if (lRegEx1.IsMatch(nazov)) { MatchCollection groups = lRegEx1.Matches(nazov); hodnota = 0; if (groups[0].Groups["celecislo"].Value != string.Empty) { hodnota += Convert.ToInt16(groups[0].Groups["celecislo"].Value) * 1; }; if (groups[0].Groups["desatinnecislo"].Value != string.Empty) { hodnota += Convert.ToInt16(groups[0].Groups["desatinnecislo"].Value) * 0.1; }; rada = groups[0].Groups["rada"].Value; if (rada != string.Empty) { switch (rada) { case "r": case "R": hodnota *= 1; break; case "k": case "K": hodnota *= 1000; break; case "m": case "M": hodnota *= 1000000; break; } } } else { hodnota = 0; } } catch (Exception ex1) { MessageBox.Show(ex1.Message); } }
Na záver si môžete stiahnuť hotový program.