Нужна помощь в установке верхней и нижней переменных с дельтой - PullRequest
0 голосов
/ 07 февраля 2019

Это должно быть очень легко, но я просто не могу обдумать это.Мне нужно установить переменную с достигнутым верхним или нижним пределом, но я хочу добавить дельту перед установкой переменной.

Я строю контроллер аквариума с Raspberry Pi и пишу код на python.Именно эту функцию я хочу включить нагревателем на 76,0 градусов и выключить его на 78 градусов.

Тем не менее, я не хочу, чтобы нагреватель включался / выключался на определенных границах, поэтому, как только я включу нагреватель, я хочу, чтобы он нагревался до 78, но не включался снова, пока не достигнет нижнего предела..

И наоборот, когда достигается нижний предел, я хочу, чтобы он нагрелся до верхнего предела.

Основная цель - не допустить отскока булавки gpio на границе верхнего и нижнего пределов.

Выводы gpio в коде управляют реле для включения / выключения нагревателя.

Heat On = 1 ....-------------------> 78 градусов

Обогрев = 0 ................ 76 градусов <------------------ </p>

def heater(SW_TEMP):
    if SW_TEMP < 76.0:
            heatON = 1
            print "heatON = ", heatON
            GPIO.output(HTR_Ch2, GPIO.LOW)

    elif (SW_TEMP > 78.00):
            heatON = 0
            print "heatON = ", heatON
            GPIO.output(HTR_Ch2, GPIO.HIGH)

    else:
            GPIO.output(HTR_Ch2, GPIO.HIGH)
            heatON = 0
            print "heatON = ", heatON

Это базовая функция, которая работает, однако она все равно будет отскакивать в пределах пределов, когда температура колеблется в пределах.

Любые идеи приветствуются.

1 Ответ

0 голосов
/ 07 февраля 2019

Вам необходимо учитывать текущее состояние heatON, например:

def heater(SW_TEMP):
    if SW_TEMP < 76.0 and not heatON:
            heatON = 1
            print "heatON = ", heatON
            GPIO.output(HTR_Ch2, GPIO.LOW)

    elif SW_TEMP > 78.00 and heatON:
            heatON = 0
            print "heatON = ", heatON
            GPIO.output(HTR_Ch2, GPIO.HIGH)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...