我正在建造一个半自动照明系统,使用这个脚本打开它,即电机转动机械调光器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'脚本中时它不会运行。
所以现在我有点卡住了,想知道这是否是解决问题的正确方向。非常感谢任何帮助。
通过按遥控器上的按钮,即按下一个按钮=一个增量,触发增量脚本。