欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9098|回復: 5
收起左側

超聲波測距程序及調試

[復制鏈接]
ID:77967 發表于 2015-6-2 21:00 | 顯示全部樓層 |閱讀模式
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);
}


燒載完成后打開串口窗口,保證電路的接線正確,把模塊平行對著被測物體,可以看到上圖所示的測距距離。來看一下代碼: pulseIn(EchoPin, HIGH),此函數是計算EchoPin的高電平時間,先將引腳拉高,開始計時,直到該引腳變為低電平為止,單位為ms,如果超出還沒讀取到的話,將返回0.
cm = pulseIn(EchoPin, HIGH) / 58.0;可能很多人會問為什么要除以58.0呢,聲速是340m/s換算一下就是函數返回的值是ms,1s=1000ms,cm=t/1000*34/2=0.017*t=t/58.8,所以會有除以58.0.大家敲完代碼測試出結果了是不是很高興,但是,仔細想一想,聲音要是在真空是什么情況,原來真空下聲音是不能傳播的,在不同溫度和壓強下的聲速是不一樣的

評分

參與人數 1黑幣 +50 收起 理由
admin + 50

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2015-6-2 22:24 來自觸屏版 | 顯示全部樓層
要是有圖片就更好了
回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:82869 發表于 2015-6-13 10:30 | 顯示全部樓層
再詳細點就更好了
回復

使用道具 舉報

ID:83149 發表于 2015-6-16 13:48 | 顯示全部樓層
嗯!樓主說的很對,昨天剛剛看到超聲波避障,但還沒有看到LCD輸出顯示部分。其中就講到聲音傳播速度會受到溫度和密度的影響,但是日常使用中也就是個大概值,誤差可以忽略。
回復

使用道具 舉報

ID:84605 發表于 2015-7-2 18:58 | 顯示全部樓層
    是應該更詳細些。也沒有說明使用的元器件。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表