Last active
December 14, 2024 15:35
-
-
Save Lukelectro/aaf7d5860ae4112090eba586f1c8e38c to your computer and use it in GitHub Desktop.
Een stukje 'terible bit of python' om te helpen samengestelde weerstanden uit te rekenen uit een beperkte, bekende selectie weerstanden op voorraad.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Weerstanden-combinaties-maak programma. | |
Lijst van waarden opgeven (in source), grenzen voor gewenste waarde opgeven (in source) - todo later prompten | |
computer probeerd alle mogelijke serie-van-3-combinaties om tot de gewenste waarde te komen | |
en eventueel een combinatie met 2 parallel (2 serie, 1 parallel) | |
Ja, er komen dubbele combi's uit (A+B+C = A+C+B = C+A+B = C+B+A = B+A+C = B+C+A etc) | |
""" | |
lijst_van_weerstanden = [0, 150, 220, 1000, 1100, 1200, 1800, 3300, 4700, 10000, 11800, 12000, 33000, 47000, 56000, 180000] | |
#0.1% weerstanden hierboven. Misschien zijn er nog wat kleine E12 nodig, die kunnen er dan bij | |
lijst_extra_weerstanden = [1,4.7,10,15,22,33,47,56,68,82,100] | |
lijst = [] | |
lijst_R3 = [] | |
lijst_parallel = [] | |
ondergrens = 42045 | |
bovengrens = 42065 | |
ook_extra = False | |
ook_parallel = True | |
if ook_extra: | |
lijst=lijst_van_weerstanden+lijst_extra_weerstanden | |
else: | |
lijst=lijst_van_weerstanden | |
if ook_parallel: #TODO: iets slims dat dubbele opties voorkomt (Maar ik laat het erbij want dit is voor nu goed genoeg) | |
print("parallelweerstanden-opties: ") | |
for R_1 in lijst: | |
for R_2 in lijst: | |
if(R_1 == 0 or R_2 == 0): | |
RPAR = 0 | |
else: | |
RPAR = 1/((1/R_1)+(1/R_2)) | |
lijst_parallel.append(RPAR) | |
print(" ", R_1, "en ", R_2, "samen geeft ", RPAR) | |
lijst_R3=lijst_parallel+lijst | |
else: | |
lijst_R3=lijst | |
print("en daarmee rekenend kun je de volgende weerstanden samenstellen:") | |
for R1 in lijst: #TODO: iets slims dat dubbele opties voorkomt (Maar ik laat het erbij want dit is voor nu goed genoeg) | |
for R2 in lijst: | |
for R3 in lijst_R3: | |
RSUM = R1 + R2 + R3 | |
# eerst even alleen de som. Later ook met parallelcombi's, waarvoor R3 uit de parallelcombi-lijst gekozen kan worden | |
if RSUM > ondergrens and RSUM < bovengrens: | |
print("R1 =", R1, "R2 =", R2, "R3 =", R3, "som = ", RSUM) | |
print("Dat zijn de opties, en als dat er geen zijn moet je andere weerstanden toevoegen of je grenzen ruimer kiezen") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment