【雕爷学编程】Arduino动手做(139)---E18-D80避障传感器模块

发布时间 2023-06-29 21:15:07作者: 行者花雕

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

 

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百三十九:E18-D80NK 红外避障传感器模块 接近开关 智能小车 3-80cm

 

 

知识点:红外对管

是红外线发射管与光敏接收管,或者红外线接收管,或者红外线接收头配合在一起使用时候的总称。在光谱中波长大于0.76微米的一段称为红外线。在光谱中波长大于0.76微米的一段称为红外线,红外线是不可见光线。所有高于绝对零度(-273.15℃)的物质都可以产生红外线。现代物理学称之为热射线。医用红外线可分为两类:近红外线与远红外线。红外线发射管在LED封装行业中主要有三个常用的波段,如下850NM、875NM、940NM。根据波长的特性运用的产品也有很大的差异,850NM波长的主要用于红外线监控设备,875NM主要用于医疗设备,940NM波段的主要用于红外线控制设备。EG:红外线遥控器、光电开关、光电计数设备等。

 

红外发射管
红外发射管是由红外发光二极管矩组成发光体,用红外辐射效率高的材料(常用砷化镓)制成PN结,正向偏压向PN结注入电流激发红外光,其光谱功率分布为中心波长830~950nm。LED是英文Light Emitting Diode的简称,表现是正温度系数,电流越大温度越高,温度越高电流越大,LED红外灯的功率和电流大小有关,但正向电流超过最大额定值时,红外灯发射功率反而下降。

光敏接收管
它是一个具有光敏特征的PN结,属于光敏二极管,具有单向导电性,因此工作时需加上反向电压。无光照时,有很小的饱和反向漏电流(暗电流)。此时光敏管不导通。当光照时,饱和反向漏电流马上增加,形成光电流,在一定的范围内它随入射光强度的变化而增大。

红外线接收管
功能与光敏接收管相似只是不受可见光的干扰,感光面积大,灵敏度高,属于光敏二极管,一般只对红外线有反应。

 

E18-D80NK
是一种集发射与接收于一体的数字式光电传感器。主要用于障碍物的检测。发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题(由于红外光的特性,不同颜色的物体,能探测的最大距离也有不同;白色物体最远,黑色物体最近)。对障碍物的感应距离可以根据要求通过后部的旋钮进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多智能自动化场合。

 

 

 

电气特性
棕色:VCC;蓝色:GND;黑色:OUT。
工作电压:5VDC
工作电流:10-15mA
驱动电流:100mA
感应距离:3-80CM
Sensing range: 3-80cm
Sensing object: Translucency, opaque
Supply voltage: DC5V
Output operation: Normally open(O)
Output: DC three-wire system(NPN)

机械特性:
颜色:橙黄色
直径:18MM
长度:45MM
引线长度:18CM
Diameter: 18mm, Length: 45mm
Appearance: Threaded cylindrical
Material: Plastic
Guard mode: Reverse polarity protection
Ambient temperature: -25-70℃

 

E18-D80NK 工作原理
当发射器发出的红外线被被测物表面阻挡后,红外光会发生反射,反射光被光电管接收后进行解调,解调后的信号输入至Arduino等开发板就可进行物体检测了。E18-D80NK集成了可调电位器,可通过调节电位器调整测量增益。E18-D80NK 区别于KS-103和HR04 ,它通常不用于距离测试,更多用于碰撞检测。因此E18-D810NK可运用在机器人,可穿戴设备,汽车等领域。

E18-D80避障传感器模块技术参数

1、输出电流 DC/SCR/继电器 Control output:100mA/5V供电

2、消耗电流 DC<25mA

3、响应时间 <2ms

4、指向角:≤15°,有效距离3-80CM可调

5、检测物体:透明或不透明体

6、工作环境温度:-25℃~+55℃

7、标准检测物体:太阳光10000LX以下 白炽灯3000LX以下

8、外壳材料:塑料

Arduino实验开源代码

 

 

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 

实验一百三十九:E18-D80NK 红外避障传感器模块 接近开关 智能小车 3-80cm

  程序之一:串口输出检测情况

  实验接线

  VCC    +5V

  GND    GND

  OUT    2

*/



void setup(){

  Serial.begin(9600); //以9600的速率启动串行通信

  pinMode(2, INPUT); //插脚2作为信号输入

}

void loop(){

  while (1) {

  delay(1000);

  if (digitalRead(2) == LOW) {

    //如果未检测到信号打印冲突

    Serial.println("Collision Detected.");

  }

  else {

    // 如果检测到信号打印冲突

    Serial.println("No Collision Detected.");

  }

  }

}

  

