目 錄
超聲波是一種振動(dòng)頻率超過20kHz的機(jī)械波,沿直線方向傳播,傳播方向性好,傳播距離也較遠(yuǎn),在介質(zhì)中傳播時(shí)遇到障礙物就會(huì)產(chǎn)生反射波。此外,模塊本身體積小,易于在任何機(jī)器人項(xiàng)目中使用,并提供2厘米至400厘米(約1英寸至13英尺)之間出色的非接觸范圍檢測,精度為3mm。工作電壓為5伏。由于超聲波的以上特點(diǎn),因此被廣泛地應(yīng)用于物體距離的測量中。
HC-SR04一款設(shè)計(jì)有超聲波發(fā)射探頭、接收探頭、信號放大集成電路等超聲波模塊模塊共四個(gè)引腳,VCC為5V供電,Trig為觸發(fā)信號輸入,Echo為回響信號輸出,GND為電源地。
實(shí)現(xiàn)功能
在扔垃圾之前,用手或其他障礙物放在超聲波傳感器之前,當(dāng)距離15cm時(shí),舵機(jī)轉(zhuǎn)動(dòng),實(shí)現(xiàn)蓋子翻起。指示燈亮,蜂鳴器發(fā)生。在10秒后,舵機(jī)回到原位,蓋子蓋上。
VCC | HC-SR04電源接口,接Arduino上的5V引腳 |
Trig (Trigger) | 向外界觸發(fā)超聲波脈沖,接引腳12 |
Echo | 回響信號輸出。當(dāng)接收到反射信號時(shí),引腳產(chǎn)生一個(gè)脈沖。脈沖的長度與檢測發(fā)射信號所需的時(shí)間成正比,接引腳11 |
GND | HC-SR04接地引腳,接Arduino GND |
工作原理
Arduino給超聲波模塊Trig引腳10μs以上的脈沖觸發(fā)信號,模塊內(nèi)部自動(dòng)發(fā)送8個(gè)40kHz的聲音脈沖,一旦檢測到反射信號,即輸出回響信號(Echo引腳)使設(shè)備的“超聲特征”變得獨(dú)一無二,從而使接收器能夠?qū)l(fā)射模式與環(huán)境超聲噪聲區(qū)分開,回響信號脈沖寬度與被測距離成正比。如果這些脈沖沒有被反射回來,則回波信號將在38毫秒(38毫秒)后超時(shí)并返回低電平。
電路連接
控制代碼
#include <Servo.h> Servo myservo; int trig=12; int echo=11; int led13=13; int led3=3; void setup(){ myservo.attach(9); Serial.begin(9600); pinMode(echo,INPUT); pinMode(trig,OUTPUT); pinMode(led13,OUTPUT); pinMode(led3,OUTPUT); } void loop(){ myservo.write(0); long val=0; digitalWrite(trig,HIGH); delayMicroseconds(15); digitalWrite(trig,LOW); val=pulseIn(echo,HIGH); float S=val/58.00; if(S<15){ myservo.write(100); digitalWrite(led13,HIGH); digitalWrite(led3,HIGH); } delay(10000); S=0; digitalWrite(led13,LOW); digitalWrite(led3,LOW); }