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