需要提供一个菜单供用户选择,如书的第 174 页的 Listing 5-3 例题所做的那样。
使用 setup 命令,能够设置 delay_on 时间和 delay_off 时间
delay_on time表示LED亮度持续高的时间,而 delay_off time表示LED亮度持续低的时间
hw4_1.py
#!/usr/bin/python3
import sys
from time import sleep
import RPi.GPIO as GPIO
LedPin = 4
GPIO.setwarnings(False) # 过滤掉警告信息
GPIO.setmode(GPIO.BCM) # 使用BCM编码方式
GPIO.setup(LedPin, GPIO.OUT)
print("Controlling the brightness level of GPIO LED4 Python script")
if len(sys.argv) != 2 and len(sys.argv) != 3:
print("There is an incorrect number of arguments")
print(" usage is: hw4_1.py setup or hw4_1.py dlay_on/delay_off duration ")
print(" the data type of 'duration' is number")
sys.exit(2)
if len(sys.argv) == 2:
if sys.argv[1] == "setup":
print("Setting up the LED GPIO...")
GPIO.setup(LedPin, GPIO.OUT) # 将该引脚设置为输出模式
sleep(0.1)
else:
print("Invalid Command!")
if len(sys.argv) == 3:
duration = float(sys.argv[2])
pwm = GPIO.PWM(LedPin, 100) # 创建PWM对象,并指定初始频率为100
pwm.start(0) # 启动PWM, 并指定初始占空比为0
if sys.argv[1] == "delay_on":
print("Setting the delay_on time...")
pwm.ChangeDutyCycle(100)
sleep(duration)
elif sys.argv[1] == "delay_off":
print("Setting the delay_off time...")
pwm.ChangeDutyCycle(0)
sleep(duration)
else:
print("Invalid Command!")
print("End of Python script")
测试
python3 hw4_1.py setup
python3 hw4_1.py delay_on 5
python3 hw4_1.py delay_off 3