Discussion:
Programm zur Widerstandsberechnung
(zu alt für eine Antwort)
Mark Riemann
2005-07-25 10:40:36 UTC
Permalink
Hallo,

auf der Suche nach einem Programm welches folgendes können muss, bin ich
bei google leider nicht fündig geworden.

Anforderungen:
Ich brauche einen bestimmten Widerstandswert (bspw. 26,5 kOhm). Nun gibt
es diesen weder in der E6/E12/E24 noch in anderen E-Reihen. Mann könnte
ihn aber evtl. aus 2 Widerständen paralell/reihe/oder Kombination beider
zusammensetzen, oder aber zumindest annähern.
Input: Ich gebe einen Gesamtwiderstand (inkl. einer Toleranz) vor.
Output: Er schlägt mir 2, 3, ... n Widerstände aus einer möglichst
preiswerten E-Reihe vor mit entsprechender Zusammmenschaltung (inkl.
entsprechend erreichtem Gesamtwiderstand).

Gibt es so etwas? Wenn ja wo?


MfG
mark
--
Um SPAM zu bekämpfen & mir eine Mail zu schreiben, ersetze das "news"
durch "mark" in der Adresse. eMails > 48KB werden automatisch gelöscht!
Georg Seegerer
2005-07-25 10:50:23 UTC
Permalink
Post by Mark Riemann
Ich brauche einen bestimmten Widerstandswert (bspw. 26,5 kOhm).
Wie genau muß der sein? Widerstände haben auch Toleranzen.
1% ist kein Problem, genauer wird teuer.
Post by Mark Riemann
Nun gibt
es diesen weder in der E6/E12/E24 noch in anderen E-Reihen. Mann könnte
ihn aber evtl. aus 2 Widerständen paralell/reihe/oder Kombination beider
zusammensetzen, oder aber zumindest annähern.
Dazu habe ich tatsächlich mal ein Programm gesehen. Aber ich bin oft
recht gut mit der Methode gefahren, den nächst höheren R aus der E??
Reihe zu nehmen und auszurechnen welchen Widerstand ich parallel
Schalten muß um den gewünschten zu erzielen. Falls das dann zu weit
weg ist kann man immer noch als parallel-R den Nächsthöheren aus
der Normreihe nehmen und eine zweite Iteration der Methode.
Aber immer daran denken dass bei z.B. 1% Widerständen eine rechnerische
Annäherung genauer als 1% nicht wirklich Sinn macht.
Alternativ immer den Nächstniedrigeren nehmen und berechnen welchen man
in Reihe schalten muß.

Georg
--
Die Reply-To Adresse ist reply-fähig ;-)
Mark Riemann
2005-07-25 11:08:36 UTC
Permalink
Post by Georg Seegerer
Wie genau muß der sein? Widerstände haben auch Toleranzen.
1% ist kein Problem, genauer wird teuer.
1% reicht in meinem Fall.
Post by Georg Seegerer
Dazu habe ich tatsächlich mal ein Programm gesehen. Aber ich bin oft
recht gut mit der Methode gefahren, den nächst höheren R aus der E??
Reihe zu nehmen und auszurechnen welchen Widerstand ich parallel
Schalten muß um den gewünschten zu erzielen. Falls das dann zu weit
weg ist kann man immer noch als parallel-R den Nächsthöheren aus
der Normreihe nehmen und eine zweite Iteration der Methode.
Aber immer daran denken dass bei z.B. 1% Widerständen eine rechnerische
Annäherung genauer als 1% nicht wirklich Sinn macht.
Alternativ immer den Nächstniedrigeren nehmen und berechnen welchen man
in Reihe schalten muß.
Das Verfahren an sich ist mir schon klar ;-) Genauso mache ich es ja
derzeit. Aber es nervt. Zumal es imho nicht schwierig sein dürfte, ein
solches Programm selbst zu schreiben. Bloß, wenn es solche Programme
schon gibt, warum dann selber das Rad neu erfinden. Deswegen frage ich
ja hier ...


