Python - 计数器重置例程

时间:2015-09-17 09:03:04

标签: python raspberry-pi

我正在建造一个半自动照明系统,使用这个脚本打开它,即电机转动机械调光器1.2秒 -

#!/usr/bin/env python
import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)

Motor1A = 16
Motor1B = 18
Motor1E = 22

GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)

GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)

sleep(1.2)

GPIO.output(Motor1E,GPIO.LOW)

GPIO.cleanup()

我还有另外两个脚本,以0.15秒的增量向上或向下淡化灯光。这是其中之一 -

#!/usr/bin/env python
import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BOARD)

Motor1A = 16
Motor1B = 18
Motor1E = 22

GPIO.setup(Motor1A,GPIO.OUT)
GPIO.setup(Motor1B,GPIO.OUT)
GPIO.setup(Motor1E,GPIO.OUT)

GPIO.output(Motor1A,GPIO.LOW)
GPIO.output(Motor1B,GPIO.HIGH)
GPIO.output(Motor1E,GPIO.HIGH)

sleep(0.15)

GPIO.output(Motor1E,GPIO.LOW)

GPIO.cleanup()

假设在关闭之前灯光向上或向下褪色,我需要一种方法来确定特定时刻的灯光设置,即如果灯光已经褪色两档,那么脚本需要反转电机0.9秒返回'零'。

为了解决这个问题,我开始研究计数器的想法,如果每个0.15秒增量代表整数'1',那么从数字8开始,即8 x 0.15 = 1.2(系统最初开启时)我应该能够在任何时候找出我在哪里。

为了实现这一点,我尝试了这个脚本 -

#!/usr/bin/env python
from __future__ import with_statement
with open('num.txt','r+') as f:
    counter = str(int(f.read().strip())+1)
    f.seek(0)
    f.write(counter)

从命令行可以正常工作,但是当我将它放在上面的'increment'脚本中时它不会运行。

所以现在我有点卡住了,想知道这是否是解决问题的正确方向。非常感谢任何帮助。

通过按遥控器上的按钮,即按下一个按钮=一个增量,触发增量脚本。

0 个答案:

没有答案