四路红外避障传感器实验

四路红外避障传感器实验

    最近入手了一个一拖四的红外避障传感器,想用于小车的障碍物检测;以前曾写过单个的红外避障传感器的使用实验,今天来测试一下四路红外避障传感器如何使用。同时这篇文章还会使用边沿检测方法,检测传感器的状态改变事件。
#接线示例
#边沿检测部分可以参考:边沿检测函数

#实验代码:


#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.suhmeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

pinOne = 22
pinTwo = 23
pinThree = 24
pinFour = 25

GPIO.setmode(GPIO.BCM)   ##此处采用的BCM编码 因为T型扩展板也是BCM编码 方便统一
GPIO.setup(pinOne, GPIO.IN, pull_up_down=GPIO.PUD_UP) ##设置检测引脚我输入状态 并初始化为高电平
GPIO.setup(pinTwo, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(pinThree, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(pinFour, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#注册一个检测电压下降事件 检测间隔时间600毫秒(防抖时间)
GPIO.add_event_detect(pinOne, GPIO.FALLING, bouncetime=600)
GPIO.add_event_detect(pinTwo, GPIO.FALLING, bouncetime=600)
GPIO.add_event_detect(pinThree, GPIO.FALLING, bouncetime=600)
GPIO.add_event_detect(pinFour, GPIO.FALLING, bouncetime=600)

try:
    while True:
        #事件检测
        if (GPIO.event_detected(pinOne)):
            print("右边发现有人!")

        if (GPIO.event_detected(pinTwo)):
            print("上边发现有人!")

        if (GPIO.event_detected(pinThree)):
            print("左边发现有人!")

        if (GPIO.event_detected(pinFour)):
            print("下边发现有人!")

except KeyboardInterrupt:
        pass

GPIO.cleanup()
#试验效果:
1、保存代码为jiujiang.py;
2、执行代码,如果没有触发事件则屏幕无信息打印;
3、当物体或者用手遮挡任一方向的传感器;
4、可见屏幕打印出这个方向的信息,如果发现打印多次,则是因为停留时间大于间隔检测时间,可以按需调试间隔时间;
实验效果

jiujiang

评论已关闭。