找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2536|回復(fù): 0
收起左側(cè)

arduino超聲波測(cè)距程序

[復(fù)制鏈接]
ID:891089 發(fā)表于 2021-4-25 10:39 | 顯示全部樓層 |閱讀模式
#define TrigPin 2
#define EchoPin 3

float Value_cm;

void setup()
{
    Serial.begin(9600);
    pinMode(TrigPin, OUTPUT);
    pinMode(EchoPin, INPUT);
}
void loop()
{
    digitalWrite(TrigPin, LOW); //低高低電平發(fā)一個(gè)短時(shí)間脈沖去TrigPin
    delayMicroseconds(2);
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(TrigPin, LOW);
    Value_cm = float( pulseIn(EchoPin, HIGH) * 17 )/1000; //將回波時(shí)間換算成cm
    //讀取一個(gè)引腳的脈沖(HIGH或LOW)。例如,如果value是HIGH,pulseIn()會(huì)等待引腳變?yōu)镠IGH,開始計(jì)時(shí),再等待引腳變?yōu)長(zhǎng)OW并停止計(jì)時(shí)。
    //返回脈沖的長(zhǎng)度,單位微秒。如果在指定的時(shí)間內(nèi)無脈沖函數(shù)返回。
    //此函數(shù)的計(jì)時(shí)功能由經(jīng)驗(yàn)決定,長(zhǎng)時(shí)間的脈沖計(jì)時(shí)可能會(huì)出錯(cuò)。計(jì)時(shí)范圍從10微秒至3分鐘。(1秒=1000毫秒=1000000微秒)
    //接收到的高電平的時(shí)間(us)* 340m/s / 2 = 接收到高電平的時(shí)間(us) * 17000 cm / 1000000 us = 接收到高電平的時(shí)間 * 17 / 1000  (cm)

    Serial.print(Value_cm);
    Serial.println("cm");
    delay(1000);
}
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表