【雕爷学编程】Arduino动手做(139)---E18-D80避障传感器模块
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==