MfG
Mark
--
Um SPAM zu bekämpfen & mir eine Mail zu schreiben, ersetze das "news"
durch "mark" in der Adresse. eMails > 48KB werden automatisch gelöscht!
Jens Rodrigo
2005-07-25 11:40:15 UTC
Permalink
Post by Georg Seegerer
Wie genau muß der sein? Widerstände haben auch Toleranzen.
1% ist kein Problem, genauer wird teuer.
Bloß, wenn es solche Programme schon gibt, warum dann
selber das Rad neu erfinden. Deswegen frage ich ja hier ...
Hier gibt es zwei Programme: Parallelschalten von zwei
Widerständen aus einer E-Reihe.
Vielleicht ist ja etwas dabei:

http://www.computertorture.com/noncompliant/parallel/
http://ourworld.compuserve.com/homepages/Bill_Bowden/resistor.htm

Gruß Jens
Mark Riemann
2005-07-25 12:22:14 UTC
Permalink
Post by Jens Rodrigo
http://www.computertorture.com/noncompliant/parallel/
http://ourworld.compuserve.com/homepages/Bill_Bowden/resistor.htm
Das erste von den Beiden kommt schon nahe an meine Anforderungen heran.
Fehlt eigentlich nur noch:
- Unterstützung für mehrere E-Reihen
- Einbeziehung von Reihenschaltung zweier Rs

Aber vielen Dank für Deine Mühe. Das hat mir schon mal sehr weitergeholfen.


MfG
Mark
--
Um SPAM zu bekämpfen & mir eine Mail zu schreiben, ersetze das "news"
durch "mark" in der Adresse. eMails > 48KB werden automatisch gelöscht!
Jens Rodrigo
2005-07-25 14:37:00 UTC
Permalink
Post by Mark Riemann
Post by Jens Rodrigo
http://www.computertorture.com/noncompliant/parallel/
http://ourworld.compuserve.com/homepages/Bill_Bowden/resistor.htm
Das erste von den Beiden kommt schon nahe an meine Anforderungen
- Unterstützung für mehrere E-Reihen
- Einbeziehung von Reihenschaltung zweier Rs
Aber vielen Dank für Deine Mühe. Das hat mir schon mal sehr
weitergeholfen.
Rechner für Widerstände in Serienschaltungen und E-Reihen
sind schwerer zu finden:
http://www.electronics2000.co.uk/calc/calcrsp.htm
http://www.webcalc.net/calc/0162_seriesresistors3.php

Gruß Jens

PS: Rat: "Schnell mal ein Programm selber schreiben".
Hier gibt mal ein Poster schwer an.
R. Bombach
2005-07-25 19:40:27 UTC
Permalink
Post by Jens Rodrigo
PS: Rat: "Schnell mal ein Programm selber schreiben".
Hier gibt mal ein Poster schwer an.
Ist ja kein Problem. Man muss sich halt mal die Mühe machen,
die E24 Reihe einzutippen. Eine Dekade reicht ja. Und ein
Progrämmchen, das durch alle Kombinationen dumm durchloopt
und die kleinste Abweichung speichert und die prozentuale
Abweichung vom Sollwert angibt. Sollte man als technischer
Computernutzer als Fingerübung eh irgendwann mal gemacht haben.
Bin jetzt aber zu faul, auf meiner alten DOS-mühle danach
zu suchen (QB45, das waren Zeiten....).
--
mfg Rolf Bombach
Emil Naepflein
2005-07-26 06:55:29 UTC
Permalink
Post by Jens Rodrigo
PS: Rat: "Schnell mal ein Programm selber schreiben".
Hier gibt mal ein Poster schwer an.
Wenn Du Dich auf die reine Funktion beschränkst und nicht auf
Klicki-Bunti konzentriest dann dürfte ein einfaches Progamm mit
Brute-Force Strategie innerhalb einer Stunde laufen. Die Hauptarbeit ist
das Eintippen der Reihen. Zur Not kann man sowas auch in Perl schreiben.
Selbst mein alter TI-59 Taschenrechner würde sowas mit etwas Zeit
problemlos schaffen.

