piatok, 18 november 2011 17:51 Written by 11179 times
Rate this item
(0 votes)

C# - Výpočet predradeného odporu

Výpočet predradeného odporu

LED dióda alebo ľudovo ledka (Light Emitting Diode - svetlo vyžarujúca dióda) je polovodičový elektronický prvok ktorý vyžaruje úzkospektrálne svetlo. Vyžarovaná farba závisí od štruktúry PN prechodu a použitého materiálu.

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

led

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.

Last modified on pondelok, 19 december 2016 21:31
Ing.Jaroslav Vadel

Som zakladateľom www.projectik.eu.

Hrám sa na programátora, ktorý ovláda:

c#,cpp,java,unity3d,php,html,NI testand,NI Vision Builder,Cognex In-Sight,NI LabView

"Naprogramovať program, ktorý funguje vie každy. Ale to, že program funguje ešte neznamena, že je napísany správne "

Website: www.projectik.eu

Related items

More in this category: C# - Hello World »