36 lines
502 B
Python
Executable File
36 lines
502 B
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import numpy as np
|
|
|
|
vref = 0.8
|
|
|
|
def par(*rlist):
|
|
s = 0
|
|
for r in rlist:
|
|
s += 1 / r
|
|
return 1 / s
|
|
|
|
Rt = 18e3
|
|
|
|
Ra = 2.2e3
|
|
Rb = 4.7e3
|
|
Rc = 10e3
|
|
Rd = 22e3
|
|
|
|
Rs = [Ra, Rb, Rc, Rd]
|
|
|
|
Rbs = []
|
|
for i in range(1, 2**len(Rs)):
|
|
rlist = []
|
|
for k in range(len(Rs)):
|
|
if i & (1 << k):
|
|
rlist.append(Rs[k])
|
|
Rbs.append(par(*rlist))
|
|
|
|
Rbs = np.array(Rbs)
|
|
|
|
vouts = vref * (Rbs + Rt) / Rbs
|
|
|
|
for vout in sorted(list(vouts)):
|
|
print(f"{vout:6.2f} V")
|