Gruß,
Emil
Michael Redmann
2005-07-26 11:03:50 UTC
Permalink
Post by Emil Naepflein
Post by Jens Rodrigo
PS: Rat: "Schnell mal ein Programm selber schreiben".
Hier gibt mal ein Poster schwer an.
Wenn Du Dich auf die reine Funktion beschränkst und nicht auf
Klicki-Bunti konzentriest dann dürfte ein einfaches Progamm mit
Brute-Force Strategie innerhalb einer Stunde laufen. Die Hauptarbeit
ist das Eintippen der Reihen. Zur Not kann man sowas auch in Perl
schreiben. Selbst mein alter TI-59 Taschenrechner würde sowas mit
etwas Zeit problemlos schaffen.
Mach doch einfach eine Excel-Tabelle für zwei parallel geschaltete
E12er. Da dürftest du so ca. 90 Kombinationen pro Dekade haben. Das
langt.
--
Michael Redmann
Ralf Kusmierz
2005-07-26 15:20:31 UTC
Permalink
X-No-Archive: Yes
Post by Michael Redmann
Mach doch einfach eine Excel-Tabelle für zwei parallel geschaltete
E12er. Da dürftest du so ca. 90 Kombinationen pro Dekade haben. Das
langt.
Nö, das langt nicht. Wie würde ich strategisch vorgehen?

Entweder Reihen- oder Parallelschaltung wählen. Bei Reihenschaltung
den nächstkleineren und bei Paralelschaltung den nächstgrößeren Wert
aus der Standardreihe als Startwert raussuchen, den
Ergänzugswiderstand ausrechnen und dann für den den beanchbarten aus
den Standardwerten aussuchen - die Zusammenschaltung paßt
wahrscheinlich ziemlich gut, die beiden unterscheiden sich aber
gewöhnlich um mindestens eine Größenordnung. Also müßte man ziemlich
viele Dekaden kombinieren, und das wird unübersichtlich.

Aber wozu überhaupt Programm? Ich mach mal eine Liste:

1,21: 1,00 + 0,215 = 1,215 1,47 || 6,81 = 1,208
1,78: 1,47 + 0,316 = 1,784 2,15 || 10,0 = 1,773
2,61: 2,15 + 0,464 = 2,619 3,16 || 14,7 = 2,602
3,83: 3,16 + 0,681 = 3,844 4,64 || 21,5 = 3,819
5,62: 4,64 + 1,000 = 5,642 6,81 || 31,6 = 5,605
8,25: 6,81 + 1,468 = 8,281 10,0 || 46,4 = 8,227

1,10: 1,00 + 0,100 = 1,100 1,21 || 12,1 = 1,101
1,33: 1,21 + 0,121 = 1,333 1,47 || 14,7 = 1,334
1,62: 1,47 + 0,147 = 1,615 1,78 || 17,8 = 1,617
1,96: 1,78 + 0,178 = 1,956 2,15 || 21,5 = 1,959
2,37: 2,15 + 0,215 = 2,370 2,61 || 26,1 = 2,373
2,87: 2,61 + 0,261 = 2,871 3,16 || 31,6 = 2,875
3,48: 3,16 + 0,316 = 3,479 3,83 || 38,3 = 3,483
4,22: 3,83 + 0,383 = 4,214 4,64 || 46,4 = 4,220
5,11: 4,64 + 0,464 = 5,106 5,62 || 56,2 = 5,112
6,19: 5,62 + 0,562 = 6,186 6,81 || 68,1 = 6,194
7,50: 6,81 + 0,681 = 7,494 8,25 || 82,5 = 7,504
9,09: 8,25 + 0,825 = 9,079 10,0 || 100 = 9,091

