楼主: eagler8

【Arduino】108种传感器系列实验(118)--- US-015高分辨超声波

[复制链接]

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 15:41 | 显示全部楼层
16.jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 15:42 | 显示全部楼层
16-.jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 15:43 | 显示全部楼层
16-0.jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 15:44 | 显示全部楼层
17 (1).jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 16:06 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百一十八:US-015 高分辨超声波测距模块 超声波传感器 US-020升级版
项目:测试距离(单位mm)
原理:声波在空气中传播速度为340m/s,根据计时器记录时间t,即可算出发射点距离障碍物的距离S,即S=340m/s*t/2,这就是所谓的时间差测距法。
*/

unsigned int EchoPin = 2;           // connect Pin 2(Arduino digital io) to Echo at US-015
unsigned int TrigPin = 3;           // connect Pin 3(Arduino digital io) to Trig at US-015
unsigned long Time_Echo_us = 0;
unsigned long Len_mm  = 0;
void setup()
{  //Initialize
    Serial.begin(9600);        //Serial: output result to Serial monitor
    pinMode(EchoPin, INPUT);   //Set EchoPin as input, to receive measure result from US-015
    pinMode(TrigPin, OUTPUT);  //Set TrigPin as output, used to send high pusle to trig measurement (>10us)
}

void loop()
{
    digitalWrite(TrigPin, HIGH);    //begin to send a high pulse, then US-015 begin to measure the distance
    delayMicroseconds(20);          //set this high pulse width as 20us (>10us)
    digitalWrite(TrigPin, LOW);     //end this high pulse
   
    Time_Echo_us = pulseIn(EchoPin, HIGH);               //calculate the pulse width at EchoPin,
    if((Time_Echo_us < 60000) && (Time_Echo_us > 1))     //a valid pulse width should be between (1, 60000).
    {
      Len_mm = (Time_Echo_us*34/100)/2;      //calculate the distance by pulse width, Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)
      Serial.print("Present Distance is: ");  //output result to Serial monitor
      Serial.print(Len_mm, DEC);            //output result to Serial monitor
      Serial.println("mm");                 //output result to Serial monitor
    }
    delay(1000);                            //take a measurement every second (1000ms)
}[/mw_shl_code]

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 16:08 | 显示全部楼层
18.jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 16:29 | 显示全部楼层
[mw_shl_code=arduino,true]/*
【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
实验一百一十八:US-015 高分辨超声波测距模块 超声波传感器 US-020升级版
项目:超声波测距(单位cm)
*/

const int TrigPin = 3; //发出超声波
const int EchoPin = 2; //收到反射回来的超声波
float cm; //因为测得的距离是浮点型的

void setup()
{
  Serial.begin(9600); //设置波特率
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);
}

void loop()
{
  digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  delayMicroseconds(2);       // delayMicroseconds在更小的时间内延时准确
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW); //通过这里控制超声波的发射
  
  cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
  cm = (int(cm * 100.0)) / 100.0; //保留两位小数
  Serial.print("Distance:");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();
  delay(1000);
}[/mw_shl_code]

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 16:30 | 显示全部楼层
19.jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 17:21 | 显示全部楼层
19-.jpg

签到天数: 109 天

[LV.6]常住居民II

 楼主| 发表于 2019-9-21 17:22 | 显示全部楼层
20.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

ESP8266结合blinker使用小爱同学电脑远程开机
ESP8266结合blinker使用小
blinker是点灯科技开发的面向广大物联网爱好者和创客公司研发的APP,可以安全快速有效
【Arduino】168种传感器模块系列实验(159)---MAX9814咪头传感器
【Arduino】168种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
【限时免费领】1000 块 Wi-Fi+BLE MCU 开发板
【限时免费领】1000 块 Wi
有! >>涂鸦智能 Wi-Fi+BLE MCU 开发板
Stduino UNO mini来了,你确定不了解下嘛
Stduino UNO mini来了,你
Stduino UNO mini基于Arduino UNO板型支持数字式调用引脚,例如:pinMode(13,OUTPUT)
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表