python怎么只运行一部分代码_python – 独立于其他命令每5分钟运行一部分代码

我想打开,保持打开状态6秒钟,每5分钟关闭一个继电器,其余代码正常运行.

例如:

GPIO.output(18, 1)

sleep(6)

GPIO.output(18, 0)

sleep(300)

但没有其他程序堆栈在此延迟.我的Python代码是:

import RPi.GPIO as GPIO

from time import sleep

GPIO.setmode(GPIO.BOARD)

GPIO.setup(13, GPIO.IN, GPIO.PUD_UP)

GPIO.setup(7,GPIO.OUT)

GPIO.setup(37, GPIO.OUT)

Hologram = '/home/pi/Hologram/Hologram.mp4'

from subprocess import Popen

firstTimeOpen=0

while True:

doorIsOpen = GPIO.input(13)

if doorIsOpen==0 and firstTimeOpen == 0:

firstTimeOpen=1

GPIO.output(7, 0)

GPIO.output(37, 0)

sleep(0.5)

if doorIsOpen==1 and firstTimeOpen == 1:

GPIO.output(7, 1)

GPIO.output(37, 1)

omxp = Popen(['omxplayer' ,Hologram])

sleep(87)

GPIO.output(7, 0)

GPIO.output(37, 0)

firstTimeOpen=0

sleep(0.5)

最佳答案 线程提供了一种方便的方法.我通常创建一个threading.Thread子类,其run方法是要在单独的线程中运行的代码.所以你会想要这样的东西:

class BackgroundRunner(threading.thread):

def run(self):

while True:

GPIO.output(18, 1)

sleep(6)

GPIO.output(18, 0)

sleep(300)

然后,在开始运行主代码之前,请使用

bg_runner = BackgroundRunner()

bg_runner.start()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值