Мне нужна помощь в Python, чтобы он вызывал что-то, когда значение высокое, а затем низкое - PullRequest
0 голосов
/ 30 января 2019

Есть одна часть моего кода, где он считывает входные данные от ультразвукового датчика, и, если расстояние небольшое, но затем высокое, это вызывает тревогу.

Вот моя первая попытка (к сожалению, она не сработала):

if result < '5':
        if result >= '10':
            GPIO.output(14, 1)

1 Ответ

0 голосов
/ 30 января 2019

Если я вас правильно понял, когда значение result в какой-то момент ниже значения 5, а через некоторое время становится выше 10, вы хотите, чтобы GPIO повысился?!

Я кратко обрисую пример, как это можно сделать.В этом примере вам нужно сохранить информацию о том, что значение было ниже 5 в другой переменной.Когда result был ниже 5 в любое время, значение flag_below будет 1.

Внутри цикла while вы также должны будете поместить показание датчика, который назначаетновое значение result.

flag_below=0
while True:
    if result < 5:
        flag_below=1
    if result >= 10 and flag_below==1:
        GPIO.output(14, 1)

Конечно, это только один раз установит высокий уровень GPIO и оставит его там.В зависимости от ваших потребностей вы также должны будете добавить код для сброса GPIO.

Кстати, как упомянуто в комментарии @Learning, это беспорядок, вам нужно сравнить result с числом, а не строкой.

...