1537浏览
查看: 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

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

DFrJ5KYVQaH  中级技匠

发表于 2020-4-24 17:49:45

非常好,学习了Python还学了树莓派
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail