超声波 订阅
超声波是一种频率高于20000Hz(赫兹)的声波,它的方向性好,反射能力强,易于获得较集中的声能,在水中传播距离比空气中远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限超过人的听觉上限而得名。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为20Hz~20000Hz。因此,我们把频率高于20000Hz的声波称为“超声波”。通常用于医学诊断的超声波频率为1MHz~30MHz。 展开全文
超声波是一种频率高于20000Hz(赫兹)的声波,它的方向性好,反射能力强,易于获得较集中的声能,在水中传播距离比空气中远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限超过人的听觉上限而得名。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为20Hz~20000Hz。因此,我们把频率高于20000Hz的声波称为“超声波”。通常用于医学诊断的超声波频率为1MHz~30MHz。
信息
应用领域
医学、军事、工业、农业、化工
所属学科
物理学、声学
外文名
Ultrasound
中文名
超声波
频    率
f≥20KHz
功率密度
p≥0.3W/cm²
超声波产生
声波是物体机械振动状态(或能量)的传播形式。超声波是指振动频率大于20000Hz以上的,其每秒的振动次数(频率)甚高,超出了人耳听觉的一般上限(20000Hz),人们将这种听不见的声波叫做超声波。由于其频率高,因而具有许多特点:首先是能量集中,其波长比一般声波短得多,因而可以用来切削、焊接、钻孔等。再者由于它频率高,波长短,衍射不严重,具有良好的定向性,工业与医学上常用超声波进行超声探测。超声和可闻声本质上是一致的,它们的共同点都是一种机械振动模式,通常以纵波的方式在弹性介质内会传播,是一种能量的传播形式,其不同点是超声波频率高,波长短,在一定距离内沿直线传播具有良好的束射性和方向性,1MHz=10^6Hz,即每秒振动100万次,可闻声的频率在20~20000Hz之间)。超声波在媒质中的反射、折射、衍射、散射等传播规律,与可听声波的规律没有本质上的区别。但是超声波的波长很短,只有几厘米,甚至千分之几毫米。与可听声波比较,超声波具有许多奇异特性:传播特性──超声波的波长很短,通常的障碍物的尺寸要比超声波的波长大好多倍,因此超声波的衍射本领很差,它在均匀介质中能够定向直线传播,超声波的波长越短,该特性就越显著。功率特性──当声音在空气中传播时,推动空气中的微粒往复振动而对微粒做功。声波功率就是表示声波做功快慢的物理量。在相同强度下,声波的频率越高,它所具有的功率就越大。由于超声波频率很高,所以超声波与一般声波相比,它的功率是非常大的。空化作用──当超声波在介质的传播过程中,存在一个正负压强的交变周期,在正压相位时,超声波对介质分子挤压,改变介质原来的密度,使其增大;在负压相位时,使介质分子稀疏,进一步离散,介质的密度减小,当用足够大振幅的超声波作用于液体介质时,介质分子间的平均距离会超过使液体介质保持不变的临界分子距离,液体介质就会发生断裂,形成微泡。这些小空洞迅速胀大和闭合,会使液体微粒之间发生猛烈的撞击作用,从而产生几千到上万个大气压的压强。微粒间这种剧烈的相互作用,会使液体的温度骤然升高,起到了很好的搅拌作用,从而使两种不相溶的液体(如水和油)发生乳化,且加速溶质的溶解,加速化学反应。这种由超声波作用在液体中所引起的各种效应称为超声波的空化作用。
收起全文
精华内容
下载资源
问答
  • 超声波

    2018-10-11 13:44:47
    超声波模块一般用来测量距离,原理是:Trigger平时为低,当给它一个不低于10us的高电平时,输出一个超声波信号,然后等待超声波的反射,当econ引脚接收到信号时,模块给单片机输入一个高电平,我们要做的就是用单片机测量出...

    Arduino And Ultrasonic

    一: Rationale(原理):

    超声波模块一般用来测量距离,原理是:Trigger平时为低,当给它一个不低于10us的高电平时,输出一个超声波信号,然后等待超声波的反射,当econ引脚接收到信号时,模块给单片机输入一个高电平,我们要做的就是用单片机测量出这段时间,然后乘声以速再除二.

    二: 公式

    diatance = (TrigTime 到 EconTime ) * 声速 /2;

    展开全文
  • 超声波超声波超声波超声波超声波超声波超声波
  • 基于STM32超音波测距

    2017-07-12 23:37:29
    基于STM32f103ze,超音波测距,当距离得到LED红灯亮
  • 行进波型超音波马达,此种型式的超声波电机其转子是由一沿着特定方向传递前进的行进波所驱动。虽然驻波型式的超声波电机具有较高的机电转换效率,然而由于行进波型式之超声波电机,可以瞬间改变方向,且体积、重量等...
  • 凡宜EA系列超音波物位计产品手册pdf,凡宜EA系列超音波物位计产品手册,包括产品的简介、规格、电气连接、防爆连接、调试方法、仪表调试、安装要求、订购说明。
  • Arduino智能小车——超声波避障

    万次阅读 多人点赞 2017-09-01 21:17:36
    Arduino智能小车——超声波避障  经过这几篇的测试大家应该对小车有一定的认识了,在实际的操作过程中经常会由于操作不当各种碰壁吧?那这次我们将给小车装上一只“眼睛”,让小车看到障碍,躲避障碍。准备材料...

    Arduino智能小车——超声波避障

    Arduino智能小车系列教程时空门:

    1. Arduino智能小车——拼装篇 点击跳转
    2. Arduino智能小车——测试篇 点击跳转
    3. Arduino智能小车——调速篇 点击跳转
    4. Arduino智能小车——超声波避障 点击跳转
    5. Arduino智能小车——蓝牙小车 点击跳转
    6. Arduino智能小车——循迹篇 点击跳转
    7. Arduino智能小车——小车测速 点击跳转

      经过前几篇的测试大家应该对小车有一定的认识了,在实际的操作过程中经常会由于操作不当各种碰壁吧?那这次我们将给小车装上一只“眼睛”,让小车看到障碍,躲避障碍。

    准备材料

    超声波模块HC-SR04

    SouthEast

      在这里简单说下超声波测距的原理,相信大家也都知道。超声波发射装置发出超声波,它的根据是接收器接到超声波时的时间差,与雷达测距原理相似。 超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

    1. 采用Trig引脚触发,给至少10us的高电平脉冲信号
    2. 模块自动发送8个40kHz的方波,自动检测是否有信号返回
    3. 有信号返回,通过Echo引脚输出一个高电平脉冲,高电平脉冲持续的时间就是超声波从发射到反射返回的时间。距离=(高电平脉冲时间*340)/2。(声音在空气中传播速度为340m/s)
    主要技术参数
    工作电压 DC5V
    静态电流 <2mA
    输出电平 0-5V
    感应角度 ≤15度
    探测距离 2cm-450cm
    最高精度 0.3cm

    ###舵机
      在这里推荐9G舵机SG90,或者其他类似的舵机,这种舵机体积比较小,扭矩虽然不是大, 但是足够带动简易云台,很方便在小车上使用,大家购买时注意舵机的转动角度,有55度的,180度的等等,大家可以根据需要购买。

    SouthEast

    舵机固定架

      舵机固定架的购买一定要配合舵机,所以大家购买的时候注意尺寸哦!!~

    舵机安装

      舵机在安装之前大家一定要记得校准,为什么要校准那,这个跟舵机的工作原理有关。控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。
      舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的:

    SouthEast
    高电平时间 对应位置
    0.5ms 0度
    1.0ms 45度
    1.5ms 90度
    2.0ms 135度
    2.5ms 180度

      也就是说当对舵机输入相同控制信号时,舵机会运动到固定位置,他的动作不是做圆周运动,而是在运动范围内,每一个位置对应一个控制信号。

      因此我们需要在将舵机安装在固定架上之前,需要先将舵机初始化好,舵机一般为三根线:棕色——GND,红色——VCC,橙色——控制信号。因此我们将棕色线接到GND,红色线接到“+5V”引脚,橙色线接到“9”引脚,初始化程序如下:

    #include <Servo.h>  //加入含有舵机控制库的头文件
    
    #define PIN_SERVO 9  //舵机信号控制引脚
    Servo myservo;  
      
    void setup()  
    {  
      myservo.attach(PIN_SERVO);  //舵机初始化
    }  
      
    void loop()  
    {  
      myservo.write(90);  //PWM输出
    } 
    

      在舵机初始化好之后将其安装在固定架上,然后装配在小车上,此时保证超声波模块超前。

    SouthEast

    超声波接线

      估计不少朋友早已经发现板子上的“+5V”和“GND”引脚已经不够用了,这个时候你们可以向我这样焊一个扩展板出来,上面固定两排排针,一排用来扩展“+5V”,一边用来扩展“GND”引脚。

    SouthEast

      超声波模块有四个引脚,“VCC”接到Arduino UNO开发板的“+5V”引脚,“GND”接到开发板“GND”引脚,“Trig”引脚接到开发板“8”引脚,“Echo”引脚接到开发板“7”引脚

    SouthEast

      线太乱了,真的没办法整理,我自己都没眼看。

    代码测试

    #include <Servo.h>
    
    #define STOP      0
    #define FORWARD   1
    #define BACKWARD  2
    #define TURNLEFT  3
    #define TURNRIGHT 4
    
    int leftMotor1 = 16;
    int leftMotor2 = 17;
    int rightMotor1 = 18;
    int rightMotor2 = 19;
    
    int leftPWM = 5;
    int rightPWM = 6;
    
    Servo myServo;  //舵机
    
    int inputPin=7;   // 定义超声波信号接收接口
    int outputPin=8;  // 定义超声波信号发出接口
    
    void setup() {
      // put your setup code here, to run once:
      //串口初始化
      Serial.begin(9600); 
      //舵机引脚初始化
      myServo.attach(9);
      //测速引脚初始化
      pinMode(leftMotor1, OUTPUT);
      pinMode(leftMotor2, OUTPUT);
      pinMode(rightMotor1, OUTPUT);
      pinMode(rightMotor2, OUTPUT);
      pinMode(leftPWM, OUTPUT);
      pinMode(rightPWM, OUTPUT);
      //超声波控制引脚初始化
      pinMode(inputPin, INPUT);
      pinMode(outputPin, OUTPUT);
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      avoidance();
    }
    void motorRun(int cmd,int value)
    {
      analogWrite(leftPWM, value);  //设置PWM输出,即设置速度
      analogWrite(rightPWM, value);
      switch(cmd){
        case FORWARD:
          Serial.println("FORWARD"); //输出状态
          digitalWrite(leftMotor1, HIGH);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, HIGH);
          digitalWrite(rightMotor2, LOW);
          break;
         case BACKWARD:
          Serial.println("BACKWARD"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, HIGH);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, HIGH);
          break;
         case TURNLEFT:
          Serial.println("TURN  LEFT"); //输出状态
          digitalWrite(leftMotor1, HIGH);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, HIGH);
          break;
         case TURNRIGHT:
          Serial.println("TURN  RIGHT"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, HIGH);
          digitalWrite(rightMotor1, HIGH);
          digitalWrite(rightMotor2, LOW);
          break;
         default:
          Serial.println("STOP"); //输出状态
          digitalWrite(leftMotor1, LOW);
          digitalWrite(leftMotor2, LOW);
          digitalWrite(rightMotor1, LOW);
          digitalWrite(rightMotor2, LOW);
      }
    }
    void avoidance()
    {
      int pos;
      int dis[3];//距离
      motorRun(FORWARD,200);
      myServo.write(90);
      dis[1]=getDistance(); //中间
      
      if(dis[1]<30)
      {
        motorRun(STOP,0);
        for (pos = 90; pos <= 150; pos += 1) 
        {
          myServo.write(pos);              // tell servo to go to position in variable 'pos'
          delay(15);                       // waits 15ms for the servo to reach the position
        }
        dis[2]=getDistance(); //左边
        for (pos = 150; pos >= 30; pos -= 1) 
        {
          myServo.write(pos);              // tell servo to go to position in variable 'pos'
          delay(15);                       // waits 15ms for the servo to reach the position
          if(pos==90)
            dis[1]=getDistance(); //中间
        }
        dis[0]=getDistance();  //右边
        for (pos = 30; pos <= 90; pos += 1) 
        {
          myServo.write(pos);              // tell servo to go to position in variable 'pos'
          delay(15);                       // waits 15ms for the servo to reach the position
        }
        if(dis[0]<dis[2]) //右边距离障碍的距离比左边近
        {
          //左转
          motorRun(TURNLEFT,250);
          delay(500);
        }
        else  //右边距离障碍的距离比左边远
        {
          //右转
          motorRun(TURNRIGHT,250);
          delay(500);
        } 
      }
    }
    int getDistance()
    {
      digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2μs
      delayMicroseconds(2);
      digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
      delayMicroseconds(10);
      digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平
      int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间
      distance= distance/58; // 将脉冲时间转化为距离(单位:厘米)
      Serial.println(distance); //输出距离值
     
      if (distance >=50)
      {
        //如果距离小于50厘米返回数据
        return 50;
      }//如果距离小于50厘米小灯熄灭
      else
        return distance;
    }
    

    代码详解

    “Trig”引脚控制超声波发出声波,对应int outputPin=8;
    “Echo”引脚反应接收到返回声波,对应int inputPin=7;

    int inputPin=7;   // 定义超声波信号接收接口
    int outputPin=8;  // 定义超声波信号发出接口
    

    int getDistance()函数解析

    超声波发出引脚“Trig”为高时对外发出超声波,为保证发出10μs声波,因此在发送之前需要将该引脚拉低,并给他一定反应时间。

    digitalWrite(outputPin, LOW); // 使发出发出超声波信号接口低电平2μs
    delayMicroseconds(2);
    

    之后发送10μs超声波

    digitalWrite(outputPin, HIGH); // 使发出发出超声波信号接口高电平10μs,这里是至少10μs
    

    声波发送之后禁止其继续发送,同时开始检测是否反射回来的声波

    digitalWrite(outputPin, LOW); // 保持发出超声波信号接口低电平
      int distance = pulseIn(inputPin, HIGH); // 读出脉冲时间
    

    pulseIn()单位为微秒,声速344m/s,所以距离cm=344100/1000000pulseIn()/2约等于pulseIn()/58.0distance= distance/58; // 将脉冲时间转化为距离(单位:厘米)
    超声波模块工作受物体表面反射程度影响,并且在传播过程中信号强度容易衰减,因此该模块适用的检测距离有限,一般在50cm以内相对正确,而且我们在避障时不需要检测太远的距离,因此超过50cm以上的都按50cm计算

    if (distance >=50)
      {
        //如果距离小于50厘米返回数据
        return 50;
      }//如果距离小于50厘米小灯熄灭
      else
        return distance;
    

    void avoidance()函数解析

    小车前进过程中只检测前方距离障碍的距离,并且控制舵机,保持超声波模块位于正前方。

    motorRun(FORWARD,200);
      myServo.write(90);
      dis[1]=getDistance(); //中间
    

    当检测到小车前方距离障碍距离小于30cm时停车,检测两边距离。

    motorRun(STOP,0);
    

    控制舵机每次运动一个周期后都返回正前方位置。由于舵机运动需要一定的时间,因此在每转过一个角度的时候都延时delay(15),供其运动。

    for (pos = 90; pos <= 150; pos += 1) 
    {
          myServo.write(pos);              // tell servo to go to position in variable 'pos'
          delay(15);                       // waits 15ms for the servo to reach the position
    }
    

    当运动到最左边时检测小车左边距离障碍的距离

    dis[2]=getDistance(); //左边
    

    向右边运动,检测右边距离

    for (pos = 150; pos >= 30; pos -= 1) 
    {
      myServo.write(pos);              // tell servo to go to position in variable 'pos'
      delay(15);                       // waits 15ms for the servo to reach the position
      if(pos==90)
        dis[1]=getDistance(); //中间
    }
    dis[0]=getDistance();  //右边
    

    将前边、左边、右边距离障碍的距离都检测结束之后,舵机回到最初位置。

    for (pos = 30; pos <= 90; pos += 1) 
    {
      myServo.write(pos);              // tell servo to go to position in variable 'pos'
      delay(15);                       // waits 15ms for the servo to reach the position
    }
    

    注意事项

    1.舵机使用时要防止其堵转,因为点击堵转时电流会增大,很容易烧坏舵机。
    2.舵机的红色电源线接入电压一般要大于等于其工作电压,供电不足会导致舵机不停自传。
    3.Arduino 《Servo.h》库里提供的write()函数输出的PWM即为舵机专用的20ms为周期的PWM波,如果使用其他开发板或者函数的话,请务必保证输出方波周期为20ms,否则舵机不会受控制

    总结

      这一篇讲解了舵机和超声波模块的使用方法,舵机在大家以后的开发生涯中应该会经常用到,因此舵机的使用规则(控制周期为20ms)请大家一定要记清楚,在舵机不受控制的时候建议大家可以购买一个舵机测试仪来测试舵机。

    欢迎各位有兴趣的朋友加入Q群1:789127261 点评、交流

    展开全文
  • SonicOperator之超声波

    2017-05-07 19:14:04
    超声波,又称超音波,是指任何声波或振动,其频率超过人类耳朵可以听到的最高阈值20kHz(千赫)。超声波由于其高频特性而被广泛应用于医学、工业等众多领域。某些动物,如犬只、海豚、以及蝙蝠等等都有着超乎人类的...

    超声波,又称超音波,是指任何声波或振动,其频率超过人类耳朵可以听到的最高阈值20kHz(千赫)。超声波由于其高频特性而被广泛应用于医学、工业等众多领域。

    某些动物,如犬只、海豚、以及蝙蝠等等都有着超乎人类的耳朵,也因此可以听到超声波。亦有人利用这个特性制成能产生超声波来呼唤犬只的犬笛。

    所谓超声波,只透过具有弹性与惯性介质,如空气,当空气本身一旦产生膨胀或压缩时,透过其分子的运动而有波动的传拨产生。因此,音波无法在真空中进行传播。人类听觉能察觉波动,称之为声音。此时音波,即称之为可听波。

    展开全文
  • 超声波模块

    2015-05-06 14:50:20
    超声波
  • 超声波测距 超声波测距 超声波测距 超声波测距 超声波测距 超声波测距
  • 超声波原理图

    2013-07-09 17:07:49
    超声波原理图详细的介绍了有关超声波的原理及使用
  • 超声波测距模块 超声波模块 HC-SR04 超声波传感器 Arduino
  • 超声波 不错的资料 超声波测距超声波测距超声波测距
  • 超声波测距

    2018-01-03 22:07:40
    超声波测距
  • APM 超声波

    2017-08-13 15:05:51
    APM 超声波
  • 专门研究超声波应用的美国公司Sonarax表示,他们研究的超声波通信协议很快就会推出。 使用超声波作为通信协议的最大好处之一是改装成本非常低,只要配备麦克风和扬声器的设备可以使用此协议进行连接。这意味着一些...

    我们有现有的通信协议,如Wi-Fi和蓝牙,但您有没有想过可以使用语音制作新的通信协议?专门研究超声波应用的美国公司Sonarax表示,他们研究的超声波通信协议很快就会推出。

    使用超声波作为通信协议的最大好处之一是改装成本非常低,只要配备麦克风和扬声器的设备可以使用此协议进行连接。这意味着一些旧机器将来可以加入万物互联的世界,避免被淘汰。

    Sonarax的应用场景之一是电话和ATM之间的连接。 Sonarax已与多家金融机构合作,研究如何在不影响安全性的情况下改善将ATM连接到手机的体验。 目前,大多数ATM通过NFC连接到移动电话,这意味着移动电话必须靠近ATM才能运行,这非常麻烦。Sonarax软件安装的ATM可以通过扬声器发出的超声波与手机配对。在连接并验证身份后,fun88用户可以通过移动电话操作ATM。

    在安全问题上,Sonarax表示该协议是点对点的,也就是说,在设备编码和解码之间没有直接向服务器发送数据。室内导航可能是一个很棒的应用程序。当然,也许您认为上述使用场景不够吸引人,但这种超声波通信协议也有一个杀手级应用,即室内导航。现在GPS导航在室外的准确度一直很高,但如果你去地铁站,如地铁站,商场,仍然没有。在室内部署可用的电信系统是相当昂贵的。

    利用这种超声波连接协议,导航系统可以更容易地以更低的成本部署在这些地方。例如,如果商场是大海,你和手机都是船,那么海中的每个号角都是一座灯塔。根据Sonarax的说法,新协议不仅可以定位用户的位置,还可以跟踪他们的速度和方向。此外,它所依赖的频率与普通音频相结合,因此可以添加导航系统的扬声器以继续播放音乐和其他公告。

    不仅如此,这种室内导航还可以与增强现实相结合,还有更多的游戏方式。例如,当您使用导航到达商店的前面时,导航系统将在您的手机上触发各种AR效果,显示商店资料,产品推荐等。目前,Sonarax已将此技术应用于博物馆的翻新,不仅用于室内导航,还用于引入各种AR展品。

    高精度,低转换成本的室内导航系统引起了众多投资者的关注。此外,它不受嘈杂环境的影响,不会对医院和飞机上的各种特殊仪器造成电磁干扰。一大特色。根据Sonarax的说法,这种定位系统的位置误差已降至几英里之内,并且它们还在努力增加超声波连接协议可以发送的数据量,从而创造出更多的可能性。

    转载于:https://juejin.im/post/5d073ee76fb9a07eae2a5dce

    展开全文
  • 超声波电路 超声波电路 超声波电路 超声波电路
  • 超声波超声波测距中的应用.
  • 牙刷也能超音波振動

    千次阅读 2007-02-25 18:20:00
    牙刷也能超音波振動Posted ...看看來自牙醫界的趣聞,Ultreo 超音波牙刷正式推出,將牙刷的發展帶入了嶄新的領域。「超音波波浪導引技術」和「配合音波精準的刷毛動作」為這款新世代牙刷的動重點所在。不同於傳統的音
  • 读取多超声波传感器

    万次阅读 2021-01-23 11:59:30
    超声波传感器读取模块1 特性与优势2 使用教程2.1 接线说明2.2 上传协议3 ROS节点使用3.1 下载与配置3.3 常见问题-无串口权限4 更新程序 该模块是一个开源模块,并提供了配套的ROS节点,接收串口上传的数据并发布到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,891
精华内容 8,756
关键字:

超声波