实验串口返回情况

 

Arduino实验场景图

红外避障使用很简单,就是OUT口检测到有效距离内有障碍物时,给OUT发送高电平(或低电平)。可以利用这一特性,进行计数。

需要注意的是,根据障碍物在识别范围内所停留的时间不同,模块可能会在障碍物停留的这一段时间频繁的发送高电平(或低电平),所以,要判断两个标志,一个是障碍物进入,一个是障碍物移出,保证在进入后只记录一次数据即可。

代码如下:

 

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 

实验一百三十九:E18-D80NK 红外避障传感器模块 接近开关 智能小车 3-80cm

  程序之二:利用红外避障(障碍检测)进行计数

  实验接线

  VCC    +5V

  GND    GND

  OUT    2

*/



int i=0; //计数

bool b=false; //障碍物是否进入

void setup() {

Serial.begin(9600);

pinMode(2,INPUT);

}

void loop() {

if (digitalRead(2)==LOW) //如果发送低电平,识别到障碍物进入

{

  if (b==false) { //如果上一次检测时,障碍物没有进入,则视为第一次进入。

  b=true;  //先将标志记录为障碍物已进入。

  i+=1;  //计数+1

  Serial.print("OK:");

  Serial.println(i);

  }

}

else {  //如果检测到障碍物移出

b=false;  //将标志记录为障碍物已移出。

}

  delay(1);

}

  实验串口返回情况

 

程序之三:串口输出检测情况,同步控制LED

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 

实验一百三十九:E18-D80NK 红外避障传感器模块 接近开关 智能小车 3-80cm

  程序之三:串口输出检测情况,同步控制LED

  实验接线

  VCC    +5V

  GND    GND

  OUT    2

  LED    13

*/



const int InfraredSensorPin = 2;

//将信号引脚连接到数字引脚2

const int LedDisp = 13;

//将控制LED连接到数字引脚13

void setup()

{

  Serial.begin(57600);

  Serial.println("Start!");

  pinMode(InfraredSensorPin, INPUT);

  pinMode(LedDisp, OUTPUT);

  digitalWrite(LedDisp, LOW);

}

void loop()

{

  if (digitalRead(InfraredSensorPin) == LOW)  digitalWrite(LedDisp, HIGH);

  else  digitalWrite(LedDisp, LOW);

  Serial.print("Infrared Switch Status:");

  Serial.println(digitalRead(InfraredSensorPin), BIN);

  delay(1000);

}

  

串口输出结果

当传感器没有监测到目标的时候,Uno控制板上13脚的LED灯熄灭,并且串口监视器会接收到数字“1”;当传感器监测到目标的时候,LED灯会被点亮,并且串口监视器会接收到数字“0”。如果需要调节监视距离,可以用一字螺丝刀调节背后的旋钮。

 

实验开源图形编程(Mind+、编玩边学)

实验开源仿真编程(Linkboy V4.62)

使用E18-D80NK注意事项

1、在接线的时候,请避免出现电源和地接错的现象,该操作有可能造成传感器永久性损坏;

2、信号输出端请加上拉电阻;

3、为保护动作的可靠和寿命长,请避免有关规定以外的温度外界(户外)条件下,接近传感器虽为耐水结 构,若装上罩使用,勿使水和水容性切削油等淋到,则可更好地提高可靠性及寿命。还请避免在有化学药剂,特别是在强碱、酸、硝酸、铭酸、热浓硫酸等气候中使用。

 

使用E18-D80NK疑难解答

问:这是数字传感器还是模拟传感器?

答:这是数字传感器,NPN常开型光电开关;输出状态是0,1,即数字电路中的低电平和高电平,正常状态输出高电平,检测到目标输出低电平。

问:能否接到单片机IO口上?

答:可以直接接单片机IO口上使用。

问:如果加上拉电阻阻值为多少?

答:加上拉电阻阻值一般在10K左右;

问:为什么接上电源后,指示灯一直亮?

答:首先要保证电源是稳定的5V±2%,其次探头输出端不能接单片机输出口;

问:为什么接上红外开关电源后,指示灯一直亮?

答:1,请检查电源有没有接反,即红外输出接到电源正;2,请检查探头所对方向探测范围内有没有障碍物,最好对着空旷的方向。

问:有使用说明书吗,介绍说明太过简单?

答:这是光电开关,只有三条线,电源、地、输出,不需要太复杂介绍。

 

附录:认识数字红外避障传感器视频(8分39秒)

https://v.youku.com/v_show/id_XNDA5OTIzOTUwMA==