Arduino教程(提高篇)——SR04超声波类库的使用-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 239592|回复: 247

Arduino教程(提高篇)——SR04超声波类库的使用

  [复制链接]
发表于 2012-4-21 10:31 | 显示全部楼层 |阅读模式
本帖最后由 奈何col 于 2013-5-12 13:43 编辑

SR04是最常见的超声波传感器之一,价格便宜,好用,是arduino开发的必备良品~

10490479igv91g1nd1n9a1.jpg
其工作原理如下




  • 采用IO触发测距,给至少10us的高电平信号;
  • 模块自动发送8个40KHz的方波,自动检测是否有信号返回;
  • 有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.距离=(高电平时间*声速(340m/s))/2;


下面使用的是arduino官方推荐的SR04超声波传感器类库 SR04.rar (2.45 KB, 下载次数: 20331)



  • 将附件下载后解压到arduinoIDE下的libraries文件夹即可,如下图
    104902iw1l0hk51mwz5shk.jpg




  • 打开ArduinoIDE,选择SR04例程

105532s95rczoc6n8r88s6.jpg



  • 打开后即可见到如下程序

    [mw_shl_code=cpp,true]#include "SR04.h"
    #define TRIG_PIN 2
    #define ECHO_PIN 3
    SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);
    long a;
    void setup() {
    Serial.begin(9600);
    Serial.println("Example written by Coloz From Arduino.CN");
    delay(1000);}
    void loop() {
    a=sr04.Distance();
    Serial.print(a);
    Serial.println("cm");
    delay(1000);}[/mw_shl_code]
  • 如下连接你的超声波传感器
    [mw_shl_code=cpp,true]#define TRIG_PIN 2
    #define ECHO_PIN 3[/mw_shl_code]
    TRIG接到arduino的第二脚
    ECHO接到arduino的第三脚
    VCC、GND接上
  • 打开串口调试,即可看到效果了
1102002ok3n35m85wzkowz.jpg



最后提供一个不用库直接驱动SR04的程序(上面库,就是把这个程序封装了一次)
[mw_shl_code=cpp,true]const int TrigPin = 2;
const int EchoPin = 3;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
//发一个10ms的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);

cm = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米
cm = (int(cm * 100.0)) / 100.0; //保留两位小数
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
} [/mw_shl_code]
发表于 2012-4-30 00:04 | 显示全部楼层
试了下。。返回的全是0CM。。。搞不懂。。
发表于 2012-4-21 11:33 | 显示全部楼层
原来有库啊
我用的时候 自己写的哦
 楼主| 发表于 2012-4-30 00:58 | 显示全部楼层
本帖最后由 奈何col 于 2012-4-30 01:00 编辑
lengrang911 发表于 2012-4-30 00:04
试了下。。返回的全是0CM。。。搞不懂。。

线插错没?E、T不能接反哦~
发表于 2012-5-3 11:48 | 显示全部楼层
原来要答复,才能下载! 新来的不懂,见谅!
发表于 2012-4-21 11:34 | 显示全部楼层
大鹏·Roc 发表于 2012-4-21 11:33
原来有库啊
我用的时候 自己写的哦

后面我再陆续写点库的介绍,很多常用的都有
发表于 2012-4-21 11:36 | 显示全部楼层
coloz 发表于 2012-4-21 11:34
后面我再陆续写点库的介绍,很多常用的都有

好啊好啊 支持  
发表于 2012-4-21 11:48 | 显示全部楼层
有库方便多了,谢谢楼主了
发表于 2012-4-21 12:06 | 显示全部楼层
超声波能用在什么地方啊
发表于 2012-4-21 12:10 | 显示全部楼层
超声波有用做 超声波测距仪、超声波探鱼器、超声波探伤仪,貌似医用的B超也用超声波的吧~~~
发表于 2012-4-21 21:34 | 显示全部楼层
有库真方便啊,本来还在想怎么采样
发表于 2012-4-29 23:47 | 显示全部楼层
这个太方便了。。。本以为很难的。。谢谢了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 08:04 , Processed in 0.085399 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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