“(SKU:RB-02S003)Mini红外避障传感器”的版本间的差异

来自ALSROBOT WiKi
跳转至: 导航搜索
程序效果
产品相关推荐
第174行: 第174行:
 
   }</pre>
 
   }</pre>
 
==产品相关推荐==
 
==产品相关推荐==
 +
→购买地址  Mini红外寻线传感器http://www.alsrobot.cn/goods-41.html

2015年5月9日 (六) 13:47的版本


Mini红外避障传感器01.jpg

目录

概述

Mini IR Dectector是机器人基地专为轮式机器人设计的一款距离可调式避障传感器。此传感器对环境光线适应能力强、精度高,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,此时指示灯亮起,经过电路处理后,信号输出接口输出数字信号,可通过电位器旋钮调节检测距离,有效距离3~35cm,工作电压为3.3V-5V,由于工作电压范围宽泛,在电源电压波动比较大的情况下仍能稳定工作,适合多种单片机、Arduino控制器、BS2控制器使用,安装到机器人上即可感测周围环境的变化。

规格参数

1. 工作电压:DC 3.3V~5V
2. 工作电流:≥20mA
2. 工作温度:-10℃ ~ +50℃
4. 检测距离:3~35cm
5. IO接口:4线制接口(-/+/S/EN)
6. 输出信号:TTL电平(有障碍物低电平,无障碍物高电平)
7. 调节方式:多圈电阻式调节
8. 有效角度:35°
9. 模块尺寸:28mm×23mm
10.模块重量:9g

使用方法及例子程序

引脚示意图

Mini红外避障传感器02.jpg

1、传感器的接口:共4个,电路板标号分别为EN、S、+、-。分别是传感器使能端口、检测信号输出端口、Vcc、GND。
EN(传感器使能):置高,传感器不工作;置低,传感器工作。
S(反射信号输出):当EN置低的情况下,如果没有检测到物体,则S端口保持高电平;若检测到物体,则S端口置低。
+:接外部供电的Vcc。
-:接外部供电的GND。
2、使能跳线帽:当用户想让传感器一直处于工作状态,换句话说用户不需要自行控制传感器是否工作,这时可以将跳线帽插在排针上,EN脚可以不接任何线。当用户想自己控制传感器是否工作,则要去掉跳线帽,将EN端口接到用户自己的控制器端口上。
3、调节距离电位器:用于调整传感器探测的距离。当用户需要调整探测距离时,用螺丝刀调整电位器阻值,按箭头方向旋转是将探测距离减小,相反方向旋转探测距离增大。
4、频率调节电位器:用于产生38KHz频率的方波。正常情况下,在出厂前将阻值调好,无需用户调节。但由于外界环境的不同或振动,出现了接收不到反射信号的情况,这时用户可以对电位器2进行微调,直到有障碍物时能收到信号,指示灯点亮即可。

使用方法

步骤一:接线。
连接前首先根据需要确定是否需要控制传感器的使能端口。如果不选择控制使能端口,则将跳线帽插在双排针上,这时只需用排线连接S、+、-三个端口,注意正负极电源不要接反。如果选择控制传感器使能,则要拔下跳线帽,放到可以找到的地方,这时需用排线连接EN、S、+、- 四个端口。EN和S端口一般连接到控制器的I/O口。+、- 接到电源的Vcc和GND。
步骤二:固定。
根据需要通过直径3mm的连接件(铜柱、螺钉、螺栓等)进行固定。传感器的安装高度和反射物的颜色决定了能否得到可靠的信号。如果传感器安装较低,可以将红外发射管抬高些,或者加小型的定向管(如热缩管)套到红外发射管上。为了避免免误触发,不要将传感器安装在机器人的运动机构上,特殊需求除外。
步骤三:编程。
根据端口状态真值表,进行编程应用。

Mini红外避障传感器03.jpg

示例程序

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); 
  }
}

程序效果

  1. 模块按引脚定义图接好探头模块,切勿接错;
  2. 此时指示灯灭,相应输出端(S)输出TTL低电平;
  3. 将避障模块的红外探头对准墙壁或其他障碍物,距离为2-40厘米左右,此时指示灯亮,相应输出端(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