arduino超声波测距接线图详细_arduino——超声波测距仪(笔记)
脈沖寬度測量函數
pulseIn()
pulse 是脈搏的意思,音標[p?ls],怕了死,脈搏停了就死了。(記憶力越來越差了,只能采用一些特殊的方法記憶)
pulseIn(pin,value,timeout)
pin,引腳
value,讀取的脈沖類型,分為HIGH和LOW
timeout,超時時長單位為微秒,數據類型為長整型。
超聲波測距儀工作原理
超聲波可以理解為一種聲波,聲音在空氣中傳播,碰到障礙物立即返回,聲音的速度為340米/秒,那么根據時間可以計算發射點到障礙物的距離。
S=340*t(時間,單位為秒)/2
除以2的意思是聲波一來一回等于走了兩趟。
image.png
image.png
線路圖
image.png
(由于沒有這個超聲波測距儀,就沒有貼實物圖)
代碼部分
由于沒有實物,所以盡量將注釋寫清楚,來熟悉工組原理。
/*
SRO4超聲波傳感器驅動
*/
const int TrigPin = 2;//設置2號數字引腳為觸發引腳
const int EchoPin = 3;//設置3號數字引腳為接收引腳
float distance;//定義距離為浮點型數據
void setup() {
//初始化串口信息以及連接SRO4的引腳
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);//設置輸出引腳此處為2
pinMode(EchoPin,INPUT);//檢測3號引腳輸入的脈沖寬度,需要先設置為輸入狀態
}
void loop() {
//制作一個10微秒的高頻脈沖觸發2號引腳,超聲波測距儀觸發至少需要10微秒的高電平信號
digitalWrite(TrigPin,LOW);//先設置為低電平
delayMicroseconds(2);//持續2微秒
digitalWrite(TrigPin,HIGH);//設置為高電平
delayMicroseconds(10);//持續10微秒
digitalWrite(TrigPin,LOW);//再設置為低電平,這樣模擬出了脈沖信號
distance = pulseIn(EchoPin,HIGH)/58;//返回的是脈沖寬度/58得到實際距離
delay(1000);
總結
以上是生活随笔為你收集整理的arduino超声波测距接线图详细_arduino——超声波测距仪(笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 效率神器----QuickLook
- 下一篇: SAP中实现所见即所得的打印功能操作方法