def run(self): #把要执行的代码写到run函数里面 线程在创建后会直接运行run函数 # print "Starting " + self.name # print_time(self.name, self.counter, 5) # print "Exiting " + self.name RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.setup(3, RPi.GPIO.OUT) ads1248.init() TempOUT1 = 12 #60度 TempOUT2 = 23 #70度 TempOUT3 = 15 #90度 RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.setup(TempOUT1, RPi.GPIO.OUT) RPi.GPIO.setup(TempOUT2, RPi.GPIO.OUT) RPi.GPIO.setup(TempOUT3, RPi.GPIO.OUT) RPi.GPIO.setmode(RPi.GPIO.BCM) RPi.GPIO.output(3, RPi.GPIO.HIGH) try: if self.pidName == 60: RPi.GPIO.setmode(RPi.GPIO.BCM) #设置pwm输出占空比 pwm = RPi.GPIO.PWM(TempOUT1, 5) #pwm周2500ms pwm.start(1) #创建pid控制器对象 pid60 = pid60Ctr.pidCtr() #准备写入文件 file_handle = open('60Templog.txt', mode='w') # xls.creatxls() #循环控制温度 while True: time.sleep(0.5) pid60.Pv = float(pt1000.calcTemp(01)) print( "Pt1000で測温[01]==%s\n温度センサー测温[01]==None 度\n-----------------------------" % pid60.Pv) file_handle.write("%s | " % pid60.Pv) pid60.calc() # print("pidCr.OUTの計算結果==%s"%pid60.OUT) dc = pid60.OUT / pid60.pwmcycle * 100 pwm.ChangeDutyCycle(dc) # print("PWM信号のDutyCyle:%s"%dc) # file_handle.write("%s ;\n"%dc) file_handle.close() elif self.pidName == 70: RPi.GPIO.setmode(RPi.GPIO.BCM) #设置pwm输出占空比 pwm = RPi.GPIO.PWM(TempOUT2, 5) #pwm周期200ms pwm.start(1) #创建pid控制器对象 pid70 = pid70Ctr.pidCtr() #准备写入文件 file_handle = open('70Templog.txt', mode='w') #循环控制温度 while True: time.sleep(0.5) pid70.Pv = float(pt1000.calcTemp(23)) print( "Pt1000で測温[23]==%s\n温度センサー测温[23]== None度\n-----------------------------" % pid70.Pv) # print("温度センサー测温[4,5]==%s度"%adt7410.read_adt7410()) file_handle.write("%s | " % pid70.Pv) pid70.calc() # print("pidCr.OUTの計算結果==%s"%pid70.OUT) dc = pid70.OUT / pid70.pwmcycle * 100 pwm.ChangeDutyCycle(dc) # print("PWM信号のDutyCyle:%s"%dc) # file_handle.write("%s ;\n"%dc) file_handle.close() elif self.pidName == 90: RPi.GPIO.setmode(RPi.GPIO.BCM) #设置pwm输出占空比 pwm = RPi.GPIO.PWM(TempOUT3, 5) #pwm周期200ms pwm.start(1) #创建pid控制器对象 pid90 = pid90Ctr.pidCtr() #准备写入文件 file_handle = open('90Templog.txt', mode='w') #循环控制温度 while True: time.sleep(0.5) pid90.Pv = float(pt1000.calcTemp(45)) print( "Pt1000で測温[45]==%s\n温度センサー测温[45]== None度\n-----------------------------" % pid90.Pv) # print("温度センサー测温[4,5]==%s度"%adt7410.read_adt7410()) file_handle.write("%s | " % pid90.Pv) pid90.calc() # print("pidCr.OUTの計算結果==%s"%pid90.OUT) dc = pid90.OUT / pid90.pwmcycle * 100 pwm.ChangeDutyCycle(dc) # print("PWM信号のDutyCyle:%s"%dc) # file_handle.write("%s ;\n"%dc) file_handle.close() finally: RPi.GPIO.output(3, RPi.GPIO.LOW) RPi.GPIO.cleanup()
if __name__ == "__main__": try: pi=PIinit() print("初始化完毕,创建PIinit对象pi,flag==%s"%pi.flag) # RPi.GPIO.output(pi.TempOUT1, True) # print("TempOUT1开始输出1") pid=pidCtr() print("创建pidCtr对象pid,flag==%s"%pid.flag) #设置pwm pwm=RPi.GPIO.PWM(pi.TempOUT1,5)#pwm周期200ms pwm.start(1) file_handle=open('90Templog.txt',mode='w') while True: time.sleep(0.35) # pid.Pv=adt7410.read_adt7410() pid.Pv=float(pt1000.calcTemp(0,1)) print("今回の温度==%s度,目标温度=90度"%pid.Pv) file_handle.write("%s | "%pid.Pv) pid.calc() print("pidCr.OUTの計算結果==%s"%pid.OUT) dc=pid.OUT/pid.pwmcycle*100 pwm.ChangeDutyCycle(dc) print("PWM信号のDutyCyle:%s"%dc) file_handle.write("%s ;\n"%dc) print("-----------------------------") pass file_handle.close() except Exception as e: raise
print("初始化完毕,创建PIinit对象pi,flag==%s" % pi.flag) # RPi.GPIO.output(pi.TempOUT1, True) # print("TempOUT1开始输出1") pid = pidCtr() print("创建pidCtr对象pid,flag==%s" % pid.flag) #设置pwm pwm = RPi.GPIO.PWM(pi.TempOUT1, 5) #pwm周期200ms pwm.start(1) file_handle = open('Templog.txt', mode='w') while True: time.sleep(0.5) # pid.Pv=adt7410.read_adt7410() pid.Pv = float( str( pt1000.calcTemp( (-0.0000005775), 0.0039083, (1 - pt1000.calcVoltaverage(4, 5) / 1000)))) print("今回の温度==%s度" % pid.Pv) file_handle.write("%s | " % pid.Pv) pid.calc() print("pidCr.OUTの計算結果==%s" % pid.OUT) dc = pid.OUT / pid.pwmcyle * 100 pwm.ChangeDutyCycle(dc) print("PWM信号のDutyCyle:%s" % dc) file_handle.write("%s ;\n" % dc) print("-----------------------------") pass file_handle.close() except Exception as e:
file_handle1 = open('60Templog.txt', mode='w') file_handle2 = open('70Templog.txt', mode='w') file_handle3 = open('90Templog.txt', mode='w') ads1248.init() RPi.GPIO.output(3, RPi.GPIO.HIGH) #conversation start while True: # time.sleep(0.05) pid60.Pv = float(pt1000.calcTemp(01)) pid60.calc() dc1 = pid60.OUT / pid60.pwmcycle * 100 pwm1.ChangeDutyCycle(dc1) pid70.Pv = float(pt1000.calcTemp(23)) pid70.calc() dc2 = pid70.OUT / pid70.pwmcycle * 100 pwm2.ChangeDutyCycle(dc2) thermocouple = max31855.sensor.readTempC() pid90.Pv = float(pt1000.calcTemp(45)) pid90.calc() dc3 = pid90.OUT / pid90.pwmcycle * 100 pwm3.ChangeDutyCycle(dc3) print("Pt1000で測温[01]==%s\n-----------------------------" % pid60.Pv) print("Pt1000で測温[23]==%s\n-----------------------------" % pid70.Pv) print("----------------------温度センサーで測温[热电偶]:" + str(thermocouple))
if __name__ == "__main__": try: pi = PIinit() print("初始化完毕,创建PIinit对象pi,flag==%s" % pi.flag) # RPi.GPIO.output(pi.TempOUT1, True) # print("TempOUT1开始输出1") pid = pidCtr() print("创建pidCtr对象pid,flag==%s" % pid.flag) #设置pwm pwm = RPi.GPIO.PWM(pi.TempOUT1, 5) #pwm周期200ms pwm.start(1) file_handle = open('70Templog.txt', mode='w') while True: time.sleep(0.5) # pid.Pv=adt7410.read_adt7410() pid.Pv = float(pt1000.calcTemp(2, 3)) # pt1000temp=float(pt1000.calcTemp(2,3)) # print("Pt1000で測温[2,3]==%s"%pt1000temp) print("Pt1000で測温[2,3]==%s" % pid.Pv) # pid.Pv=max31855.sensor.readTempC() sensortemp = max31855.sensor.readTempC() print("温度传感器测温(热电偶)==%s度" % sensortemp) # print("温度传感器测温(热电偶)==%s度"%pid.Pv) file_handle.write("%s | " % pid.Pv) file_handle.write("%s \n" % sensortemp) # file_handle.write("%s \n"%pt1000temp) pid.calc() print("pidCr.OUTの計算結果==%s" % pid.OUT) dc = pid.OUT / pid.pwmcycle * 100 pwm.ChangeDutyCycle(dc) print("PWM信号のDutyCyle:%s" % dc)