LedPreResistor 2.1: Vorwiderstandsrechner für LEDs (Lazarus, MIT, Win64)

OP #8114267

Hallo zusammen,

ich habe meinen alten Delphi-7-Vorwiderstandsrechner von 2004 in Lazarus komplett neu geschrieben und als Open Source (MIT) veröffentlicht. Vielleicht ist er für den einen oder anderen nützlich, vor allem für Einsteiger.

Was er macht:

  • Rechnet live beim Tippen: Betriebsspannung, Flussspannung, LED-Strom, Anzahl LEDs in Reihe
  • Nimmt den nächsthöheren Normwert aus E12, E24 oder E96, damit der Strom nie über dem geplanten Wert liegt
  • Zeigt tatsächlichen Strom und Verlustleistung in Widerstand und LEDs, schlägt die Widerstandsbaugrösse vor (⅛ bis 1 W), warnt ab 50 % Auslastung und schätzt die Erwärmung
  • Farbringe (4 Ringe, bei E96 5 Ringe) und Schaltplan mit allen Werten
  • Ein aufklappbarer «Rechenweg» rechnet Schritt für Schritt mit den eigenen Zahlen vor
  • Eingebaute LED-Info (F1), Oberfläche Deutsch und Englisch

Beispiel: 12 V, eine weisse LED (3,2 V), 20 mA ergibt rechnerisch 440 Ω, gewählt 470 Ω (E12), echter Strom 18,72 mA, 164,8 mW im Widerstand, also ½ W.

Technik: Lazarus 3.8 / FPC 3.2.2, nur LCL, eine einzelne 64-Bit-EXE ohne Installation. Der Rechenkern hat FPCUnit-Tests, die bei jedem Build in GitHub Actions laufen.

Quellcode und Download: https://github.com/Elospeed/LedPreResistor

Projektseite: https://elospeed.github.io/LedPreResistor/de/

Die EXE ist nicht signiert, SmartScreen kann deshalb warnen. Die SHA-256-Prüfsumme steht in den Release-Notes.

Über Rückmeldungen freue ich mich, besonders wenn euch bei der Rechnung oder der Belastbarkeitsschätzung etwas auffällt.

Gruss

Elospeed

Angehängte Dateien:

Schaut doch nett aus, auch wenn ich keinen echten Bedarf an so einem Rechner habe.

Was vielleicht helfen würde, wäre eine Abschätzung der Extremwerte.

Betriebsspannung ±10% (Wie aus dem PC-Netzteil z.B.) oder "5.4V…8.4V" (2S-LiIon)

LED Vf 2.6V…3.6V, evtl. noch breiterer Bereich wenn Temperatur nicht konstant.

Widerstand ±10% (hast du ja schon drinnen)

Und dann berechnen, was in den Worst-Cases der Strom ist

Angehängte Dateien:

Bei der Erwärmung ist für mich nicht klar ob die angegebenen Grad C die Differenz-Temperatur oder die Absolut-Temperatur ist (für den der es geschrieben hat ist natürlich alles klar). Wenn es die Absolut-Temperatur sein soll fehlt zumindest der Bezugswert/Umgebungstemperatur.

Speedy schrieb:

Über Rückmeldungen freue ich mich

Deine Batterie liefert immer eine konstante (geregelte) Spannung, das ist unrealistisch, eine Batterie hat eine Spannung wenn voll und eine niedrigere Spannung am Ende ihrer Kapazität, z.B. Alkali-Mangan 1.5V auf 0.9V.

Das könnte der Rechner berücksichtigen, damit die LED bei voller Batterie nicht überlastet wird dann ausrechnen wie viel Prozent Helligkeit am Ende der Batterie noch raus kommt.

OP

Danke euch für die vielen Rückmeldungen.

Kurz zum Grundgedanken: Eingegeben wird die Betriebsspannung, an der die LED hängt. Das kann ein geregelter Ausgang sein, z. B. 5 V von einem Netzteil, einem Treiber oder einem Mikrocontroller-Board. Für diesen typischen Fall ist das Tool gedacht: schnell den passenden Normwert, die Verlustleistung und die Baugrösse des Widerstands bestimmen.

