![]() |
Tool zum Berechnen von LED Vorwiderstand u.s.w
Liste der Anhänge anzeigen (Anzahl: 2)
So will auch mal ein kleines Programm vorstellen.
Über Kommentare wär ich froh. Das Aussehen werde ich noch ändern bin ich noch nichts zu gekommen. Mit diesem Programm kann man LED Vorwiderstand berechnen Ohmsche Berechnungen Kabelwiderstand |
Re: Berechnungstool 2.1.1
Hi!
Herzlich willkommen in der DP! Könntest du bitte auch ein paar Worte schreiben, was dein Programm so macht? Grüße, Frederic |
Re: Berechnungstool 2.1.1
Screenshot und Beschreibung fehlen. Wenn du willst, dass sich jemand dein Programm anschaut solltest du das noch einfügen :)
|
Re: Berechnungstool 2.1.1
Aha...
Zitat:
|
Re: Berechnungstool 2.1.1
Öhm, ja gut, ein Berechnungstool. Und was kann man damit berechnen?
|
Re: Berechnungstool 2.1.1
Ich habe mal kurz in den Sourcecode reingeschaut.
Nix für ungut, aber dass ist das extremste Copy & Paste was ich seit langem gesehen habe. Eine Grundregel beim Programmieren lautet: "Du sollst Dich nicht selbst wiederholen" Man darf also nicht Folgendes schreiben:
Delphi-Quellcode:
Warum ziehst du die Anweisung spannung:=StrToFloat(Edit1.Text) nicht vor die ganzen If-Abfragen?
procedure TForm1.Button1Click(Sender: TObject);
begin if RadioButton14.checked = true then begin spannung := StrToFloat(Edit1.Text); widerstand := (spannung-rot_710sp)/rot_710st; Label18.Caption := FloatToStr(widerstand); Label19.Caption := 'Ohm'; end; if RadioButton15.Checked = true then begin spannung := StrToFloat (Edit1.Text); widerstand := (spannung-rot_3500sp)/rot_3500st; Label18.Caption := FloatToStr(widerstand); Label19.Caption := 'Ohm'; end; if RadioButton16.Checked = true then begin spannung := StrToFloat (Edit1.Text); // das geht hier noch seitenlang so weiter ... Hast du schon mal daran gedacht Label18 und Label19 über eine Prozedure zu setzen?
Delphi-Quellcode:
Sorry für die harten Worte (aber du möchtest doch dazulernen und ausserdem hat jeder mal klein angefangen)
procedure TForm1.ShowWiderstand(wert:Double);
var dim : string; begin if wert >= 1000000 then begin wert := wert / 1000000.0; dim = 'Megaohm'; end else if wert >= 1000 then begin wert := wert / 1000.0; dim = 'Kiloohm'; end else dim := 'Ohm'; Label18.Caption := FloatToSr(wert); Label19.Caption := dim; aber dein Sourcecode ist ein einziger Saustall. Du musst mal kräftig aufräumen und die immer wiederkehrenden Sourcecodefragmente eindampfen. |
Re: Berechnungstool 2.1.1
Hi!
An dieser Stelle sollte noch gesagt werden, dass Vergleiche der Art "= true" nicht gemacht werden sollen und sogar zu Problemen führen können. Zu den Gründern finden sich einige Threads im Forum. Grüße, Frederic |
Re: Berechnungstool 2.1.1
- Passt nicht auf meinen Bildschirm
- Form lässt sich nicht verkleinern Test abgebrochen! |
Re: Berechnungstool 2.1.1
Das ist mein erstes Programm und ich bin noch fleißig dabei zu lehrnen.
Habe bis jetzt nur c programiert und dieses ist doch noch etwas anderes. Darum hoffe ich ja auf hilfe. |
Re: Berechnungstool 2.1.1
Zitat:
Als erstes schau ich mir bei so etwas immer den Screenshot an. Bei deinem Programm fällt mir auf, dass die Oberfläche viel Platz durch Freiräume verschwendet. Es gibt viele freie Flächen, die ungenutzt bleiben. Ich selbst bin da eher der Fan von kompakten, aber dennoch übersichtlichen Oberflächen. Die Schrift, die du verwendest, gefällt mir nicht so gut, da sie sehr groß ist. Ich würde mich da eher nach den System-Vorgaben richten und eine etwas kleinere Schriftgröße wählen. Alleinde dadurch wird die Oberfläche schon wesentlich kompakter und es wirkt gleich deutlich professioneller. Aber dass die Oberfläche noch nicht fertig ist, hast du ja schon in Post #1 beschrieben. mfg |
Re: Berechnungstool 2.1.1
.. vielleicht könntest Du dem User ja die Möglichkeit geben,
den LED Typ aus einer Combobox auszuwählen. Der getroffenen Auswahl entsprechend kannst Du dann die zugehörigen Datenfelder anzeigen. Grüße Klaus |
Re: Berechnungstool 2.1.1
Da habe ich auch schon dran gedacht aber bin noch nicht mit der Box zurecht gekommen.
Das ich die Spannungen über den if Befehlen machen sollte hätte ich aber auch selber drauf kommen müßen ich trottel. Ja die Oberfläche ist schon fertig in meinen gedanken. Aber da komme ich erst später zu. |
Re: Berechnungstool 2.1.1
Wie kann man das denn in der ComboBox machen?? Ich habe es mal gerade angeschaut aber wie bekomme ich eine liste mit der Farbauswahl da rein???
|
Re: Berechnungstool 2.1.1
Zitat:
die Liste kannst Du zur Designzeit im ObjectInspector einfügen. Es gibt dort für die Combobox den Eintrag items. Wenn Du die Liste zur Laufzeit füllen willst, sollte das so gehen:
Delphi-Quellcode:
Oder wenn Du die Listeeinträge einzeln eintragen willst
combobox1.items.loadfromFile('fileName');
(wenn Du sie z.B. aus einem IniFile einliest) geht das so:
Delphi-Quellcode:
Wenn Du wissen willst welcher Eintrag ausgewählt wurde,
combobox1.items.add('eintrag);
hilft Dir:
Delphi-Quellcode:
Grüße
i := combobox1.ItemIndex
Klaus |
Re: Berechnungstool 2.1.1
Was dann wirklich cool wäre: Setze die Schrift-Farbe der einzelnen Einträge auf die Farbe der entsprechenden LED, also so, dass jeder Eintrag eine andere Schriftfarbe bekommt. Stichwort hierfür wäre z.B. "OwnerDraw", einfach mal in der DP suchen. Aber mach das (wenn überhaupt) erst dann, wenn der Rest funktioniert, also erstmal schauen, dass alles so geht, wie du dir das vorstellts.
mfg |
Re: Berechnungstool 2.1.1
Ja mit der Farbe habe ich auch schon gespielt und werde das auch warscheinlich mit einbauen.
Werde mal schauen ob ich das mit der CoboBox hin bekomme. |
Re: Berechnungstool 2.1.1
Zitat:
|
Re: Berechnungstool 2.1.1
Zitat:
|
Re: Berechnungstool 2.1.1
Und bitte ändere noch den Titel des Threads, damit man weiß, um was es geht.
|
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
.. so das ist alles noch ein wenig statisch.
Aber es zeigt das Prinzip gan gut auf: Als erstes habe ich zwei neue Typen erstellt:
Delphi-Quellcode:
Eine Variable vom Tyo TLEDList angelegt:
TLEDProperties = record
color: String; mcdValues : TStringList; end; // dynamisches Array vom Typ TLEDProperties TLEDList = Array of TLEDProperties;
Delphi-Quellcode:
Im FormCreate die LEDList initialisiert:
private
{ Private declarations } LEDList : TLEDList;
Delphi-Quellcode:
Die Werte ließen sich im Prinzip auch aus einer Datei (iniFile, xml) auslesen.
procedure TForm1.FormCreate(Sender: TObject);
begin // die Länge des dyn. Array auf die Anzahl der Einträge in der ComboBox anpassen setLength(LEDList,ComboBox1.Items.Count); LEDList[0].color:='rot'; LEDList[0].mcdValues := TStringList.Create; LEDList[0].mcdValues.add('15'); LEDList[0].mcdValues.add('20'); LEDList[1].color:='grün'; LEDList[1].mcdValues := TStringList.Create; LEDList[1].mcdValues.add('15'); LEDList[1].mcdValues.add('25'); LEDList[1].mcdValues.add('50'); LEDList[2].color:='blau'; LEDList[2].mcdValues := TStringList.Create; LEDList[2].mcdValues.add('100'); end; Wenn ein Wert aus der ComboBox ausgewählt wird:
Delphi-Quellcode:
Auf meiner Form haben sich eine ComboBox und eine Radiogroup befunden.
procedure TForm1.ComboBox1Change(Sender: TObject);
var i : Byte; begin // radioGroup1.Caption := ComboBox1.Items[ComboBox1.itemIndex]; // das obige ist ist dem untenstehende equivalent // das obige bringt Nachteile wenn du die Combobox1 mal nach Auswahlbox umbenennst radioGroup1.Caption := (sender as TComboBox).Items[(sender as TComboBox).itemIndex]; radioGroup1.Items.Clear; // iterierere durch die mcdValues StringList und füge für jeden Eintrag // einen Eintrag in die RadioGroup ein. for i:= 0 to LEDList[(sender as TComboBox).ItemIndex].mcdValues.Count -1 do begin radioGroup1.Items.Add(LEDList[(sender as TComboBox).itemIndex].mcd[i]); end; end; Ach ja, und nicht vergessen die StringListen wieder freizugeben. Grüße Klaus |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Sorry ein paar sachen verstehe ich ja aber nicht alles!!!
kannst du ein paar kommentare einfügen das ich das leichter verstehe??? |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
LED-Vorwiderstandsrechner
![]() ![]() ![]() ![]() Übrigens: Ich würde ein Programm mit so vielen Fehlern nicht veröffentlichen (Rechtschreibung, Design, Ausführung). Arbeitgeber sind auch nicht blöd und googlen auch nach Daniel Block o.ä. Das könnte negative Folgen haben... |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Der arme Physiker hieß übrigens Ampère. :angel2:
|
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Liste der Anhänge anzeigen (Anzahl: 1)
Also wenn du die übersichtlichkeit mit comboboxen erhöhen willst, hab ich nen vorschlag.
combobox1 füllst du schon zu beginn mit den LED farben. combobox2 lässt du vorerst leer. in combobox3 kannst du deine widerstandsberechnung einfügen. combobox4 lässt du am besten auch leer. im onchange ereignis von combobox1 kannst du eine case abfrage einbauen, die dir die entsprechenden einträge(candella werte) in combobox2 einträgt. bsp:
Delphi-Quellcode:
wenn du keine dateien hinterlegen möchtest, dann kannst du auch prozeduren schreiben, die du dann aufrufst.
case combobox1.itemindex of
0: combobox2.items.loadfromFile('fileName(rot)');//für erstes element! 1: combobox2.items.loadfromFile('fileName(grün)'); 2: combobox2.items.loadfromFile('fileName(blau)'); //usw. bei combobox4 würde ich das ebenso machen um die berechnungsformel/material/widerstandsanzahl einzufügen. dann hast du dein programm schonmal auf 4 comboboxen reduziert. die ausgabe der rechenwerte könntest du über ein memofeld oder eine liste oder stringgrid (oder..) machen. da gibt es mehrere möglichkeiten. dadurch hast du noch den vorteil, dass nicht die gesamte liste angezeigen brauchst, sondern nur die, die berechnet werden. hab mal schnell ein form erstellt, wie du das anordnen könntest. |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Zitat:
Das ist mir schon klar! Die links kenn ich alle die sind mir egal. Dies ist mein erstes Delphi Programm und da wollte ich nur wissen was ich ändern kann und wie es besser geht. Und sollten Firmen Googeln ist mir das auch egal. Denn dann können die sehen das ich mich hobby mäßig mit so was befasse. |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Hi,
Tip: Bring dein Tool in einen Zustand, dass man es auch nutzen kann. Ich habe das Teil runtergeladen. Es funktioniert aber auch garnichts vernünftig. Für was ist der Button "Berechnen". Ausser einem Piep, den der PC von sich gibt, kann ich keine Wirkung erkennen. Und was bitte schön ist Widerstandsmäng Grüsse Rainer |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Also für mich wäre das Tool so absolut nicht nutzbar.
- ich empfehle eine ComboBox, ListBox oder gar eine nach Gruppen sortierte TreeView, worüber man sich bestimmte "Standarderte" für die verschiedenen LEDs auswählen kann - dann eine einfache Eingabemaske mit allen wichtigen Parametern/Werte auf einem Blick Vorallem die fest vorgegebenen Werte bringen garnichts, dann ich hatte letztes Jahr mehrere SpezialLEDs in den Pfötchen, für Welche man hier nichts berechnen kann. z.B. eine blinkende LED mit 3,2V / 20mA |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Zitat:
öfters hat so wie ich. Diese LED's habe zu hauf bei mir liegen und dafür habe ich dieses Prog geschrieben damit ich nicht alle Vorwiderstandswerte immer ausrechnen muß. Zitat:
Wenn man alles lesen würde wüste man das ich hir lehrnen möchte da ich erst angefangen bin. Aber dann kommen solche die nicht helfen sondern nur meckern |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
ich sehe es so morpheus:
für dein erstes programm ist das i.o. ich denke fast, dass jeder ähnliche fehler am anfang macht. dein programm ist aber auch ein gutes beispiel, wie man es nur suboptimal macht. und genau das ist eher positiv zu sehen, denn jetzt kann dir jeder sagen, wie man es "besser" machen könnte. dadurch lernst du viel mehr, als wenn dir jeder sagt, wie toll das programm ist. also nicht verzagen... ;) PS: du kannst aus fast jedem Kommentar eine neue erkenntnis erhalten. z.B. bei R2009. was du als meckern siehst, kannst du auch als verbesserungsvorschlag nehmen, denn es zeigt dir, dass ein anderer benutzer nicht ohne weiteres mit dem programm zurechtkommt --> benutzerfreundlichkeit und intuitive steuerung eines programmes verbessern |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Zitat:
Ich habe dieses Prog ja hochgeladen um besser zu werden und des öfteren schon gesagt das die Oberfläche erst in der neuen Version besser wird. |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Hallo,
noch 'ne Idee: wenn Dein Vorwiderstand berechnet ist, wäre eine passende Wertausgabe von Widerständen der (auswählbaren) E-12, E-24 od. E-96 Reihe sinnvoll. Beispiel : errechnet : 7700 Ohm E12 : 6K2 , 8K2 E24 : 7K5 |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Zitat:
|
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Und nochmal zum Thema LED-Werte: Ich würde an deiner Stelle gar nicht so viele "Standard-Werte" vorgeben sondern nur vllt ein oder zwei "echte standard" Wertepaare (2 V / 20 mA und 2 V / 2 mA), alles andere sollte man eh abhängig der verwendeten LED eingeben. Also quasi Auswahl "normale LED", "Low current LED", "eigene Werte" wobei man bei letzterem einfach aus dem Datasheet die forward voltage und forward current einträgt. Denn letztendlich ist ja so ziemlich jede LED anders und das einzige was traditionell immer bei 0815-LEDs passt sind halt die oben genannten Werte (genauer nimmt man das meist eh nicht).
Grüße, Chris |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Hi morpheus,
Solch eine Antwort geht wohl garnicht. Meinst du ich hätte das Ganze heruntergeladen wenn ich dir nicht helfen wollte? Zitat:
Das hat mit meckern nichts zu tun. Kannst du keine Kritik ertragen? Grüsse Rainer Ps: Noch ein Kritikpunkt: Du solltest an deiner Rechtschreibung arbeiten. |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,
anbei mal ein kleines Beispiel, wie man's realisieren könnte. Ich finde Deine Oberfläche einfach zu überladen. Ich hab' als Beispiel 6 Led's vorgegeben (3 rote und 3 grüne), die Brechnung des Vorwiderstandes erfolgt nach der Eingabe der anzulegenden Spannung. E12- und E24- Reihe ist berücksichtigt. Tipp : für nicht ganz so fachkundige könnte man später noch die Farbcodierung der Widerstände mit ausgeben. |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
falls sich noch jemand dafür interessiert :
die E12, E24, E96 und E192 - Reihen
Delphi-Quellcode:
Const
E12 : array[1..12] of Real = (1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2); E24 : array[1..24] of Real = (1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1); E96 : array[1..96] of Real = (1.0, 1.02, 1.05, 1.07, 1.1, 1.13, 1.15, 1.18, 1.21, 1.24, 1.27, 1.30, 1.33, 1.37, 1.40, 1.43, 1.47, 1.50, 1.54, 1.58, 1.62, 1.65, 1.69, 1.74, 1.78, 1.82, 1.87, 1.91, 1.96, 2.0, 2.05, 2.1, 2.15, 2.21, 2.26, 2.32, 2.37, 2.43, 2.49, 2.55, 2.61, 2.67, 2.74, 2.80, 2.87, 2.94, 3.01, 3.09, 3.16, 3.24, 3.32, 3.40, 3.48, 3.57, 3.65, 3.74, 3.83, 3.92, 4.02, 4.12, 4.22, 4.32, 4.42, 4.53, 4.64, 4.75, 4.87, 4.99, 5.11, 5.23, 5.36, 5.49, 5.62, 5.76, 5.90, 6.04, 6.19, 6.34, 6.49, 6.65, 6.81, 6.98, 7.15, 7.32, 7.50, 7.68, 7.87, 8.06, 8.25, 8.45, 8.66, 8.87, 9.09, 9.31, 9.53, 9.76); E192 : array[1..192] of Real = (1.00, 1.01, 1.02, 1.04, 1.05, 1.06, 1.07, 1.09, 1.10, 1.11, 1.13, 1.14, 1.15, 1.17, 1.18, 1.20, 1.21, 1.23, 1.24, 1.26, 1.27, 1.29, 1.30, 1.32, 1.33, 1.35, 1.37, 1.38, 1.40, 1.42, 1.43, 1.45, 1.47, 1.49, 1.50, 1.52, 1.54, 1.56, 1.58, 1.60, 1.62, 1.64, 1.65, 1.67, 1.69, 1.72, 1.74, 1.76, 1.78, 1.80, 1.82, 1.84, 1.87, 7.89, 1.91, 1.93, 1.96, 1.98, 2.00, 2.03, 2.05, 2.08, 2.10, 2.13, 2.15, 2.18, 2.21, 2.23, 2.26, 2.29, 2.32, 2.34, 2.37, 2.40, 2.43, 2.46, 2.49, 2.52, 2.55, 2.58, 2.61, 2.64, 2.67, 2.71, 2.74, 2.77, 2.80, 2.84, 2.87, 2.91, 2.94, 2.98, 3.01, 3.05, 3.09, 3.12, 3.16, 3.20, 3.24, 3.28, 3.32, 3.36, 3.40, 3.44, 3.48, 3.52, 3.57, 3.61, 3.65, 3.70, 3.74, 3.79, 3.83, 3.88, 3.92, 3.97, 4.02, 4.07, 4.12, 4.17, 4.22, 4.27, 4.32, 4.37, 4.42, 4.48, 4.53, 4.59, 4.64, 4.70, 4.75, 4.81, 4.87, 4.93, 4.99, 5.05, 5.11, 5.17, 5.23, 5.30, 5.36, 5.42, 5.49, 5.56, 5.62, 5.69, 5.76, 5.83, 5.90, 5.97, 6.04, 6.12, 6.19, 6.26, 6.34, 6.42, 6.49, 6.57, 6.65, 6.73, 6.81, 6.90, 6.98, 7.06, 7.15, 7.23, 7.32, 7.41, 7.50, 7.59, 7.68, 7.77, 7.87, 7.96, 8.06, 8.16, 8.25, 8.35, 8.45, 8.56, 8.66, 8.76, 8.87, 8.98, 9.09, 9.19, 9.31, 9.42, 9.53, 9.65, 9.76, 9.88); |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
@ morpheus090682 : noch da ??? :glaskugel:
|
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Ja ich bin noch da!!!
So wie du das gemacht hast habe ich mir das auch gedacht! Ich bin nun angefangen mit der Oberfläche. Mußte nur vom Kolegen das design von unserer Hompage haben. Nun werde ich mich am WE dran setzen und weiter machen. |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
@ morpheus090682
Wenn Du Dein Programm aufarbeitst, noch ein paar Tipps : trenne die verschiedenen Berechnungen (Led-Vorwiderstand, Widerstandsberechnungen, Kabelwiederstände) - z.B. durch Verwendung verschiedener Forms oder PageControl, TabControl ... so wird das Programm - und der Quellcode - übersichtlicher ich habe Berechnungen(E12, E24 ...) erst ab einer (errechneten Widerstandsgröße) von > 1 Ohm zugelassen (weniger macht auch kaum Sinn), die E96-Reihe gibt's meines Wissens auch erst ab 1 Ohm eine Ausgabe der Leistung, die der Vorwiderstand "verbrät" wäre nicht schlecht (bei 24V sind's bei einer Standard Led so um die 450mW, mit 'nenm 0,25W-Widerstand wird's dann nichts mehr ...) |
Re: Tool zum Berechnen von LED Vorwiderstand u.s.w
Ab 0,1 Ohm kann man Widerstände bekommen aber alles unter 1 Ohm ist zu teuer.
Eins ist mir noch aufgefallen bei dem Programm was du gemacht hast und zwar wenn ich unter der LED_Spannung z.B. 1,85V gehe hat der Widerstand ein Minus davor. Kann man das sperren das man nicht weniger als die Vorgegebene LED_Spannung eingeben kann??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz