在while循环中只运行一次,而不会中断循环

chachi420
import RPi.GPIO as g
import time
g.setmode(g.BOARD)
g.setup(33, g.OUT)



while True:
  tempfile = open("/sys/devices/w1_bus_master1/28-00152c2631ee/w1_slave")
  thetext = tempfile.read()
  tempfile.close()
  tempdata = thetext.split("\n") [1].split(" ")[9]
  temperature = float(tempdata[2:])
  finaltemp = temperature / 1000
  time.sleep(1)

  if finaltemp > 22:
    g.output(33,g.LOW)
    time.sleep(0.3)
    g.output(33,g.HIGH)
  else:
    g.output(33,g.LOW)
    time.sleep(0.3)
    g.output(33,g.HIGH)

我搜索了许多站点,包括这一站点,但从未找到我的解决方案。

如您所见,该代码当前从系统文件中获取温度并将温度存储在变量“ finaltemp”中。
我进行硬件设置的方式是将继电器开关连接到AC遥控器上的按钮,这就是为什么我将GPIO设置为非常快(0.3秒)打开和关闭以模拟按下按钮的原因。遥控器上的按钮。

我的目标是在温度根据条件变化时仅“闪烁”(按一下按钮)GPIO一次(!)。

例如

室内温度为20,此时交流电源已关闭。因此,温度正在缓慢上升,当温度超过22时,我想运行3行代码来运行。但是,发生的事情是每次都会对其进行检查。由于条件在每次while循环重新开始时都满足,因此它会不断地重复运行代码,因此本质上发生的是我的AC不断地打开和关闭以及打开和关闭。

副总裁

您需要同时添加状态滞后

开启/关闭逻辑的伪代码:

LIMIT_LOW = 21.5
LIMIT_HIGH = 22.5
AC_running = False  # False or True, you need to know exactly
while True:
  temp = ....
  if temp < LIMIT_LOW and AC_running:
      # turn AC off
      AC_running = False
  elif temp > LIMIT_HIGH and not AC_running:
      # turn AC on
      AC_running = True
  sleep(...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python只运行一次while循环

来自分类Dev

嵌套 while 循环只运行一次

来自分类Dev

在FOR循环中仅运行一次IF

来自分类Dev

Java while循环不会中断

来自分类Dev

fgets()while循环不会中断

来自分类Dev

Python while 循环不会中断

来自分类Dev

如何在 while 循环中打印一次但仍然运行 while 循环?

来自分类Dev

我的 Tkinter 按钮命令只在循环中运行一次

来自分类Dev

PHP IF语句在While循环中只返回一次真值

来自分类Dev

在while循环中使用grep会中断循环

来自分类Dev

在while循环中使用grep会中断循环

来自分类Dev

在 for 循环中只迭代一次参数(Python)

来自分类Dev

为什么 setTimeout 只在循环中打印一次?

来自分类Dev

使用python只更新队列中第一次出现的对象而不会中断

来自分类Dev

while循环仅运行一次?

来自分类Dev

while循环是否有变体,它将只运行一次该子句直到发生更改?

来自分类Dev

(OpenCV) 为什么我的 while 循环在重新缩放图像时只运行一次?

来自分类Dev

Foreach 循环只循环一次

来自分类Dev

def 函数在每个 (while) 循环中重复两次,即使我每次只调用它们一次

来自分类Dev

虽然循环不会中断?

来自分类Dev

为什么我的循环只运行一次?

来自分类Dev

为什么我的循环只运行一次?

来自分类Dev

为什么我的 for 循环似乎只运行一次?

来自分类Dev

运行 list 的 java for 循环只执行一次

来自分类Dev

满足条件后,在while循环中再运行一次

来自分类Dev

java中中断的方法,在while循环中使用时会不会中断线程?

来自分类Dev

IE-Automation:只调试循环的第一个实例正确完成,但循环不会中断

来自分类Dev

一次执行后中断while循环?红宝石

来自分类Dev

每3个迭代中断一次while循环

Related 相关文章

  1. 1

    Python只运行一次while循环

  2. 2

    嵌套 while 循环只运行一次

  3. 3

    在FOR循环中仅运行一次IF

  4. 4

    Java while循环不会中断

  5. 5

    fgets()while循环不会中断

  6. 6

    Python while 循环不会中断

  7. 7

    如何在 while 循环中打印一次但仍然运行 while 循环?

  8. 8

    我的 Tkinter 按钮命令只在循环中运行一次

  9. 9

    PHP IF语句在While循环中只返回一次真值

  10. 10

    在while循环中使用grep会中断循环

  11. 11

    在while循环中使用grep会中断循环

  12. 12

    在 for 循环中只迭代一次参数(Python)

  13. 13

    为什么 setTimeout 只在循环中打印一次?

  14. 14

    使用python只更新队列中第一次出现的对象而不会中断

  15. 15

    while循环仅运行一次?

  16. 16

    while循环是否有变体,它将只运行一次该子句直到发生更改?

  17. 17

    (OpenCV) 为什么我的 while 循环在重新缩放图像时只运行一次?

  18. 18

    Foreach 循环只循环一次

  19. 19

    def 函数在每个 (while) 循环中重复两次,即使我每次只调用它们一次

  20. 20

    虽然循环不会中断?

  21. 21

    为什么我的循环只运行一次?

  22. 22

    为什么我的循环只运行一次?

  23. 23

    为什么我的 for 循环似乎只运行一次?

  24. 24

    运行 list 的 java for 循环只执行一次

  25. 25

    满足条件后,在while循环中再运行一次

  26. 26

    java中中断的方法,在while循环中使用时会不会中断线程?

  27. 27

    IE-Automation:只调试循环的第一个实例正确完成,但循环不会中断

  28. 28

    一次执行后中断while循环?红宝石

  29. 29

    每3个迭代中断一次while循环

热门标签

归档