日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

arduino教程-08.超声波的应用

發(fā)布時(shí)間:2023/12/29 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 arduino教程-08.超声波的应用 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

topic

      • 2.1 認(rèn)識(shí)超聲波
      • 2.2 影響聲音傳播速度的因素
      • 2.3 超聲波傳感器簡(jiǎn)介
      • 2.4 實(shí)驗(yàn)
        • 任務(wù)1:使用超聲波傳感器制作數(shù)字量尺
          • 測(cè)量脈沖持續(xù)時(shí)間的pulseln()函數(shù)
      • 2.5 hc-sr04超聲波傳感器

超聲波選型指南

2.1 認(rèn)識(shí)超聲波

可在空氣中傳播的超聲波頻率,大約介于20~200KHz之間,其衰減程度與頻率成正比(即頻率越高,傳播距離越短)
在室溫20°C的環(huán)境中,聲波的傳輸速度約為344m/s(**聲音在水中傳播的速度比在空氣快60倍),因此,假設(shè)超聲波往返的時(shí)間為600μs,可通過(guò)公式:距離=344米/秒×傳播時(shí)間2距離 = 344米/秒 \times \frac{傳播時(shí)間}{2}=344/×2時(shí)? 求得:被測(cè)物的距離為10.3cm。

2.2 影響聲音傳播速度的因素

  • 空氣的密度會(huì)影響聲音的傳播速度,空氣的密度越高,聲音的傳播速度越快,而空氣的密度又與溫度密切相關(guān),考慮溫度變化的聲音傳播速度的近似公式:
    速度=V0+0.6×T速度 = V_0 + 0.6 \times T =V0?+0.6×T
    其中,V0V_0V0?:聲音在0攝氏度時(shí)的傳播速度331.5米/秒。T:溫度
  • 物體的形狀和材質(zhì)會(huì)影響超聲波傳感器的效果和準(zhǔn)確度,探測(cè)表面平整的墻壁和玻璃時(shí),聲波將會(huì)入射角度反射回來(lái);只要物體表面的坑洞尺寸小于聲波波長(zhǎng)的14\frac{1}{4}41?,即可視為平整表面。波長(zhǎng)計(jì)算公式:
    波長(zhǎng)=相速度頻率波長(zhǎng) = \frac{相速度}{頻率} 長(zhǎng)=?
  • 2.3 超聲波傳感器簡(jiǎn)介

    超聲波傳感器模塊上面通常有兩個(gè)超聲波元器件,一個(gè)用于發(fā)射,一個(gè)用于接收。電路板上有4個(gè)引腳:VCC(正極)、Trig(觸發(fā))、Echo(回應(yīng))、GND(接地),主要參數(shù):

    • 工作電壓與電流 :5V、15mA。
    • 感測(cè)距離 :2~400cm
    • 感測(cè)角度:不大于15°。
    • 被測(cè)物的面積不要小于50cm2并且盡量平整。
    • 具備溫度補(bǔ)償電路。
      在超聲波模塊的觸發(fā)腳位輸入10微妙以上的高電位,即可發(fā)射超聲波,發(fā)射超聲波之后,與接收到傳回的超聲波之前,“響應(yīng)”腳位呈現(xiàn)高電位。因此,程序可從“響應(yīng)”腳位的高電位脈沖持續(xù)時(shí)間,換算出被測(cè)物的距離。

    2.4 實(shí)驗(yàn)

    任務(wù)1:使用超聲波傳感器制作數(shù)字量尺

    實(shí)驗(yàn)說(shuō)明: 使用超聲波感測(cè)與障礙物之間的距離,顯示在串口監(jiān)視器或LCD模塊。
    實(shí)驗(yàn)材料:

    名稱數(shù)量
    超聲波傳感器1個(gè)
    測(cè)量脈沖持續(xù)時(shí)間的pulseln()函數(shù)

    Arduino提供一個(gè)測(cè)量脈沖時(shí)間長(zhǎng)度的pulseln()函數(shù),語(yǔ)法格式:

  • Syntax
    pulseIn(pin, value)
    pulseIn(pin, value, timeout)
    此函數(shù)將傳回微妙單位的脈沖時(shí)間,建議用unsigned long類型的變量來(lái)存放。
    pulseln()函數(shù)會(huì)等待脈沖出現(xiàn)再開(kāi)始計(jì)時(shí),預(yù)設(shè)的等待截止時(shí)間是1秒(即10610^6106微秒),假如脈沖信號(hào)未在等待時(shí)間內(nèi)出現(xiàn),pulseln()將傳回0.假如有需要,指定timeout的值為10微秒~3分鐘的等待截止時(shí)間。
    如果想要測(cè)量信號(hào)的頻率,可以采用Martin Nawrath開(kāi)發(fā)的頻率計(jì)時(shí)器擴(kuò)展庫(kù)“FreqCounter”。

  • Parameters
    pin: the number of the pin on which you want to read the pulse. (int)
    value: type of pulse to read: either HIGH or LOW. (int)

  • timeout (optional): the number of microseconds to wait for the pulse to start; default is one second (unsigned long)
    實(shí)驗(yàn)程序:

    const byte trigPin = 10; const int echoPin = 9; unsigned long d; unsigned long ping() {digitalWrite(trigPIN, HIGH);delayMicroseconds(5);digitalWrite(trigPin, LOW);return pulseln(echoPin, HIGH); } void setup() {pinMode(trigPin, OUTPUT);pinMode(echoPin, INPUT);Serial.begin(9600); }void loop(){d = ping() / 58;Serial.print(d);Serial.print("cm");Serial.println();delay(1000); }

    2.5 hc-sr04超聲波傳感器

    HC-SR04超聲波傳感器使用聲納來(lái)確定物體的距離。它提供了非常好的非接觸范圍檢測(cè),準(zhǔn)確度高,讀數(shù)穩(wěn)定,易于使用,尺寸從2厘米到400厘米或1英寸到13英尺不等。
    其操作不受陽(yáng)光或黑色材料的影響,盡管在聲學(xué)上,柔軟的材料(如布料等)可能難以檢測(cè)到。它配有超聲波發(fā)射器和接收器模塊。

  • 技術(shù)規(guī)格
  • 指標(biāo)參考
    電源+ 5V DC
    靜態(tài)電流<2mA
    工作電流15mA
    有效角度<15°
    測(cè)距距離2厘米-400厘米/1英寸-13英尺
    分辨率0.3厘米
    測(cè)量角度30度
  • 必需的組件
    你將需要以下組件:
    • 1 × Breadboard 面包板
    • 1 × Arduino Uno R3
    • 1 × 超聲波傳感器(HC-SR04)
  • Arduino代碼
  • const int pingPin = 7; // Trigger Pin of Ultrasonic Sensor const int echoPin = 6; // Echo Pin of Ultrasonic Sensorvoid setup() {Serial.begin(9600); // Starting Serial Terminal }void loop() {long duration, inches, cm;pinMode(pingPin, OUTPUT);digitalWrite(pingPin, LOW);delayMicroseconds(2);digitalWrite(pingPin, HIGH);delayMicroseconds(10);digitalWrite(pingPin, LOW);pinMode(echoPin, INPUT);duration = pulseIn(echoPin, HIGH);inches = microsecondsToInches(duration);cm = microsecondsToCentimeters(duration);Serial.print(inches);Serial.print("in, ");Serial.print(cm);Serial.print("cm");Serial.println();delay(100); }long microsecondsToInches(long microseconds) {return microseconds / 74 / 2; }long microsecondsToCentimeters(long microseconds) {return microseconds / 29 / 2; }
  • 代碼說(shuō)明
    超聲波傳感器有四個(gè)端子:+5V,Trigger,Echo和GND,連接如下:超聲波傳感器有四個(gè)端子:+5V,Trigger,Echo和GND,連接如下:
    • 將+5V引腳連接到Arduino板上的+5v。
    • 將Trigger連接到Arduino板上的數(shù)字引腳7。
    • 將Echo連接到Arduino板上的數(shù)字引腳6。
    • 將GND連接到Arduino上的GND。

    在我們的程序中,我們通過(guò)串口顯示了傳感器測(cè)量的距離,單位為英寸和厘米。
    結(jié)果,你將在Arduino串口監(jiān)視器上看到傳感器測(cè)量的距離,單位為英寸和厘米。

    總結(jié)

    以上是生活随笔為你收集整理的arduino教程-08.超声波的应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。