標(biāo)題: arduino超聲波測距程序 [打印本頁]

作者: 美琴的備胎    時間: 2021-4-25 10:39
標(biāo)題: arduino超聲波測距程序
#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ā)一個短時間脈沖去TrigPin
    delayMicroseconds(2);
    digitalWrite(TrigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(TrigPin, LOW);
    Value_cm = float( pulseIn(EchoPin, HIGH) * 17 )/1000; //將回波時間換算成cm
    //讀取一個引腳的脈沖(HIGH或LOW)。例如,如果value是HIGH,pulseIn()會等待引腳變?yōu)镠IGH,開始計時,再等待引腳變?yōu)長OW并停止計時。
    //返回脈沖的長度,單位微秒。如果在指定的時間內(nèi)無脈沖函數(shù)返回。
    //此函數(shù)的計時功能由經(jīng)驗決定,長時間的脈沖計時可能會出錯。計時范圍從10微秒至3分鐘。(1秒=1000毫秒=1000000微秒)
    //接收到的高電平的時間(us)* 340m/s / 2 = 接收到高電平的時間(us) * 17000 cm / 1000000 us = 接收到高電平的時間 * 17 / 1000  (cm)

    Serial.print(Value_cm);
    Serial.println("cm");
    delay(1000);
}





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1