Skip to content

Instantly share code, notes, and snippets.

@Lukelectro
Last active December 14, 2024 15:35
Show Gist options
  • Save Lukelectro/aaf7d5860ae4112090eba586f1c8e38c to your computer and use it in GitHub Desktop.
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.
"""
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