在micropython 这种比较小众的控制模式中,经常要进行一些类比PLC的小型以及微型的实际应用,考虑到模拟量采集的时候4-20MA 以及0-10V都是需要进行比例转换。所以写了以下类进行简化。
class AiDi(object):
def __init__(self,amin,amax,bmin,bmax):#一侧比例最大值、最小值,另一次比例最大值、最小值
self.amin=amin
self.amax=amax
self.bmin=bmin
self.bmax=bmax
self.Dvalue=0
def rec(self,Avalue):
self.Dvalue=(Avalue-self.amin)*(self.bmax-self.bmin)/(self.amax-self.amin)+self.bmin
return self.Dvalue
调用类后
if __name__=='__main__':
a_d=AiDi(1000,30000,4,20)
a_d.rec(22000)
执行结果。
>>> print(a_d.rec(22000))
15.586206896551724