进阶制作

提高篇--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 不要看声明了,看内容吧!

相关文章
  • 移位寄存器在Arduino上的应用

    移位寄存器在Arduino上的应用

    2016-05-13 16:05

  • Arduino硬件中断详解

    Arduino硬件中断详解

    2016-05-13 14:29

  • 利用Arduino制作键盘乐器

    利用Arduino制作键盘乐器

    2016-04-26 16:11

  • 利用Arduino和Android制作智能家居系统

    利用Arduino和Android制作智能家居系统

    2016-04-26 14:34

网友点评