@Ernst, @Michael: Bei einer Batterie oder einem Akku, deren Spannung sinkt, rechnet man mit der höchsten Spannung, also der vollen Batterie. Dann wird die LED nie überlastet und wird zum Ende hin nur dunkler. Eine Min/Max-Anzeige über einen Spannungsbereich und Toleranzen ist trotzdem eine gute Idee für später, ebenso das Tastverhältnis beim Blinken.

@Wastl: Gemeint ist die Übertemperatur gegenüber der Umgebung, also die Differenz. Es ist eine grobe Abschätzung über einen typischen Wärmewiderstand. Ich beschrifte es in der nächsten Version eindeutiger, z. B. «ca. +40 K über Umgebung».

@Rahul: Richtig, die LED-Kennlinie wird nicht nachgebildet, gerechnet wird mit der Flussspannung beim gewählten Strom aus dem Datenblatt. Für Anzeige-LEDs reicht das, für Hochleistungs-LEDs ist eine KSQ ohnehin die bessere Wahl.

@Hermann: Unter Wine läuft die EXE, wie Fred beschrieben hat. Eine eigene Linux-Version schaue ich mir an.

@Andreas: Eine formMain.frm gehört nicht zu LedPreResistor. LedPreResistor ist ein Lazarus-Projekt und lässt sich mit «lazbuild src/LedPreResistor.lpi» ohne weitere Dateien bauen. Nach dem Öffnen der .lpi ist der Editor zunächst leer; die Form findet man unter Projekt → Formulare (Shift+F12) → FormMain.

@Moritz: Helligkeit hängt stark vom LED-Typ ab, dafür bräuchte man die Lichtstärke aus dem Datenblatt. Ich notiere es als Idee.

Weitere Vorschläge gerne auch als Issue auf GitHub: https://github.com/Elospeed/LedPreResistor

Gruss Elospeed

Εrnst B. schrieb:

Schaut doch nett aus, auch wenn ich keinen echten Bedarf an so einem Rechner habe. Was vielleicht helfen würde, wäre eine Abschätzung der Extremwerte. Betriebsspannung ±10% (Wie aus dem PC-Netzteil z.B.) oder "5.4V…8.4V" (2S-LiIon) LED Vf 2.6V…3.6V, evtl. noch breiterer Bereich wenn Temperatur nicht konstant.

Wenn ich genug Spannung habe, rechne ich mit Standardwerten, so genau kommt es nicht drauf an. Wenn es knapp werden könnte, habe ich ein Blatt in der Tabellenkalkulation, die Grenzwerte zu beurteilen.

Rahul D. schrieb:

Auf die LED-Kennlinie geht das Programm vermutlich nicht ein?!

Die ist eigentlich nur ganz unten relevant. Die Tabelle im Anhang habe ich 2017 an NoName-LEDs aufgenommen. Und überhaupt,ob die Kontrollampe nun 2 oder 2,2 mA bekommt, interessiert nicht.

Vielleicht liege ich aber auch komplett daneben - ich berechne Vorwiderstände entweder von Hand, oder verwende gleich eine KSQ.

Für Beleuchtung KSQ, für Kontrollampen reicht ein Widerstand.

Wastl schrieb:

Bei der Erwärmung ist für mich nicht klar ob die angegebenen Grad C die Differenz-Temperatur oder die Absolut-Temperatur ist

Die Erwärmung hängt von der Umgebung ab, bzgl. der Lichtausbeute kann man sie vernachlässigen.

Angehängte Dateien:

Manfred P. schrieb:

Wenn ich genug Spannung habe, rechne ich mit Standardwerten, so genau kommt es nicht drauf an. Wenn es knapp werden könnte, habe ich ein Blatt in der Tabellenkalkulation, die Grenzwerte zu beurteilen.

Wir sind ja nicht die Zielgruppe... Jeder mit ein wenig Elektronik-Erfahrung schätzt das im Kopf ab, weiß wie er es genau berechnen kann, oder nimmt einfach denselben 1k-Vorwiderstand, den er schon hunderte Male verbaut hat. Eine Signal-LED sieht man auch mit weniger als 20mA gut leuchten.