1,05: 1,00 + 0,0511 = 1,051 1,10 || 21,5 = 1,047
1,15: 1,10 + 0,0562 = 1,157 1,21 || 23,7 = 1,153
1,27: 1,21 + 0,0619 = 1,273 1,33 || 26,1 = 1,269
1,40: 1,33 + 0,0681 = 1,402 1,47 || 28,7 = 1,396
1,54: 1,47 + 0,0750 = 1,543 1,62 || 31,6 = 1,537
1,69: 1,62 + 0,0825 = 1,698 1,78 || 34,8 = 1,692
1,87: 1,78 + 0,0909 = 1,869 1,96 || 38,3 = 1,862
2,05: 1,96 + 0,100 = 2,057 2,15 || 42,2 = 2,050
2,26: 2,15 + 0,110 = 2,265 2,37 || 46,4 = 2,256
2,49: 2,37 + 0,121 = 2,493 2,61 || 51,1 = 2,483
2,74: 2,61 + 0,133 = 2,744 2,87 || 56,2 = 2,733
3,01: 2,87 + 0,147 = 3,020 3,16 || 61,9 = 3,009
3,32: 3,16 + 0,162 = 3,324 3,48 || 68,1 = 3,312
3,65: 3,48 + 0,178 = 3,659 3,83 || 75,0 = 3,645
4,02: 3,83 + 0,196 = 4,027 4,22 || 82,5 = 4,012
4,42: 4,22 + 0,215 = 4,432 4,64 || 90,9 = 4,416
4,87: 4,64 + 0,237 = 4,879 5,11 || 100 = 4,861
5,36: 5,11 + 0,261 = 5,370 5,62 || 110 = 5,350
5,90: 5,62 + 0,287 = 5,911 6,19 || 121 = 5,889
6,49: 6,19 + 0,316 = 6,506 6,81 || 133 = 6,482
7,15: 6,81 + 0,348 = 7,161 7,50 || 147 = 7,134
7,87: 7,50 + 0,383 = 7,882 8,25 || 162 = 7,853
8,66: 8,25 + 0,422 = 8,676 9,09 || 178 = 8,644
9,53: 9,09 + 0,464 = 9,549 10,0 || 196 = 9,514


So einfach ist das ...


Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
gesamt heraus Immission interessiert korreliert korrigiert Laie
nämlich offiziell parallel reell Satellit Standard Stegreif voraus
Michael Redmann
2005-07-27 06:03:37 UTC
Permalink
Post by Ralf Kusmierz
X-No-Archive: Yes
Post by Michael Redmann
Mach doch einfach eine Excel-Tabelle für zwei parallel geschaltete
E12er. Da dürftest du so ca. 90 Kombinationen pro Dekade haben. Das
langt.
Nö, das langt nicht. Wie würde ich strategisch vorgehen?
Entweder Reihen- oder Parallelschaltung wählen. Bei Reihenschaltung
den nächstkleineren und bei Paralelschaltung den nächstgrößeren Wert
aus der Standardreihe als Startwert raussuchen, den
Ergänzugswiderstand ausrechnen und dann für den den beanchbarten aus
den Standardwerten aussuchen - die Zusammenschaltung paßt
wahrscheinlich ziemlich gut, die beiden unterscheiden sich aber
gewöhnlich um mindestens eine Größenordnung. Also müßte man ziemlich
viele Dekaden kombinieren, und das wird unübersichtlich.
[Liste entsorgt]

Da hast du zwar eine schöne Liste gemacht, in den wenigsten Fällen
braucht man aber Widerstände besser als auf 1 % genau. Die E96 reicht
also in der Regel völlig aus.

Wenn du Widerstände aus groberen Reihen (E12/E24) einsetzen musst, weil
es zum Beispiel nur diese gibt, reicht meist eine Parallel- oder
Reihenschaltung zweier Widerstände aus der gleichen oder benachbarten
Dekade.

