|
|
@ -18,6 +18,9 @@ Options: |
|
|
|
--num-temps=... the number of temperature points to calculate (default: 36) |
|
|
|
""" |
|
|
|
|
|
|
|
from __future__ import print_function |
|
|
|
from __future__ import division |
|
|
|
|
|
|
|
from math import * |
|
|
|
import sys |
|
|
|
import getopt |
|
|
@ -47,9 +50,9 @@ class Thermistor: |
|
|
|
a = y1 - (b + l1**2 *c)*l1 |
|
|
|
|
|
|
|
if c < 0: |
|
|
|
print "//////////////////////////////////////////////////////////////////////////////////////" |
|
|
|
print "// WARNING: negative coefficient 'c'! Something may be wrong with the measurements! //" |
|
|
|
print "//////////////////////////////////////////////////////////////////////////////////////" |
|
|
|
print("//////////////////////////////////////////////////////////////////////////////////////") |
|
|
|
print("// WARNING: negative coefficient 'c'! Something may be wrong with the measurements! //") |
|
|
|
print("//////////////////////////////////////////////////////////////////////////////////////") |
|
|
|
c = -c |
|
|
|
self.c1 = a # Steinhart-Hart coefficients |
|
|
|
self.c2 = b |
|
|
@ -97,7 +100,7 @@ def main(argv): |
|
|
|
try: |
|
|
|
opts, args = getopt.getopt(argv, "h", ["help", "rp=", "t1=", "t2=", "t3=", "num-temps="]) |
|
|
|
except getopt.GetoptError as err: |
|
|
|
print str(err) |
|
|
|
print(str(err)) |
|
|
|
usage() |
|
|
|
sys.exit(2) |
|
|
|
|
|
|
@ -129,27 +132,27 @@ def main(argv): |
|
|
|
up_bound = t.temp(1); |
|
|
|
min_temp = int(TMIN if TMIN > low_bound else low_bound) |
|
|
|
max_temp = int(TMAX if TMAX < up_bound else up_bound) |
|
|
|
temps = range(max_temp, TMIN+step, step); |
|
|
|
temps = list(range(max_temp, TMIN+step, step)); |
|
|
|
|
|
|
|
print "// Thermistor lookup table for Marlin" |
|
|
|
print "// ./createTemperatureLookupMarlin.py --rp=%s --t1=%s:%s --t2=%s:%s --t3=%s:%s --num-temps=%s" % (rp, t1, r1, t2, r2, t3, r3, num_temps) |
|
|
|
print "// Steinhart-Hart Coefficients: a=%.15g, b=%.15g, c=%.15g " % (t.c1, t.c2, t.c3) |
|
|
|
print "// Theoretical limits of thermistor: %.2f to %.2f degC" % (low_bound, up_bound) |
|
|
|
print |
|
|
|
print "const short temptable[][2] PROGMEM = {" |
|
|
|
print("// Thermistor lookup table for Marlin") |
|
|
|
print("// ./createTemperatureLookupMarlin.py --rp=%s --t1=%s:%s --t2=%s:%s --t3=%s:%s --num-temps=%s" % (rp, t1, r1, t2, r2, t3, r3, num_temps)) |
|
|
|
print("// Steinhart-Hart Coefficients: a=%.15g, b=%.15g, c=%.15g " % (t.c1, t.c2, t.c3)) |
|
|
|
print("// Theoretical limits of thermistor: %.2f to %.2f degC" % (low_bound, up_bound)) |
|
|
|
print() |
|
|
|
print("const short temptable[][2] PROGMEM = {") |
|
|
|
|
|
|
|
for temp in temps: |
|
|
|
adc = t.adc(temp) |
|
|
|
print " { OV(%7.2f), %4s }%s // v=%.3f\tr=%.3f\tres=%.3f degC/count" % (adc , temp, \ |
|
|
|
print(" { OV(%7.2f), %4s }%s // v=%.3f\tr=%.3f\tres=%.3f degC/count" % (adc , temp, \ |
|
|
|
',' if temp != temps[-1] else ' ', \ |
|
|
|
t.voltage(adc), \ |
|
|
|
t.resist( adc), \ |
|
|
|
t.resol( adc) \ |
|
|
|
) |
|
|
|
print "};" |
|
|
|
)) |
|
|
|
print("};") |
|
|
|
|
|
|
|
def usage(): |
|
|
|
print __doc__ |
|
|
|
print(__doc__) |
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
main(sys.argv[1:]) |
|
|
|