Ich denke das Tool richtet sich eher an Anfänger, die sich wundern warum die LEDs nur noch glimmen, sobald die Batterie leerer wird. Und denen kann es m.M.n durchaus helfen, wenn sie direkt mit der Nase auf die Grenzwerte gestoßen werden, und was diese für den LED-Strom bedeuten.

Εrnst B. schrieb:

Jeder mit ein wenig Elektronik-Erfahrung schätzt das im Kopf ab, weiß wie er es genau berechnen kann, oder nimmt einfach denselben 1k-Vorwiderstand, den er schon hunderte Male verbaut hat.

Endlich hat mal einer geschrieben. Hab schon gedacht, hier sind nur noch Zombies, die für alles eine App brauchen.

: Bearbeitet durch User

Εrnst B. schrieb:

Wir sind ja nicht die Zielgruppe... Jeder mit ein wenig Elektronik-Erfahrung schätzt das im Kopf ab, weiß wie er es genau berechnen kann, oder nimmt einfach denselben 1k-Vorwiderstand, den er schon hunderte Male verbaut hat. Eine Signal-LED sieht man auch mit weniger als 20mA gut leuchten.

Das (20mA) war einmal. Im Anhang etwas, wo ich versucht habe, vier LEDs gefühlt vergleichbar hell zu haben, deutlich unter 2 mA.

Ich denke das Tool richtet sich eher an Anfänger, die sich wundern warum die LEDs nur noch glimmen, sobald die Batterie leerer wird.

Schwierige Ecke, ich habe blaue LEDs an einem LiIon-Akku, die auch bei 3,3V noch sichtbar sind. Kurz drunter schalte ich ab, weil es für die Funktion des Gerätes nicht mehr ausreicht.

Und denen kann es m.M.n durchaus helfen, wenn sie direkt mit der Nase auf die Grenzwerte gestoßen werden, und was diese für den LED-Strom bedeuten.

Ein hehres Ziel, diese Grundlagen per bunter Software vermitteln zu wollen.

Michael L. schrieb:

Endlich hat mal einer geschrieben. Hab schon gedacht, hier sind nur noch Zombies, die für alles eine App brauchen.

Hier sind erschreckend häufig Leute unterwegs, die für simple Dinge eine Absolution erwarten anstatt mal eigenständig zu testen.

Angehängte Dateien:

Speedy schrieb:

@Andreas: Eine formMain.frm gehört nicht zu LedPreResistor. LedPreResistor ist ein Lazarus-Projekt und lässt sich mit «lazbuild src/LedPreResistor.lpi» ohne weitere Dateien bauen. Nach dem Öffnen der .lpi ist der Editor zunächst leer; die Form findet man unter Projekt → Formulare (Shift+F12) → FormMain.

Ja, sorry, ich habe die Datei übersehen. Ich arbeite übrigens selbst mit Lazarus (weil es so schön plattformübergreifend ist). Bei mir jedenfalls erscheint da mur ein schwarzes Fenster mit einer Absturzmeldung (Linux Mint 20.3). Ich schaue es mir aber mal näher an. Nicht weil ich das Programm gebrauchen könnte, sondern aus sportlichen Gründen. ;-)

Alles zurück! Gerade gesehen, daß Du es für Hermann schon überarbeitet hast. Läuft jetzt. Ich finde es aber schon lustig was für einen Aufwand man betreiben kann, um Vorwiderstände von LEDs auszurechnen (schöne grafische Gimmiks übrigens ;-) ). Leider hilft es relativ wenig, wenn man für verschiedenfarbige Anzeigen gleiche Helligkeiten haben möchte. Da hilft letztendlich nur austesten.

OP

Kurzes Update: LedPreResistor 2.4 ist draussen.

Neu:

  • Konstantstromquelle mit LM317 oder zwei Transistoren

  • Speisespannung als Bereich (min/max), mit Stromschwankung im Vergleich zum Vorwiderstand

  • Mehrere LED-Stränge parallel

  • Rechenweg zum Kopieren

Windows und Linux, Open Source (MIT).

https://elospeed.github.io/LedPreResistor/de/ · Alle Tools: https://elospeed.github.io/

Speedy (Elospeed)

Angehängte Dateien:

Antwort schreiben

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.