51超聲波測距簡易程式碼
51超聲波測距簡易程式碼
一、基本思路
1、引腳:
Trig
(控制端):控制發出的超聲波訊號
Echo
(接收端):接收反射回來的超聲波訊號
2、計算公式:
測試距離 = ( 高電平時間 x 聲速 (340m/s) ) / 2
二、程式程式碼
//大體程式碼
#include<reg52.h> //按各自主控晶片而定
#include<instrins.h> //_nop_()延時 1us 函式的標頭檔案
#define Trig P1^0 //控制端
#define Echo P1^1 //接收端
typedef unsigned int u16;
typedef unsigned long u32;
u16 distance; //距離 mm為單位
u32 time; //間隔時間 10us為單位
//程式並不全,需要自己補全其他方面的程式碼,只給個核心程式碼
//測量距離
void measure()
{
// 向控制端輸入一個大於10us的脈衝訊號
Trig = 1;
_nop_();
//...省略10個,不要用迴圈執行10次,迴圈每條指令都是佔用時間的(us級別)!
//或者可以自己設計一個執行起來長達10多us的迴圈
Trig = 0;
//等待接收端產生高電平並開時計時
while (!Echo);
time = 0;
while (Echo); //當接收到回傳訊號,接收端置低電平,退出迴圈
distance = (int)(1.7 * time); //(340 * 1000 (mm/s)) * (time * 10 / 1000000 (s)) / 2
}
//定時器0中斷服務函式, 記得定時器模式為方式二
void Timer0_Task() interrupt 1
{
time++; //每自增1代表加10us
}
三、結語
該篇文章並不全面,目的只在於將超聲波的原理轉為實實在在的程式碼實現。
其實,原理固然重要,但是實現又是另一會事,要多培養實踐能力。
(本文參考了 US-100超聲波 使用)
相關文章
- 超聲波測距模組使用
- 超聲波網路 (TCP/IP on Audio)TCP
- 藍橋杯備忘錄——超聲波
- php簡易分頁程式碼PHP
- STM32微控制器連線HC_SR04超聲波模組測距
- 樂Max 2全面詳細評測:全球首款超聲波指紋旗艦
- 統計程式碼行數簡易程式
- 一個不用定時器簡易51呼吸燈定時器
- 簡易版NFT合約程式碼
- bbcode程式碼簡易工具
- 分享大學期間做智慧車的一些資料,包括超聲波測距模組、直流電機控制演算法、MPU6050等等演算法
- margin外邊距疊加簡單程式碼例項
- 全新的清洗時代:智慧無線超聲波洗衣器來了
- 小米5s詳細評測 驍龍821處理器+超聲波指紋識別
- 超聲波模組HC-SR04簡介以及程式設計程式設計
- 用Python操作SFTP的簡易程式碼PythonFTP
- LG智慧電視也想驅蚊!超聲波驅蚊有用嗎
- 超聲波、毫米波、ToF鐳射雷達——在低功耗場景的應用選型
- 高速資料採集卡,在超聲波,雷達測控,電力局放中的應用
- 51行程式碼實現簡單的PHP區塊鏈行程PHP區塊鏈
- 怎樣使你的 JavaScript 程式碼簡單易讀JavaScript
- 一個簡易版的T4程式碼生成
- 200行程式碼寫一個簡易的dva行程
- 51微控制器lcd程式碼
- 3行程式碼實現一個簡易版promise行程Promise
- 如何用簡易程式碼自動生成經典語錄
- 200 行程式碼實現簡易版 2048 遊戲行程遊戲
- 簡易版抽獎小程式
- 基於紅外和超聲波的手動/自動調速風扇系統
- 最簡單的jquery測試程式碼jQuery
- 面試程式碼題(華為)編輯距離面試
- 攝像頭、麥克風、揚聲器測試程式(附原始碼)原始碼
- java程式:簡易撲克牌遊戲Java遊戲
- 將雙手帶入VR世界!Ultrahaptics與MIT合作開設超聲波觸感課程VRAPTMIT
- Linux 下編譯及除錯 C 程式碼的簡易指南Linux編譯除錯
- .NET Core TDD 前傳: 編寫易於測試的程式碼 -- 縫
- Proteus實現簡單51程式的設計與模擬
- Python編寫簡易木馬程式Python