【临沂】第二课Python编程——红外传感控灯

2020-04-242253
AI 快速预览详细 收起
本节课介绍了如何使用Raspberry Pi和红外避障传感器进行Python编程,实现红外传感控灯。首先通过测试红外传感器输出信号,确定哪个信号表示前方有障碍物。然后编写程序,实现有障碍物时灯亮,否则灯不亮。最后,通过编写更复杂的代码,实现红外控制LED往返流水灯的效果。适合初学者和STEM教育场景。
这节课本来要起名为“手势控灯”,但老觉得会引起其他人的误会,好像会以为手指结印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

学完今天的内容,明显发觉代码变长了,变长的代码也能实现更复杂的命令。学习,向更高处迈进。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
DFrJ5KYVQaH
DFrJ5KYVQaH
非常好,学习了Python还学了树莓派
- 没有更多了 -