极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Ansifa

Arduino学习笔记A2 - Arduino连接超声波传感器测距

  [复制链接]
 楼主| 发表于 2013-1-29 00:39:53 | 显示全部楼层
xys 发表于 2013-1-28 19:27

写程序时,先在TXD引脚端为8个40K周期电平,程序处理变换成一个PWM的信号从RXD引脚输出,一旦检测到有回波信号则输出回响信号,供我们方便使用。


从这里可以看出不是串口,只是普通的模块,可以用上面的代码直接用。trig对应TXD,echo对应RXD就行
回复 支持 反对

使用道具 举报

发表于 2013-1-31 12:58:31 | 显示全部楼层
晚上回家试试,买了超声波测距仪一直没试。
刚才查了一下pulseIn函数的手册,感觉有必要加个超时时间。
回复 支持 反对

使用道具 举报

发表于 2013-2-1 08:32:43 | 显示全部楼层
实验汇报:昨天晚上在家做了一下实验,基本效果出来了,但是有时候距离显示为负值,不知道为什么,后来增加了一个float变量用来存储pulseIn的时间长度,然后用这个变量除以58得出距离。出现负值个人猜想可能是int值溢出了,周末再继续测试一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-2 12:01:35 | 显示全部楼层
葱拌豆腐 发表于 2013-2-1 08:32
实验汇报:昨天晚上在家做了一下实验,基本效果出来了,但是有时候距离显示为负值,不知道为什么,后来增加 ...

我做的也有时候会负值,感觉程序不会出错啊,那时直接加个if判断距离在0~2米之内就通过算了。没有再深究,期望有个更好解决方法
回复 支持 反对

使用道具 举报

发表于 2013-2-8 01:17:16 | 显示全部楼层
这个好啊,嘿嘿,
回复 支持 反对

使用道具 举报

发表于 2013-2-8 16:09:06 | 显示全部楼层
黑马 发表于 2012-4-18 15:10
支持,正好找了一个传感器,用手水平转了一圈扫的数据~~

右上的平面是电脑的屏幕,旁边突出来的是热水 ...

这是用的什么软件?
回复 支持 反对

使用道具 举报

发表于 2013-2-23 21:55:26 | 显示全部楼层
感觉跳动还是很大。
回复 支持 反对

使用道具 举报

发表于 2013-4-9 17:33:37 | 显示全部楼层
刚入门的新手,谢谢楼主详解
回复 支持 反对

使用道具 举报

发表于 2013-5-21 20:01:10 | 显示全部楼层
学习了,学习楼主
回复 支持 反对

使用道具 举报

发表于 2013-5-21 20:54:09 | 显示全部楼层
好贴,支持一下。
回复 支持 1 反对 0

使用道具 举报

发表于 2013-5-27 20:57:40 | 显示全部楼层
做了这个实验,让测试结果在1602液晶屏上显示。用了SR04的库。
  1. #include "SR04.h"
  2. #define TRIG_PIN 8
  3. #define ECHO_PIN 9
  4. #include <LiquidCrystal.h>
  5. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  6. SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
  7. long a;

  8. void setup() {
  9.    lcd.begin(16, 2);
  10.      delay(1000);
  11. }

  12. void loop() {
  13.    a=sr04.Distance();
  14.   lcd.clear(); //清屏
  15.   lcd.print("Now Range is"); //使屏幕显示文字
  16.   lcd.setCursor(0, 1) ; //设置光标位置为第二行第一个位置
  17.   lcd.print(a);   //显示温度
  18.   lcd.print("CM"); //显示字母
  19.    delay(1000);
  20. }
复制代码

评分

参与人数 1 +24 收起 理由
Ansifa + 24 赞一个!

查看全部评分

回复 支持 4 反对 0

使用道具 举报

发表于 2013-6-3 11:44:50 | 显示全部楼层
Ansifa 发表于 2013-1-28 15:03
你的是串口输出吗?型号是啥呢,如果串口的话,接arduino的TX/RX引脚

楼主,那这么接线的话,初始化时候是不是要更改定义,具体又怎么定义呢?
回复 支持 反对

使用道具 举报

发表于 2013-6-8 17:40:18 | 显示全部楼层
好帖是必须要顶起来的,但是我之前做的wifi小车用到了这个超声波,用单片机怎么也驱动不了,但是arduino就没有问题,非常奇怪。。。
回复 支持 反对

使用道具 举报

发表于 2013-6-8 22:37:25 | 显示全部楼层
yyy_zc 发表于 2012-6-27 22:14
把echo 脚拔了,输出就是0.00 cm 了,查一下物理连接

我的是按照说明书上连接的UNO引脚0和1.也是只能输出0.00cm。但是我把delay()删除掉后就能正常输出结果了。这事为什么啊?
回复 支持 反对

使用道具 举报

发表于 2013-6-9 00:05:13 | 显示全部楼层
刚才的问题,已经解决。是引脚的问题,使用2和3就行。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 06:21 , Processed in 0.044880 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表