1537| 1
|
【临沂】第二课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 学完今天的内容,明显发觉代码变长了,变长的代码也能实现更复杂的命令。学习,向更高处迈进。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed