标题: 【Arduino】168种传感器模块系列实验(148)---E18-D80避障传感器 [打印本页]

作者: eagler8    时间: 2020-2-26 16:13
标题: 【Arduino】168种传感器模块系列实验(148)---E18-D80避障传感器
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试做实验,不管成功与否,都会记录下来---小小的进步或是搞不定的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)
实验一百四十八:E18-D80NK 漫反射式红外光电开关避障传感器模块






作者: eagler8    时间: 2020-2-26 17:14


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


作者: eagler8    时间: 2020-2-26 17:27


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

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

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


作者: eagler8    时间: 2020-2-26 17:37
本帖最后由 eagler8 于 2020-2-26 17:59 编辑

E18-D80NK 漫反射式红外光电开关避障传感器模块




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




作者: eagler8    时间: 2020-2-26 17:58
本帖最后由 eagler8 于 2020-2-26 19:23 编辑


电气特性
棕色: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)

作者: eagler8    时间: 2020-2-26 18:06


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


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





作者: eagler8    时间: 2020-2-26 19:01


应用案例
     1、生产线货物自动计数设备
     2、多功能提醒器
     3、走迷宫机器人
     4、厨房自动化系统
     5、安防防盗系统等

管脚定义
棕色正极  黑色信号   蓝色负极


作者: eagler8    时间: 2020-2-26 19:03


作者: eagler8    时间: 2020-2-26 19:10


作者: eagler8    时间: 2020-2-26 19:11


作者: eagler8    时间: 2020-2-26 19:34
本帖最后由 eagler8 于 2020-2-26 19:52 编辑

实验开源代码
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料 +代码 +图形 +仿真)
  3.   实验一百四十八:E18-D80NK 漫反射式红外光电开关避障传感器模块
  4.   程序之一:串口输出检测情况
  5.   实验接线
  6.   VCC      +5V
  7.   GND      GND
  8.   OUT       2
  9. */

  10. void setup()
  11. {
  12.   Serial.begin(9600); //以9600的速率启动串行通信
  13.   pinMode(2, INPUT); //插脚2作为信号输入
  14. }

  15. void loop()
  16. {
  17.   while (1) {
  18.     delay(1000);
  19.     if (digitalRead(2) == LOW) {
  20.       //如果未检测到信号打印冲突
  21.       Serial.println("Collision Detected.");
  22.     }
  23.     else {
  24.       // 如果检测到信号打印冲突
  25.       Serial.println("No Collision Detected.");
  26.     }
  27.   }
  28. }
复制代码




作者: eagler8    时间: 2020-2-26 19:35


作者: eagler8    时间: 2020-2-26 19:40
本帖最后由 eagler8 于 2020-2-26 20:10 编辑




作者: eagler8    时间: 2020-2-26 19:48
本帖最后由 eagler8 于 2020-2-26 19:50 编辑

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

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

代码如下:
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料 +代码 +图形 +仿真)
  3.   实验一百四十八:E18-D80NK 漫反射式红外光电开关避障传感器模块
  4.   程序之二:利用红外避障(障碍检测)进行计数
  5.   实验接线
  6.   VCC      +5V
  7.   GND      GND
  8.   OUT       2
  9. */

  10. int i=0; //计数
  11. bool b=false; //障碍物是否进入
  12. void setup() {
  13. Serial.begin(9600);
  14. pinMode(2,INPUT);
  15. }
  16. void loop() {
  17. if (digitalRead(2)==LOW) //如果发送低电平,识别到障碍物进入
  18. {
  19.   if (b==false) { //如果上一次检测时,障碍物没有进入,则视为第一次进入。
  20.     b=true;  //先将标志记录为障碍物已进入。
  21.     i+=1;  //计数+1
  22.     Serial.print("OK:");
  23.     Serial.println(i);
  24.    }
  25. }
  26. else {  //如果检测到障碍物移出
  27. b=false;  //将标志记录为障碍物已移出。
  28. }
  29.   delay(1);
  30. }
复制代码




作者: eagler8    时间: 2020-2-26 19:54


作者: eagler8    时间: 2020-2-26 20:05
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料 +代码 +图形 +仿真)
  3.   实验一百四十八:E18-D80NK 漫反射式红外光电开关避障传感器模块
  4.   程序之三:串口输出检测情况,同步控制LED
  5.   实验接线
  6.   VCC      +5V
  7.   GND      GND
  8.   OUT       2
  9.   LED      13
  10. */

  11. const int InfraredSensorPin = 2;
  12. //将信号引脚连接到数字引脚2
  13. const int LedDisp = 13;
  14. //将控制LED连接到数字引脚13

  15. void setup()
  16. {
  17.   Serial.begin(57600);
  18.   Serial.println("Start!");
  19.   pinMode(InfraredSensorPin, INPUT);
  20.   pinMode(LedDisp, OUTPUT);
  21.   digitalWrite(LedDisp, LOW);
  22. }

  23. void loop()
  24. {
  25.   if (digitalRead(InfraredSensorPin) == LOW)  digitalWrite(LedDisp, HIGH);
  26.   else  digitalWrite(LedDisp, LOW);
  27.   Serial.print("Infrared Switch Status:");
  28.   Serial.println(digitalRead(InfraredSensorPin), BIN);
  29.   delay(1000);
  30. }
复制代码



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





作者: eagler8    时间: 2020-2-26 20:15


注意事项
1、在接线的时候,请避免出现电源和地接错的现象,该操作有可能造成传感器永久性损坏;
2、信号输出端请加上拉电阻;
3、为保护动作的可靠和寿命长,请避免有关规定以外的温度外界(户外)条件下,接近传感器虽为耐水结 构,若装上罩使用,勿使水和水容性切削油等淋到,则可更好地提高可靠性及寿命。还请避免在有化学药剂,特别是在强碱、酸、硝酸、铭酸、热浓硫酸等气候中使用。


作者: eagler8    时间: 2020-2-26 20:18


作者: eagler8    时间: 2020-2-26 20:19


作者: eagler8    时间: 2020-2-26 21:03
实验仿真编程(linkboy3.6)





作者: eagler8    时间: 2020-2-26 21:05
实验仿真编程(linkboy3.6)之二盲人避障器





作者: eagler8    时间: 2020-2-26 21:13
附录:认识数字红外避障传感器视频
https://haokan.baidu.com/v?pd=wisenatural&vid=283597865868477215




作者: eagler8    时间: 2020-2-27 06:21
实验开源图形编程(Mind+)








欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1