Grüße
--
Michael Redmann
Ralf Kusmierz
2005-07-27 11:25:22 UTC
Permalink
X-No-Archive: Yes
Post by Michael Redmann
Da hast du zwar eine schöne Liste gemacht, in den wenigsten Fällen
braucht man aber Widerstände besser als auf 1 % genau. Die E96 reicht
also in der Regel völlig aus.
Nach den entsprechenden Ergebnissen war gefragt.
Post by Michael Redmann
Wenn du Widerstände aus groberen Reihen (E12/E24) einsetzen musst, weil
es zum Beispiel nur diese gibt, reicht meist eine Parallel- oder
Reihenschaltung zweier Widerstände aus der gleichen oder benachbarten
Dekade.
Warum aus der gleichen oder benachbarten Dekade? Die gröberen Werte
hatte ich übrigens jeweils genommen.


Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
gesamt heraus Immission interessiert korreliert korrigiert Laie
nämlich offiziell parallel reell Satellit Standard Stegreif voraus
Michael Redmann
2005-07-27 13:05:57 UTC
Permalink
Post by Ralf Kusmierz
X-No-Archive: Yes
Post by Michael Redmann
Da hast du zwar eine schöne Liste gemacht, in den wenigsten Fällen
braucht man aber Widerstände besser als auf 1 % genau. Die E96 reicht
also in der Regel völlig aus.
Nach den entsprechenden Ergebnissen war gefragt.
Eben. In deiner Liste sehe ich nur, wie du zwei E96-Werte zu einem
dritten Beinahe-E96-Wert kombinierst. Das ist zwar schön und gut aber
nicht Marks Problem. Thema verfehlt!

Er hatte gefragt, wie er Gesamtwiderstände erhält, die in keiner Reihe
drin sind. Meine Antwort war, dass er es entweder nicht braucht, weil
die E96 fein genug ist, oder dass er zwei aus E12 oder E24 kombinieren
kann.

Grüße
--
Michael Redmann
Ralf Kusmierz
2005-07-27 13:38:54 UTC
Permalink
X-No-Archive: Yes
Post by Michael Redmann
Post by Ralf Kusmierz
Nach den entsprechenden Ergebnissen war gefragt.
Eben. In deiner Liste sehe ich nur, wie du zwei E96-Werte zu einem
dritten Beinahe-E96-Wert kombinierst. Das ist zwar schön und gut aber
nicht Marks Problem. Thema verfehlt!
Nein, das stimmt nicht. Ich hatte jeweils zwei "gröbere" Werte zu
einem "feineren" kombiniert. (Laß Dich durch die Zahl der
Dezimalstellen nicht beirren.)
Post by Michael Redmann
Er hatte gefragt, wie er Gesamtwiderstände erhält, die in keiner Reihe
drin sind. Meine Antwort war, dass er es entweder nicht braucht, weil
die E96 fein genug ist, oder dass er zwei aus E12 oder E24 kombinieren
kann.
Ja, diese Kombination hatte ich auch gemacht.

Zu der "Kombination aus derselben bzw. einer benachbarten Dekade":

Der "Zielwert" (kann auch "krumm" sein) wird einfach genauer
getroffen, wenn man zu einem möglicht benachbarten Wert den "ferneren"
Ergänzungswiderstand berechnet, weil dessen Fehler in das
Gesamtergebnis dann weniger eingeht, als wenn man von zwei annähern
gleich großen Widerständen ausgeht.

Es ist eigentlich recht einfach zu programmieren:

Eine Reihe entsteht im Prinzip durch

y(k) = 10^(k/N),

wobei N die Zahl der Stufen pro Dekade ist.

Wenn man einen Wert X approximieren will, geht man so vor:

log X = k/N => k ~ N * log X

Man wählt also die Stufung N aus, berechnet k und rundet auf die
nächste Ganzzahl K1 auf (Parallelschaltung) oder ab (Reihenschaltung).

Das ergibt den ersten Widerstand X1 = 10^(K1/N)

Dann berechnet man

X2 = X - X1 = X - 10^(K1/N) (Reihenschaltung)

oder

1/X2 = 1/X - 1/X1 = 1/X - 10^(-K1/N) (Parallelschaltung)

und approximiert daraus

K2 = INT(N * log X2 + .5)

