37種傳感器(二)之超聲波傳感器模塊+Stduino Nano&UNO
本文轉載自:www點stduino點com/forum.php?mod=viewthread&tid=24&extra=
說明:
超聲波測距原理簡析:
超聲波傳感器能夠發(fā)射超聲波并接收反射回的超聲波信號。利用發(fā)射與接收的時間差以及傳播速度(即聲速,聲音在空氣中傳播的速度約為340m/s)即可計算傳感器到障礙物體的距離。單片機向超聲波傳感器發(fā)送脈沖,超聲波傳感器被此脈沖觸發(fā)后會產生一個40 kHz的脈沖電信號,通過激勵換能器處理以后,轉換成機械振動,頻率約在20 kHz以上,由此形成了超聲波。
該信號經錐形“輻射口”處將超聲波信號發(fā)射出去。接收器接收到反射回來的超聲波信號后,將超聲波變成微弱的電振蕩,并將信號進行放大,就可得到所需的脈沖信號,此脈沖信號再返回給單片機。
超聲波傳感器.jpg (2.6 MB, 下載次數: 79)
下載附件
2020-6-29 21:50 上傳
實驗目的:
利用HC-SR04超聲波傳感器測量到目標物體的距離,并利用串口通信窗口顯示。 具體而言,在模塊trig端輸出一個至少10us的高電平信號,則該模塊內部將循環(huán)發(fā)射8個40KHz頻率的脈沖;若檢測由回波信號,則會在echo端產生高電平信號。
器材:
Stduino Uno/Nano、超聲波傳感器HC-SR04、杜邦線4根 電路連接:
電路連接.jpg (207.5 KB, 下載次數: 71)
下載附件
2020-6-29 22:55 上傳
代碼展示:
- int trig = 8;//Trig端
- int echo = 9;//Echo端
- void setup()
- {
- // put your setup code here, to run once:
- pinMode(echo,INPUT);
- pinMode(trig,OUTPUT);
- Serial.begin(9600);
- }
- void loop()
- {
- // put your main code here, to run repeatedly:
- unsigned long time = 0;
- while(1){
- digitalWrite(trig,HIGH);
- delayMicroseconds(15);//需要大于10
- digitalWrite(trig,LOW);
- time = pulseIn(echo,HIGH);//高電平傳回超聲波從發(fā)射到接收所經過的時間。
- float S = time/58.00; //使用浮點計算出距離,單位為cm,time除以58是由速度乘以時間換算而來
- Serial.println(S);
- S = 0;
- time = 0;
- delay(500);
- }
- }
復制代碼
|