目 錄
超聲波是一種振動頻率超過20kHz的機械波,沿直線方向傳播,傳播方向性好,傳播距離也較遠,在介質中傳播時遇到障礙物就會產生反射波。此外,模塊本身體積小,易于在任何機器人項目中使用,并提供2厘米至400厘米(約1英寸至13英尺)之間出色的非接觸范圍檢測,精度為3mm。工作電壓為5伏。由于超聲波的以上特點,因此被廣泛地應用于物體距離的測量中。
HC-SR04一款設計有超聲波發射探頭、接收探頭、信號放大集成電路等超聲波模塊模塊共四個引腳,VCC為5V供電,Trig為觸發信號輸入,Echo為回響信號輸出,GND為電源地。
實現功能
在扔垃圾之前,用手或其他障礙物放在超聲波傳感器之前,當距離15cm時,舵機轉動,實現蓋子翻起。指示燈亮,蜂鳴器發生。在10秒后,舵機回到原位,蓋子蓋上。
VCC | HC-SR04電源接口,接Arduino上的5V引腳 |
Trig (Trigger) | 向外界觸發超聲波脈沖,接引腳12 |
Echo | 回響信號輸出。當接收到反射信號時,引腳產生一個脈沖。脈沖的長度與檢測發射信號所需的時間成正比,接引腳11 |
GND | HC-SR04接地引腳,接Arduino GND |
工作原理
Arduino給超聲波模塊Trig引腳10μs以上的脈沖觸發信號,模塊內部自動發送8個40kHz的聲音脈沖,一旦檢測到反射信號,即輸出回響信號(Echo引腳)使設備的“超聲特征”變得獨一無二,從而使接收器能夠將發射模式與環境超聲噪聲區分開,回響信號脈沖寬度與被測距離成正比。如果這些脈沖沒有被反射回來,則回波信號將在38毫秒(38毫秒)后超時并返回低電平。
電路連接
控制代碼
#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); }