Daraus erhält man den passenden Serien- oder Parallelwiderstand

X2 = 10^(K2/N)

Geht eigentlich bequem auf jedem programmierbaren Taschenrechner:

Eingabe: N, X
Ausgabe: X1S, X2S (Reihenschaltung) und X1P, X2P (Parallelschaltung)


Gruß aus Bremen
Ralf
--
R60: Substantive werden groß geschrieben. Grammatische Schreibweisen:
adressiert Appell asynchron Atmosphäre Autor bißchen Ellipse Emission
gesamt heraus Immission interessiert korreliert korrigiert Laie
nämlich offiziell parallel reell Satellit Standard Stegreif voraus
Michael Redmann
2005-07-28 08:00:44 UTC
Permalink
Post by Ralf Kusmierz
X-No-Archive: Yes
Post by Michael Redmann
Post by Ralf Kusmierz
Nach den entsprechenden Ergebnissen war gefragt.
Eben. In deiner Liste sehe ich nur, wie du zwei E96-Werte zu einem
dritten Beinahe-E96-Wert kombinierst. Das ist zwar schön und gut aber
nicht Marks Problem. Thema verfehlt!
Nein, das stimmt nicht. Ich hatte jeweils zwei "gröbere" Werte zu
einem "feineren" kombiniert. (Laß Dich durch die Zahl der
Dezimalstellen nicht beirren.)
Sorry, jetzt sehe ich's auch. Du hattest Werte aus der E48 genommen, die
ja mit den entsprechenden aus der E96 identisch sind.
Post by Ralf Kusmierz
Der "Zielwert" (kann auch "krumm" sein) wird einfach genauer
getroffen, wenn man zu einem möglicht benachbarten Wert den "ferneren"
Ergänzungswiderstand berechnet, weil dessen Fehler in das
Gesamtergebnis dann weniger eingeht, als wenn man von zwei annähern
gleich großen Widerständen ausgeht.
Falls ich solche Kombinationen einsetze, dann nicht für Hühnerfutter. Da
reicht mir wie gesagt die E96. Bei Widerständen höherer Wattage, um mal
diesen aktuellen Begriff zu gebrauchen ;-), achte ich dann auf die
Teilleistungen der beiden Widerstände. Bei identischer Bauform ist es
dann besser, wenn die Werte nicht allzu weit auseinander liegen. Bei
anderen Kombinationen (50W-Widerstand und zum Abgleich ein kleiner 1W
parallel) sieht das anders aus.
Du könntest es noch optimieren, indem Du die exakten Werte der
Normreihen berücksichtigst. Ansonsten haben, wir glaub ich, alles zum
Thema gesagt.

Schönen Tag noch
--
Michael Redmann
Emil Naepflein
2005-07-25 14:21:57 UTC
Permalink
Post by Mark Riemann
Das Verfahren an sich ist mir schon klar ;-) Genauso mache ich es ja
derzeit. Aber es nervt. Zumal es imho nicht schwierig sein dürfte, ein
solches Programm selbst zu schreiben. Bloß, wenn es solche Programme
schon gibt, warum dann selber das Rad neu erfinden. Deswegen frage ich
ja hier ...
In der Zeit wo Du hier postest und liest hättest Du das Programm auch
selbst schreiben können. ;-)

Emil
Mark Riemann
2005-07-26 10:35:30 UTC
Permalink
Post by Emil Naepflein
In der Zeit wo Du hier postest und liest hättest Du das Programm auch
selbst schreiben können. ;-)
Bleibt die Frage, ob die Welt so etwas überhaupt braucht. Vielleicht bin
ich ja der Einzige, der so etwas überhaupt benötigt. ;-)


