查看(SKU:RB-02S003)Mini红外避障传感器的源代码
←
(SKU:RB-02S003)Mini红外避障传感器
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
<br/> [[文件:Mini红外避障传感器01.jpg|400px|有框|右]] ==概述== Mini IR Dectector是机器人基地专为轮式机器人设计的一款距离可调式避障传感器。此传感器对环境光线适应能力强、精度高,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,此时指示灯亮起,经过电路处理后,信号输出接口输出数字信号,可通过电位器旋钮调节检测距离,有效距离3~35cm,工作电压为3.3V-5V,由于工作电压范围宽泛,在电源电压波动比较大的情况下仍能稳定工作,适合多种单片机、Arduino控制器、BS2控制器使用,安装到机器人上即可感测周围环境的变化。<br/> ==规格参数== 1. 工作电压:DC 3.3V~5V<br/> 2. 工作电流:≥20mA <br/> 2. 工作温度:-10℃ ~ +50℃<br/> 4. 检测距离:3~35cm<br/> 5. IO接口:4线制接口(-/+/S/EN)<br/> 6. 输出信号:TTL电平(有障碍物低电平,无障碍物高电平)<br/> 7. 调节方式:多圈电阻式调节<br/> 8. 有效角度:35°<br/> 9. 模块尺寸:28mm×23mm<br/> 10.模块重量:9g<br/> ==使用方法及例子程序== ===引脚示意图=== [[文件:Mini红外避障传感器02.jpg|440px|有框|居中]] 1、传感器的接口:共4个,电路板标号分别为EN、S、+、-。分别是传感器使能端口、检测信号输出端口、Vcc、GND。<br/> EN(传感器使能):置高,传感器不工作;置低,传感器工作。<br/> S(反射信号输出):当EN置低的情况下,如果没有检测到物体,则S端口保持高电平;若检测到物体,则S端口置低。<br/> +:接外部供电的Vcc。<br/> -:接外部供电的GND。<br/> 2、使能跳线帽:当用户想让传感器一直处于工作状态,换句话说用户不需要自行控制传感器是否工作,这时可以将跳线帽插在排针上,EN脚可以不接任何线。当用户想自己控制传感器是否工作,则要去掉跳线帽,将EN端口接到用户自己的控制器端口上。<br/> 3、调节距离电位器:用于调整传感器探测的距离。当用户需要调整探测距离时,用螺丝刀调整电位器阻值,按箭头方向旋转是将探测距离减小,相反方向旋转探测距离增大。<br/> 4、频率调节电位器:用于产生38KHz频率的方波。正常情况下,在出厂前将阻值调好,无需用户调节。但由于外界环境的不同或振动,出现了接收不到反射信号的情况,这时用户可以对电位器2进行微调,直到有障碍物时能收到信号,指示灯点亮即可。<br/> ===使用方法=== 步骤一:接线。<br/> 连接前首先根据需要确定是否需要控制传感器的使能端口。如果不选择控制使能端口,则将跳线帽插在双排针上,这时只需用排线连接S、+、-三个端口,注意正负极电源不要接反。如果选择控制传感器使能,则要拔下跳线帽,放到可以找到的地方,这时需用排线连接EN、S、+、- 四个端口。EN和S端口一般连接到控制器的I/O口。+、- 接到电源的Vcc和GND。<br/> 步骤二:固定。<br/> 根据需要通过直径3mm的连接件(铜柱、螺钉、螺栓等)进行固定。传感器的安装高度和反射物的颜色决定了能否得到可靠的信号。如果传感器安装较低,可以将红外发射管抬高些,或者加小型的定向管(如热缩管)套到红外发射管上。为了避免免误触发,不要将传感器安装在机器人的运动机构上,特殊需求除外。<br/> 步骤三:编程。<br/> 根据端口状态真值表,进行编程应用。<br/> [[文件:Mini红外避障传感器03.jpg|440px|有框|居中]] ===示例程序=== <pre style='color:blue'>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); } } </pre> ===程序效果=== # 模块按引脚定义图接好探头模块,切勿接错; # 此时指示灯灭,相应输出端(S)输出TTL低电平; # 将避障模块的红外探头对准墙壁或其他障碍物,距离为2-40厘米左右,此时指示灯亮,相应输出端(S)输出TTL高电平; ==应用例程== Mini红外避障传感器模块的测试<br/> 我们使用Arduino控制器和2WD小车来做这个测试,要用到硬件设备如下:<br/> 1、Arduino控制器×1<br/> 2、Arduino 传感器扩展板×1<br/> 3、Mini红外避障传感器模块×3<br/> 4、2WD小车×1<br/> 5、传感器支架×1<br/> 6、通用3P传感器连接线×3<br/> 7、杜邦线若干<br/> 8、USB数据通信线×1<br/> 通过配合调节调频和调距两个电位计,调到适合我们的检测距离。有障碍物位低电平,无障碍物位高电平。使能跳线帽插上就是一直让传感器工作,拔下则可以通过控制使能端让传感器是否工作。下面的实验代码是我们引用Arduino爱好者的一篇博文,(http://blog.sina.com.cn/s/blog_5e4725590100i20b.html)这是实验代码的博文地址。<br/> Arduino实验代码如下:<br/> <pre style='color:blue'>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); }</pre> ==产品相关推荐==
返回
(SKU:RB-02S003)Mini红外避障传感器
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面
页面信息