Я только что взял свой первый малиновый Pi и 2-канальное реле. Я пытаюсь научиться программировать на Python, поэтому я решил, что Pi для игры будет хорошей отправной точкой. У меня вопрос относительно времени моих реле через контакты GPIO.Raspberry Pi: Python try/except loop
Во-первых, я использую Raspbian Pixel и редактирую свои сценарии через Gedit. Пожалуйста, смотрите ниже для сценария у меня до сих пор:
# !/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
# init list with pin numbers
pinList = [14]
# loop through pins and set mode and state to 'high'
for i in pinList:
GPIO.setup(i, GPIO.OUT)
GPIO.output(i, GPIO.HIGH)
# time to sleep between operations in the main loop
SleepTimeL = 60 #1 minute
# main loop
try:
GPIO.output(14, GPIO.LOW)
print "open"
time.sleep(SleepTimeL);
GPIO.cleanup()
#Reset GPIO settings
GPIO.cleanup()
# end program cleanly
except KeyboardInterrupt:
print "done"
Теперь, работает довольно хорошо, она открывает реле, прикрепленные к контакту 14 без проблем. Он запрограммирован на 60 секунд, а затем завершает программу. Как только программа закончится, настройки GPIO будут сброшены, и реле закроется, но это конец программы, и именно там начинается моя проблема.
То, что я хочу, чтобы этот скрипт выполнял, - это открыть реле на 60 секунд, а затем закрыть его на 180 секунд. Как только он достигнет 180 секунд, он должен повторно запустить инструкцию «try» и открыть реле еще на 60 секунд и так далее. Короче говоря, мне нужен бесконечный цикл, который может быть прерван только путем отмены запуска скрипта. Я не уверен, как сказать Python закрыть реле в течение 180 секунд, а затем повторно запустить оператор try или как сделать его бесконечным циклом.
Я очень благодарен за вклад сообщества. Любая обратная связь или помощь приветствуются. Спасибо всем.
Пожалуйста, отредактируйте ваше сообщение, чтобы исправить ваш отступ. –
Просто используйте 'while True:' loop – reptilicus
Hi Robᵩ, я отредактировал его в соответствии с запросом. – Safjoe