MfG
Mark
--
Um SPAM zu bekämpfen & mir eine Mail zu schreiben, ersetze das "news"
durch "mark" in der Adresse. eMails > 48KB werden automatisch gelöscht!
Emil Naepflein
2005-07-26 12:00:19 UTC
Permalink
Post by Mark Riemann
Post by Emil Naepflein
In der Zeit wo Du hier postest und liest hättest Du das Programm auch
selbst schreiben können. ;-)
Bleibt die Frage, ob die Welt so etwas überhaupt braucht. Vielleicht bin
ich ja der Einzige, der so etwas überhaupt benötigt. ;-)
Die Welt braucht sowas sicherlich nicht, aber wenn Du es öfter brauchst
und sowas nicht zu finden ist dann kannst Du beim Schreiben eines
einfachen Programms noch was dabei lernen.

Gruß,
Emil
Günther Dietrich
2005-07-25 15:03:34 UTC
Permalink
Post by Mark Riemann
Ich brauche einen bestimmten Widerstandswert (bspw. 26,5 kOhm). Nun gibt
es diesen weder in der E6/E12/E24 noch in anderen E-Reihen. Mann könnte
ihn aber evtl. aus 2 Widerständen paralell/reihe/oder Kombination beider
zusammensetzen, oder aber zumindest annähern.
Electronics Optimizer, ist ein Java-Programm und für Mac OS 10, Linux
und M$ Windows verfügbar.



Grüße,

Günther
Winfried Salomon
2005-07-27 20:24:03 UTC
Permalink
Hallo Günther,
Post by Günther Dietrich
Post by Mark Riemann
Ich brauche einen bestimmten Widerstandswert (bspw. 26,5 kOhm). Nun gibt
es diesen weder in der E6/E12/E24 noch in anderen E-Reihen. Mann könnte
ihn aber evtl. aus 2 Widerständen paralell/reihe/oder Kombination beider
zusammensetzen, oder aber zumindest annähern.
Electronics Optimizer, ist ein Java-Programm und für Mac OS 10, Linux
und M$ Windows verfügbar.
es geht auch einfacher, hab hier den Quellcode für alle Plattformen in
Pascal, wer sich dafür interessiert, ist hinten angehängt. Es ist ein
Konsolenprogramm, ohne Sound- und Lichtorgeleffekte. Habe ich mal aus einer
Zeitschrift abgetippt, die es mittlerweile sicher nicht mehr gibt, ich
glaube evtl. Electronic Journal mit dem unüblichen Papierformat, damals auf
CP/M mit Prospero ProPascal compiliert. Hab es selten benutzt, vor allem war
Pascal nie mein Fall, aber vielleicht interessiert es ja jemanden.

Mit GNU Pascal der DJGPP2 Distribution läuft es bei mir unter allen
Windows-Versionen, das Binärfile ist aber zu groß für eine Newsgroup,
deshalb kann ich es auch uuencoded oder dergleichen nicht posten. Es macht
genau das, was hier gesucht wird.

mfg. Winfried


Hier fängt resistor.pas an:
----------------------------------------------------------------------------
-----------------
PROGRAM resistor {input,output};
CONST e24min =1; {1 Ohm - 91 Megaohm = 8 Dekaden}
e24max =192;
toleranz=0.001; {gewuenschter max Fehler = 0.1 %}
TYPE mode=(zuklein,zugross,norm,rechne);
VAR rsoll,r1,r2,e:real;
zeiger :integer;
e24 :ARRAY [e24min..e24max] OF real;
PROCEDURE initial;
VAR i:integer;
BEGIN
e24[ 1]:=1 ; e24[ 2]:=1.1; e24[ 3]:=1.2; e24[ 4]:=1.3;
e24[ 5]:=1.5; e24[ 6]:=1.6; e24[ 7]:=1.8; e24[ 8]:=2.0;
e24[ 9]:=2.2; e24[10]:=2.4; e24[11]:=2.7; e24[12]:=3.0;
e24[13]:=3.3; e24[14]:=3.6; e24[15]:=3.9; e24[16]:=4.3;
e24[17]:=4.7; e24[18]:=5.1; e24[19]:=5.6; e24[20]:=6.2;
e24[21]:=6.8; e24[22]:=7.5; e24[23]:=8.2; e24[24]:=9.1;
FOR i:=1 TO e24max-24 DO e24[i+24]:=10*e24[i];
END;
PROCEDURE eingabe (VAR r,e:real);
BEGIN
writeln;write('Gib R = ');
readln(r);
writeln;writeln('R =',r:10:1,' Ohm');writeln;
e:=r*toleranz;
END;
FUNCTION test(r,e:real;VAR normwert:integer):mode;
VAR i:integer;
BEGIN
IF r<e24[e24min]
THEN test:=zuklein
ELSE BEGIN
IF r>e24[e24max]
THEN test:=zugross
ELSE BEGIN
normwert:=0;
FOR i:=e24min TO e24max DO BEGIN
IF abs(r-e24[i])<e THEN normwert:=i;
END;
IF normwert<>0 THEN test:=norm
ELSE test:=rechne;
END;
END;
END;

