之前介绍过RPI.GPIO 模块的脉宽调制(PWM)功能,并且实现了呼吸灯的效果。本文更进一步,加入了多个呼吸灯并且用不同的步调间歇发光。
电路连接
程序源码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python2.7 import RPi.GPIO as GPIO # always needed with RPi.GPIO from time import sleep # pull in the sleep function from time module GPIO.setmode(GPIO.BOARD) # choose BCM or BOARD numbering schemes. I use BCM GPIO.setup( 26 , GPIO.OUT) # set GPIO 25 as output for white led GPIO.setup( 24 , GPIO.OUT) # set GPIO 24 as output for red led white = GPIO.PWM( 26 , 100 ) # create object white for PWM on port 25 at 100 Hertz red = GPIO.PWM( 24 , 100 ) # create object red for PWM on port 24 at 100 Hertz white.start( 0 ) # start white led on 0 percent duty cycle (off) red.start( 100 ) # red fully on (100%) # now the fun starts, we'll vary the duty cycle to # dim/brighten the leds, so one is bright while the other is dim pause_time = 0.01 # you can change this to slow down/speed up try : while True : for i in range ( 0 , 101 ): # 101 because it stops when it finishes 100 white.ChangeDutyCycle(i) red.ChangeDutyCycle( 100 - i) sleep(pause_time) for i in range ( 100 , - 1 , - 1 ): # from 100 to zero in steps of -1 white.ChangeDutyCycle(i) red.ChangeDutyCycle( 100 - i) sleep(pause_time) except KeyboardInterrupt: white.stop() # stop the white PWM output red.stop() # stop the red PWM output GPIO.cleanup() # clean up GPIO on CTRL+C exit |
保存为 led.py 之后,运行
1 | sudo python led.py |
就能看到两个LED间歇性呼吸的效果了。
用你教程中的方法没有实现效果,看了其他的方式之后使接了3.3v 针脚 而不是接Gnd 针 ,到看到了效果