进阶制作

提高篇--SR04超声波类库的使用

字号+ 作者:PLC工程师 来源:未知 2016-02-26 16:37 我要评论( )

SR04是最常见的超声波传感器之一,价格便宜,好用,是arduino开发的必备良品~ 其工作原理如下 采用IO触发测距,给至少10us的高电平信号; 模块自动发送8个40KHz的方波,自动检测是否有信号返回; 有信号返回,通过IO输出一高电平,高电平持续的时间就是超声

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

 
其工作原理如下




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


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



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




  • 打开ArduinoIDE,选择SR04例程

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

    #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);}
    ?
  • 如下连接你的超声波传感器
  • #define TRIG_PIN 2
    #define ECHO_PIN 3
  • TRIG接到arduino的第二脚
    ECHO接到arduino的第三脚
    VCC、GND接上
  • 打开串口调试,即可看到效果了
 



最后提供一个不用库直接驱动SR04的程序(上面库,就是把这个程序封装了一次)
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); 
}

如需更详细资料,如有好资源分享,请加入QQ交流群:214461008

欢迎阅读,欢迎转载,不用注明出处!本站只提供入门和进阶资料,做您学习的小伙伴!

请加群:214461008

相关文章
  • 激光雕刻机步骤

    激光雕刻机步骤

    2017-01-17 21:28

  • Arduino与A4988驱动42步进电机

    Arduino与A4988驱动42步进电机

    2017-01-17 09:00

  • 如何利用Arduino播放音乐

    如何利用Arduino播放音乐

    2016-06-02 21:06

  • 移位寄存器在Arduino上的应用

    移位寄存器在Arduino上的应用

    2016-05-13 16:05

网友点评
Arduino
热门教程
关注我们
自动化世界