PROCEDURE reihe (VAR r1,r2:real;r,e:real);
VAR i,j :integer;
rx,rxbest:real;
BEGIN
rxbest:=-e24[e24max];
i:=e24max;
REPEAT i:=i-1 UNTIL e24[i]<r;
REPEAT
j:=i;
REPEAT
rx:=r-e24[i]-e24[j];
IF abs(rx)<e
THEN BEGIN {Erfolg}
r1:=e24[i];i:=e24min;
r2:=e24[j];j:=e24min;
END
ELSE BEGIN
IF rx>0
THEN j:=e24min {Sackgasse}
ELSE BEGIN {bestes Ergebnis halten}
IF rxbest<rx {< da rx negativ}
THEN BEGIN
r1:=e24[i];
r2:=e24[j];
rxbest:=rx;
END;
END;
END;
j:=j-1;
UNTIL j<=e24min;
i:=i-1;
UNTIL i<=e24min;
writeln('Reihenschaltung :');
writeln('R1,R2 =',r1:10:1,' Ohm ',r2:10:1,' Ohm');
writeln('Reihe =',r1+r2:10:1,' Ohm');
writeln('Fehler =',abs(r-r1-r2)/r*100:10:1,' %');
writeln;
END;

PROCEDURE parallel (VAR r1,r2:real;r,e:real);
VAR i,j :integer;
rx,rxbest:real;
FUNCTION rp (ra,rb:real):real;
BEGIN
rp:=ra*rb/(ra+rb);
END;
BEGIN
rxbest:=e24[e24max];
i:=1;
REPEAT
j:=i;
REPEAT
rx:=r-rp(e24[i],e24[j]);
IF abs(rx)<e
THEN BEGIN {Erfolg}
r1:=e24[i];i:=e24max;
r2:=e24[j];j:=e24max;
END
ELSE BEGIN
IF rx<0
THEN j:=e24max {Sackgasse}
ELSE BEGIN {bestes Ergebnis halten}
IF rxbest>rx
THEN BEGIN
r1:=e24[i];
r2:=e24[j];
rxbest:=rx;
END;
END;
END;
j:=j+1;
UNTIL j>=e24max;
i:=i+1;
UNTIL i>=e24max;
writeln('Parallelschaltung :');
writeln('R1,R2 =',r1:10:1,' Ohm ',r2:10:1,' Ohm');
writeln('parallel =',rp(r1,r2):10:1,' Ohm');
writeln('Fehler =',abs(r-rp(r1,r2))/r*100:10:1,' %');
writeln;
END;
BEGIN
initial;
REPEAT
eingabe(rsoll,e);
CASE test(rsoll,e,zeiger) OF
zuklein:writeln('R=',rsoll,' Ohm ist zu klein');
zugross:writeln('R=',rsoll,' Ohm ist zu gross');
norm :writeln('Normwert R=',e24[zeiger]:10:1,' Ohm');
rechne :BEGIN
reihe (r1,r2,rsoll,e);
parallel (r1,r2,rsoll,e);
END;
END;
UNTIL abs(rsoll)<toleranz; {Ende durch Eingabe von 0}
writeln('Ende!');
END.
Loading...