我使用一个单线传感器(ds18b20)读取温度,并将其用于PI算法来控制SSR继电器。我想在这两个函数之间使用一个管道来发送温度,并使te“Reg”函数尽可能快地运行。如果我不使用管道,Reg函数会等待温度函数(使用0.75秒),输出就会出错。。。 有谁能告诉我如何使用管道功能吗。??在
代码:
import time
import RPi.GPIO as GPIO
import os
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT)
def temperatur(self):
while True:
tfile = open("/sys/bus/w1/devices/28-00000433f810/w1_slave")
text = tfile.read()
tfile.close()
secondline = text.split("\n")[1]
temperaturedata = secondline.split(" ")[9]
temp2 = float(temperaturedata[2:])
self.temp = temp2 / 1000
print self.temp
def reg(self):
while True:
ek = self.ref - self.temp
P_del = self.Kp * ek
I_del = ((self.Kp * self.Syklustid) / self.Ti) * ek
Paadrag = P_del + I_del
if Paadrag > 100:
Paadrag = 100
if Paadrag < 0:
Paadrag = 0
print "Paadrag: ", Paadrag, " Temperatur: ", self.temp
duty = Paadrag / 100.0
on_time = self.Syklustid * (duty)
off_time = self.Syklustid * (1.0-duty)
print "On_time: ", on_time, " Off_time: ", off_time
GPIO.output(22, GPIO.HIGH)
time.sleep(on_time)
GPIO.output(22, GPIO.LOW)
time.sleep(off_time
if __name__ == '__main__':
这直接来自python文档: http://docs.python.org/2/library/multiprocessing.html
我用共享状态得到了更好的结果。尤其是对于像温度这样的简单数据(我假设是一个数字,不是一个复杂的自定义对象或其他任何东西),这里有一个很小的示例(同样,您可以在python文档中找到更多)
^{pr2}$相关问题 更多 >
编程相关推荐