(SKU:RB-02S003)Mini红外避障传感器
目录 |
概述
Mini IR Dectector是机器人基地专为轮式机器人设计的一款距离可调式避障传感器。此传感器对环境光线适应能力强、精度高,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,此时指示灯亮起,经过电路处理后,信号输出接口输出数字信号,可通过电位器旋钮调节检测距离,有效距离3~35cm,工作电压为3.3V-5V,由于工作电压范围宽泛,在电源电压波动比较大的情况下仍能稳定工作,适合多种单片机、Arduino控制器、BS2控制器使用,安装到机器人上即可感测周围环境的变化。
规格参数
1. 工作电压:DC 3.3V~5V
2. 工作电流:≥20mA
2. 工作温度:-10℃ ~ +50℃
4. 检测距离:2~40cm
5. IO接口:4线制接口(-/+/S/EN)
6. 输出信号:TTL电平(有障碍物低电平,无障碍物高电平)
7. 调节方式:多圈电阻式调节
8. 有效角度:35°
9. 模块尺寸:28mm×23mm
10.模块重量:9g
使用方法及例子程序
引脚示意图
- EN(传感器使能):置高,传感器不工作;置低,传感器工作。
- S(反射信号输出):当EN置低的情况下,如果没有检测到物体,则S端口保持高电平;若检测到物体,则S端口置低。
- +:接外部供电的Vcc。
- -:接外部供电的GND。
- 传感器的接口:共4个,电路板标号分别为EN、S、+、-。分别是传感器使能端口、检测信号输出端口、Vcc、GND。
- 使能跳线帽:当用户想让传感器一直处于工作状态,换句话说用户不需要自行控制传感器是否工作,这时可以将跳线帽插在排针上,EN脚可以不接任何线。当用户想自己控制传感器是否工作,则要去掉跳线帽,将EN端口接到用户自己的控制器端口上。
- 调节距离电位器用于调整传感器探测的距离,当用户需要调整探测距离时,用螺丝刀调整电位器,按箭头方向旋转(顺时针方向)是将探测距离减小,相反方向旋转探测距离增大。
- 频率调节电位器:用于产生38KHz频率的方波。正常情况下,在出厂前将阻值调好,无需用户调节。但由于外界环境的不同或振动,出现了接收不到反射信号的情况,这时用户可以对电位器2进行微调,直到有障碍物时能收到信号,指示灯(LED)点亮即可。
使用方法
实验接线图
步骤一:接线。
连接前首先根据需要确定是否需要控制传感器的使能端口。如果不选择控制使能端口,则将跳线帽插在双排针上,这时只需用排线连接S、+、-三个端口,注意正负极电源不要接反。如果选择控制传感器使能,则要拔下跳线帽,放到可以找到的地方,这时需用排线连接EN、S、+、- 四个端口。EN和S端口一般连接到控制器的I/O口。+、- 接到电源的Vcc和GND。
步骤二:固定。
根据需要通过直径3mm的连接件(铜柱、螺钉、螺栓等)进行固定。传感器的安装高度和反射物的颜色决定了能否得到可靠的信号。如果传感器安装较低,可以将红外发射管抬高些,或者加小型的定向管(如热缩管)套到红外发射管上。为了避免免误触发,不要将传感器安装在机器人的运动机构上,特殊需求除外。
步骤三:编程。
根据端口状态真值表,进行编程应用。
示例程序
int bizhangPin = 2; int ledPin = 13; int buttonState = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(bizhangPin, INPUT); } void loop(){ buttonState = digitalRead(bizhangPin); if (buttonState == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } }
程序效果
- 模块按引脚定义图接好探头模块,切勿接错;
- 此时指示灯灭,相应输出端(S)输出TTL低电平;
- 将避障模块的红外探头对准墙壁或其他障碍物,距离为2~40cm厘米左右,此时指示灯亮,相应输出端(S)输出TTL高电平;
应用例程
Mini红外避障传感器模块的测试
我们使用Arduino控制器和2WD小车来做这个测试,要用到硬件设备如下:
1、Arduino控制器×1
2、Arduino 传感器扩展板×1
3、Mini红外避障传感器模块×3
4、2WD小车×1
5、传感器支架×1
6、通用3P传感器连接线×3
7、杜邦线若干
8、USB数据通信线×1
通过配合调节调频和调距两个电位计,调到适合我们的检测距离。有障碍物位低电平,无障碍物位高电平。使能跳线帽插上就是一直让传感器工作,拔下则可以通过控制使能端让传感器是否工作。下面的实验代码是我们引用Arduino爱好者的一篇博文,(http://blog.sina.com.cn/s/blog_5e4725590100i20b.html)这是实验代码的博文地址。
Arduino实验代码如下:
int pinI1=8;//定义I1接口 int pinI2=9;//定义I2接口 int speedpin=11;//定义EA(PWM调速)接口 int pinI3=6;//定义I3接口 int pinI4=7;//定义I4接口 int speedpin1=10;//定义EB(PWM调速)接口 int IRR=3;//定义右侧避障传感器接口 int IRM=4;//定义中间避障传感器接口 int IRL=5;//定义左侧避障传感器接口 void setup() { pinMode(pinI1,OUTPUT); pinMode(pinI2,OUTPUT); pinMode(speedpin,OUTPUT); pinMode(pinI3,OUTPUT); pinMode(pinI4,OUTPUT); pinMode(speedpin1,OUTPUT); pinMode(IRR,INPUT); pinMode(IRM,INPUT); pinMode(IRL,INPUT); } void advance(int a)//前进 { analogWrite(speedpin,a);//输入模拟值进行设定速度 analogWrite(speedpin1,a); digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转 digitalWrite(pinI3,HIGH); digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转 digitalWrite(pinI2,HIGH); } void right(int b)//右转 { analogWrite(speedpin,b);//输入模拟值进行设定速度 analogWrite(speedpin1,b); digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转 digitalWrite(pinI3,LOW); digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转 digitalWrite(pinI2,HIGH); } void left(int c)//左转 { analogWrite(speedpin,c);//输入模拟值进行设定速度 analogWrite(speedpin1,c); digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转 digitalWrite(pinI3,HIGH); digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转 digitalWrite(pinI2,LOW); } void stop()//停止 { digitalWrite(pinI4,HIGH);//使直流电机(右)制动 digitalWrite(pinI3,HIGH); digitalWrite(pinI1,HIGH);//使直流电机(左)制动 digitalWrite(pinI2,HIGH); } void back(int d)//后退 { analogWrite(speedpin,d);//输入模拟值进行设定速度 analogWrite(speedpin1,d); digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转 digitalWrite(pinI3,LOW); digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转 digitalWrite(pinI2,LOW); } void loop() { int r,m,l; r=digitalRead(IRR); m=digitalRead(IRM); l=digitalRead(IRL); if(l==HIGH &&m==HIGH && r==HIGH) advance(120); if(l==LOW &&m==LOW && r==LOW ) { back(120); delay(300); right(100); delay(100); } if(l==LOW &&m==HIGH && r==LOW ) { back(120); delay(300); right(100); delay(100); } if(l==HIGH &&m==LOW && r == HIGH ) { back(120); delay(300); right(100); delay(100); } if(l==LOW && m==LOW && r ==HIGH ) right(100); if(l==LOW && m==HIGH && r ==HIGH) right(80); if(l==HIGH && m==LOW && r == LOW ) left(100); if(l==HIGH && m==HIGH && r==LOW ) left(80); }
产品相关推荐
[→购买地址 Mini红外避障传感器 http://www.alsrobot.cn/goods-41.html]