查看(SKU:RB-02S041)夏普GP2D12红外测距传感器的源代码
←
(SKU:RB-02S041)夏普GP2D12红外测距传感器
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
[[文件:RB-02S041.jpg|500px|缩略图|右]] ==产品概述== GP2D12 IR Sensor 是日本夏普公司推出的一款性价比高、最常用的红外测距传感器、其可用来对物体的距离进行测量,实现轮式机器人的避障功能。它不但体积小、功耗低、价格便宜,而且测距效果好,适合广大机器人发烧友使用。 ==规格参数== # 测量射程范围:10 to 80 cm # 最大允许角度:>40° # 电源电压:4.5 to 5.5V # 平均功耗:35mA # 峰值功耗:约200mA # 更新频率/周期:25Hz / 40ms # 模拟输出噪声:<200mV # 测量距离与输出模拟电压关系:2.4V~0.4V模拟信号对应10cm~80cm,输出与距离成反比非线性关系 ===产品尺寸图=== [[文件:RB-02S0411.jpg|700px|缩略图|居中]] ===模拟信号与测量距离对应表=== [[文件:RB-02S0412.jpg|700px|缩略图|居中]] ===信号输出=== ADC0831可以将模拟信号转为数字信号输出 [[文件:RB-02S0413.jpg|700px|缩略图|居中]] ==接口定义== * Vo:输出引脚 * GND:电源地 * Vcc:电源正极 ==使用方法== ===例程1=== ====连接示意图==== [[文件:RB-02S0414.jpg|700px|缩略图|居中]] 首先将距离传感器固定到舵机上,可以使用热熔胶或者胶带。然后使用一个1uf电解电容和一个22uf电解电容并联在5V稳压芯片L4940V5上。将红外距离传感器的信号线插入0号模拟引脚。4个LED通过1KΩ电阻插入3、5、6、11引脚。最后将舵机信号线接在9号引脚上。 ====例子程序==== <pre style='color:blue'> #include <Servo.h> const int SERVO =9; //伺服电机连接在9号引脚 const int IR =0; //红外距离传感器连接在0号模拟引脚 const int LED1 =3; //LED输出1 const int LED2 =5; //LED输出2 const int LED3 =6; //LED 输出3 const int LED4 =11; //LED 输出4 Servo myServo; //伺服电机对象 int dist1 = 0; //第一象限距离 int dist2 = 0; //第二象限距离 int dist3 = 0; //第三象限距离 int dist4 = 0; //第四象限距离 void setup() { myServo.attach(SERVO); //绑定伺服电机 pinMode(LED1, OUTPUT); //将LED设置为输出 pinMode(LED2, OUTPUT); //将LED设置为输出 pinMode(LED3, OUTPUT); //将LED设置为输出 pinMode(LED4, OUTPUT); //将LED设置为输出 } void loop() { //将伺服电机在4个区域中扫描并改变LED亮度 dist1 = readDistance(15); //在15°处进行红外测距 analogWrite(LED1, dist1); //调节LED亮度 delay(300); //下次测量前的延时 dist2 = readDistance(65); //在65°处进行红外测距 analogWrite(LED2, dist2); //调节LED亮度 delay(300); //下次测量前的延时 dist3 = readDistance(115); //在115°处进行红外测距 analogWrite(LED3, dist3); //调节LED亮度 delay(300); //下次测量前的延时 dist4 = readDistance(165); //在165°处进行红外测距 analogWrite(LED4, dist4); //调节LED亮度 delay(300); //下次测量前的延时 } int readDistance(int pos) { myServo.write(pos); //转动到指定位置 delay(600); //等待伺服电机转动 int dist = analogRead(IR); //读取红外传感器 dist = map(dist, 50, 500, 0, 255); //转换到LED的范围内 dist = constrain(dist, 0, 255); //约束它 return dist; //返回缩放后的距离 }</pre> ====程序效果==== 当舵机转动到一个给定的位置时测定距离,将其转换为LED的亮度值,改变LED的亮度值,将其转向下一个位置,然后继续,如此重复。 ===例程2=== ====接线方法==== 将传感器连接到UNO控制器模拟口A1上,注意对应线序:一般情况下3P线黄色接信号,红色接电源正,黑色接电源负 ====例子程序==== <pre style="color:blue"> #define pin A0 void setup () { Serial.begin (9600); pinMode (pin, INPUT); } void loop () { uint16_t value = analogRead (pin); uint16_t range = get_gp2d12 (value); Serial.println (value); Serial.print (range); Serial.println (" mm"); Serial.println (); delay (500); } //return distance (mm) uint16_t get_gp2d12 (uint16_t value) { if (value < 30) value = 30; return ((67870.0 / (value - 3.0)) - 40.0); } </pre> ====程序效果==== 打开 Arduino IDE 串口监视器可以观察到当前传感器测试到的距离。 ==产品相关推荐== [[文件:erweima.png|230px|无框|右]] ===产品购买地址=== [http://www.alsrobot.cn/goods-181.html 夏普GP2D12红外测距传感器]<br/> ===周边产品推荐=== [http://www.alsrobot.cn/goods-183.html Arduino IR Sensor GP2Y0A02YK0F夏普红外测距传感器]<br/> ===相关问题解答=== [http://www.makerspace.cn/forum.php?mod=viewthread&tid=3851&highlight=%E5%A4%8F%E6%99%AE 夏普红外测距边界问题]<br/> ===相关学习资料=== [http://www.makerspace.cn/portal.php 奥松机器人技术论坛]<br/>
返回
(SKU:RB-02S041)夏普GP2D12红外测距传感器
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面
页面信息