【临沂】第二课Python编程——红外传感控灯
这节课本来要起名为“手势控灯”,但老觉得会引起其他人的误会,好像会以为手指结印LED灯会有不同的变化,其实这节课是在第一节课的基础上加了红外避障传感器,当传感器检测到前方有无障碍物时控制小灯的亮灭。这节课有如下几个程序代码(纯粹手打,内容可能有些错误)程序一:测试红外传感器,输出信号的“0”和“1”哪个是表示前方有障碍物。
import RPi.GPIO as gpio
import time
Dk = 24
gpio.setwarnings(False)
gpio.setmode(gpio.BCM)
gpio.setup(Dk, gpio.IN)
while True:
if gpio.input(Dk) == 0:
print('Dk=0')
else:
print('Dk=1')
time.sleep(0.5)
通过测试我们发现,当前方有障碍是输出的是“0”.
程序二:有障碍物灯亮,否则灯不亮。
import RPi.GPIO as pi
import time
Dk = 24
led =5
pi.setwarnings(Flase)
pi.setmode(pi.BCM)
pi.setup(Dk,pi.IN)
pi.setup(led,Pi.OUT)
while True:
if pi.input(Dk) == 0:
pi.output(led,pi.HIGH)
else:
pi.output(led,pi.LOW)
time.sleep(0.2)
程序三:红外控制LED往返流水灯。
import RPi.GPIO as pi
import time
led = 0
Dk = 24
leds = 5, 6, 12, 16, 12, 6
pi.setwarnings(False)
pi.setmode(pi.BCM)
pi.setup(Dk, pi.IN)
pi.setup(leds, pi.OUT)
while True:
if pi.input(Dk) == 0:
time.sleep(0.3)
led = (led + 1) % 2
if led == 1:
for i in range(6):
pi.output(leds, pi.HIGH)
time.sleep(0.2)
pi.output(pn, pi.LOW)
if pi.input(Dk) == 0:
break
学完今天的内容,明显发觉代码变长了,变长的代码也能实现更复杂的命令。学习,向更高处迈进。
非常好,学习了Python还学了树莓派
页:
[1]