Arduino 读红外测距传感器GP2D12 实例,仅供大家参考!
器材:Arduino 开发板,GP2D12,1602 字符液晶,连接线若干。
GP2D12 是日本SHARP 公司生产的红外距离传感器,价格便宜,测距效果还不错,主要用于模型或机器人制作。
技术规格如下:
探测距离:10-80cm
工作电压:4-5.5V
标准电流消耗:33-50 mA
输出量:模拟量输出,输出电压和探测距离成比例

实验原理图:

实验实物图:

没有障碍物,显示范围超出,


有障碍物时显示测量距离。

经实验,需要在GP2D12 的电源端加个10UF 以上的电解电容,稳定供电电压,以保证输出模拟电压更稳定。
实验代码:

/********************************************************************/
int GP2D12=0;
int ledpin = 13;
int LCD1602_RS=12;
int LCD1602_RW=11;
int LCD1602_EN=10;
int DB[] = {6, 7, 8, 9};
char str1[]="www.DFRobot.cn";
char str2[]="Renge:00cm";
char str3[]="Renge Over";
/********************************************************************/
由于篇幅限制,1602 液晶部分程序省略。。。
/********************************************************************/
void setup (void)
{
int i = 0;
for (i=6; i <= 13; i++)
{
pinMode(i,OUTPUT);
}
LCD_Command_Write(0x28);//4 线 2 行 2x7
delay(50);
LCD_Command_Write(0x06);
delay(50);
LCD_Command_Write(0x0c);
delay(50);
LCD_Command_Write(0x80);
delay(50);
LCD_Command_Write(0x01);
}
/********************************************************************/
void loop (void)
{
float temp;
int val;
char i,a,b;
LCD_Command_Write(0x02);
delay(50);
LCD_Write_String(1,0,str1);
delay(50);
LCD_Write_String(3,1,str2);
delay(50);
while(1)
{
val = analogRead(GP2D12);
temp=val/5.8; //改变被除数,可以减小一点误差。
val=95-temp; //由于GP2D12 的输出电压与距离成反比,所以需要用一个常量相减
//改变这个常量,可以减小一点误差。
if(val>80)
{
LCD_Write_String(3,1,str3); //超出范围显示 Renge Over
}
else
{
LCD_Write_String(3,1,str2);
a=0x30+val/10;
b=0x30+val%10;
LCD_Write_Char(9,1,a);
LCD_Write_Char(10,1,b);
}
delay(500);
}
}

arduino学习笔记十--Arduino 读红外测距传感器相关推荐

  1. arduino学习笔记十八--红外遥控检测

    介绍 远程遥控技术又称为遥控技术,是指实现对被控目标的遥远控制,在工业控制.航空航天.家电领域应用广泛.红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著 ...

  2. arduino学习笔记十九--水位报警器

    介绍 水位报警器,当水接触到2个金属头时候,触发报警. 清单 无源蜂鸣器一个 一个LED 一个470欧姆电阻 一个10K电阻 9根杜邦线 实验板一片 一个水杯(自备) 原理图 1 接线,按照原理图接线 ...

  3. arduino学习笔记十六--震动开关与LED

    检测到震动,点亮LED 实验用到的材料 一个震动传感器 1个10K电阻 1个LED 1个470欧姆电阻 5根杜邦线 1片实验板 原理图 按照原理图接线 震动 LED点亮 延时. 1接好线 2下载程序, ...

  4. 【Arduino学习笔记】Arduino的反正切函数atan()

    用法: float a: a=atan(x): 得到的是弧度

  5. Arduino + GP2D12红外测距传感器+LCD1602

    一: GP2Y0A21YKIR Sensor是日本夏普公司推出的一款性价比高.最常用的红外测距传感器.其与GP2D12测量射程相同,但探测面积略有增加,可用来对物体的距离进行测量,实现轮式机器人的避障 ...

  6. Arduino与ROS通讯的示例代码HelloWorld改写成夏普红外测距传感器数据传输的代码

    改写详情: 其实就是在原来的代码的基础上加了个红外测距传感器的代码,然后把红外测距传感器的double类型的数据用dtostrf函数转换成了char类型的字符串数组.并没有对消息类型进行任何的更改,仅 ...

  7. Arduino学习笔记(1):太极创客 第一部分

    Arduino学习笔记 太极创客 第一部分 笔记 1-5 变量 1-6 程序结构 1-7 变量操作 1-8/1-9 程序函数 1-10/1-11 数字输出 1-12 面包板 1-13/1-14 数字输 ...

  8. Arduino学习笔记2

    一.蜂鸣器输出实验 1.源代码 int buzzer=2;//设置控制蜂鸣器的数字口对应板子上2口 void setup() { pinMode(buzzer,OUTPUT);//设置对应的输出模式 ...

  9. 第十七篇、基于Arduino uno,获取cp2d12红外测距传感器的原始值和距离值——结果导向

    0.结果 说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是距离值,如果是你想要的,可以接着往下看. 1.外观 说明:虽然红外测距传感器形态各异,但是原理和代码都是适用的,只 ...

最新文章

  1. linux标准i/o,Linux 标准I/O笔记
  2. vim 打开中文乱码
  3. Oracle之垂直水平分库分表(二)
  4. halcon 将数据保存到excel_Python保存数据到Excel文件的多个sheet
  5. MySQL read-c_技术分享 | MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
  6. 安卓学习笔记26:菜单
  7. 内存条上面参数详解_【硬件篇】第4期:内存条知识(台式机)
  8. 深圳市各行政区域最新地图数据
  9. Google Office 战略 途经:收购JotSpot
  10. AutoPatch java_Java Beta.canAutoPatch方法代码示例
  11. Java项目:ssm在线答题系统
  12. python现在版本强势英雄_当前版本中后期强势英雄排行榜,第一名后期无敌!
  13. java group布局_Java 的swing.GroupLayout布局管理器的使用方法和实例
  14. R语言的版本更新以及迁移R包
  15. 公厕智能离子净化器有多种除臭净味技术
  16. python3.6.国家政策文本分析代码
  17. Spring-boot启动出现:“if you put a @ComponentScan in the default package by mistake” 错误。
  18. R语言svm支持向量机多元回归预测
  19. 百度快照优化推广五大坑
  20. OLED液晶屏幕(2)取模软件

热门文章

  1. win10纯净版系统+激活教程
  2. 三个方案解决短视频APP广告变现问题
  3. 金蝶K3WISE盘点机PDA,移动便携扫描商品条码进行库存查询
  4. 【学习计算机组成原理】非数值数据的表示
  5. Okio精简高效的IO库
  6. 【手把手带你Godot游戏开发】FlappyBird:7 心里有数(计分系统)
  7. 2020数学建模国赛(A)炉温曲线
  8. 静态变量能被序列化吗?
  9. 淘宝API系列,商品详情数据的获取(数据聚全)
  10. 图文+视频手把手教您:如何增加Excel的可撤消(可撤销)次数