首页
学习
活动
专区
圈层
工具
发布
30 篇文章
1
树莓派基础实验1:双色LED灯实验
2
树莓派基础实验2:RGB-LED实验
3
树莓派基础实验3:七彩LED灯闪烁实验
4
树莓派基础实验4:继电器实验
5
树莓派基础实验5:激光传感器实验
6
树莓派基础实验6:轻触开关按键实验
7
树莓派基础实验7:倾斜开关实验
8
树莓派基础实验8:振动开关实验
9
树莓派基础实验9:蜂鸣器实验
10
树莓派基础实验10:干簧管传感器实验
11
树莓派基础实验11:U型光电传感器实验
12
树莓派基础实验12:PCF8591模数转换器实验
13
树莓派基础实验13:雨滴探测传感器实验
14
树莓派基础实验14:PS2操纵杆实验
15
树莓派基础实验15:电位器传感器实验
16
树莓派基础实验16:霍尔传感器实验
17
树莓派基础实验17:温度传感器实验
18
树莓派基础实验18:声音传感器实验
19
树莓派基础实验19:光敏传感器实验
20
树莓派基础实验20:火焰报警传感器实验
21
树莓派基础实验21:烟雾报警传感器实验
22
树莓派基础实验22:红外遥控传感器实验
23
树莓派基础实验23:触摸开关传感器实验
24
树莓派基础实验24:超声波测距传感器实验
25
树莓派基础实验25:DS18B20温度传感器实验
26
树莓派基础实验26:旋转编码器实验
27
树莓派基础实验27:温湿度传感器DHT11 实验
28
树莓派基础实验28:红外避障传感器实验
29
树莓派基础实验29:I2C LCD1602实验
30
树莓派基础实验30:BMP180气压传感器实验

树莓派基础实验28:红外避障传感器实验

一、介绍

   IR障碍物传感器根据红外反射原理来检测障碍物,当没有物体时,红外接收器不接受信号;当前方有物体阻挡并反射红外光时,红外接收器将接收信号。


二、组件

★Raspberry Pi主板*1

★树莓派电源*1

★40P软排线*1

★红外避障传感器模块*1

★面包板*1

★跳线若干

三、实验原理

红外避障传感器

红外避障模块原理图

   红外测距都是采用三角测距的原理。红外发射器按照一定角度发射红外光束,遇到物体之后,光会反向回来,检测到反射光之后,通过结构上的几何三角关系,就可以计算出物体距离D。

   当物体距离D很大时,L值就会很小,测量精度会变差。因此,常见的红外传感器 测量距离都比较近,小于超声波,同时远距离测量也有最小距离的限制。另外,对于透明的或者近似黑体的物体,红外传感器是无法检测距离的。

   该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。

  该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。

四、实验步骤

第1步:连接电路。

树莓派

T型转接板

红外避障传感器

GPIO0

G17

OUT(SIG)

5V

5V

VCC

GND

GND

GND

红外避障传感器电路图

红外避障传感器实验接线图

第2步:编写控制程序。当红外避障传感器检测到障碍物,输出低电平,打印"Detected Barrier!";当没有障碍物时输出高电平,打印“Nothing!”。

代码语言:javascript
复制
#!/usr/bin/env python
import RPi.GPIO as GPIO

ObstaclePin = 11

def setup():
    GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
    GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

def loop():
    while True:
        if (0 == GPIO.input(ObstaclePin)):  #当检测到障碍物时,输出低电平信号
            print "Detected Barrier!"   
        else :
            print "****Nothing!******"
            

def destroy():
    GPIO.cleanup()                     # Release resource

if __name__ == '__main__':     # Program start from here
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.
        destroy()
下一篇
举报
领券