導航:首頁 > 製冷設備 > 超聲波模塊用什麼程序

超聲波模塊用什麼程序

發布時間:2025-01-06 23:52:23

Ⅰ HC-SR04超聲波測距模塊使用方法和常式

HC-SR04超聲波測距模塊是一種基於超聲波原理的感測器,用於測量物體間的距離,廣泛應用於機器人、智能設備和智能家居。本文主要講解其使用方法和基本示例。

該模塊由VCC、Trig、Echo和GND四根引腳構成,VCC和GND分別為電源正負極,Trig負責觸發超聲波發射,Echo則接收回波。工作原理是,當Trig接高電平發送40kHz脈沖後,等待回波,Echo接收到信號後,Arino會計算回波時間,利用公式(distance = ration * 0.034 / 2)得出距離值,單位為厘米。

以下是一個基礎的Arino示例:首先,設置Trig和Echo的引腳模式;在loop()函數中,發送超聲波脈沖,等待回波,計算並輸出距離到串口;在setup()中,配置引腳並開啟串口通信。這個程序能幫助你理解模塊的實際操作。

通過學習和實踐,HC-SR04能有效提升你的嵌入式物聯網項目能力。如果你正在尋找更全面的學習資源,我建議你點擊鏈接獲取150多G的學習資料,涵蓋嵌入式物聯網的各個方面,助你快速提升專業技能。雖然沒有直接提及關注、轉發,但這份資源將會是你學習道路上的重要支持。

Ⅱ 超聲波模塊如何把數據傳輸給單片機

超聲波與單片機之間的數據,並不是直接由超聲波模塊發送給單片機的,而是單片機通過超聲波一個觸發信號,從而得到超聲波的響應,根據這個響應來計算距離。
可以給給你一個程序,這個程序同時測試了兩個超聲波,你可以根據情況選一個,刪一個,顯示採用的是數碼管顯示,可以根據自己情況改寫。
#include <reg52.H> //器件配置文件
#include <intrins.h>

unsigned int time=0;
unsigned int times=0;
unsigned long S=0;

sbit la=P1^0;
sbit wela=P1^1;

sbit echo =P1^3; //echo
sbit tring =P1^2; //trig

sbit echo2 = P1^5;
sbit tring2 = P1^4;
sbit beep = P3^6;
bit stat = 1;
unsigned int beep_cnt = 0;
unsigned char flag = 0;
unsigned char qianwei1,wei1,shiwei1,gewei1;
unsigned char qianwei2,wei2,shiwei2,gewei2;
unsigned char aa = 0;
unsigned char leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
};
unsigned char leddatadot[] = {
0xbf, //"0"
0x86, //"1"
0xdb, //"2"
0xcf, //"3"
0xef, //"4"
0xed, //"5"
0xfd, //"6"
0x87, //"7"
0xFF, //"8"
0xEF, //"9"
};

void Display(unsigned long num);

void Conut(void){
unsigned short aa;
aa = 65535;
time= aa * times + TH0 * 256 + TL0;
times = 0;
TH0=0;
TL0=0;
S = (time * 1.845) / 100;
}

void init(){
TMOD=0x11;
TH0=0;
TL0=0;
ET0=1;
TR0=0;
EA=1;
}
void delay(unsigned char z){
int i, j;
for(i = 0; i < z; i++)
for(j = 0; j < 210; j++)
;
}
void start(){
if(flag % 2){
TH0 = 0;
TL0 = 0;
tring = 1;
delay(10);
tring = 0;
}else{
TH0 = 0;
TL0 = 0;
tring2 = 1;
delay(10);
tring2 = 0;
}
}
void beep_act(unsigned int a){
unsigned char i;

if(a < 40){
for(i = 0; i < 30; i++){
beep = 1;
delay(1);
beep = 0;
delay(1);
}
}else
if(a < 140){
for(i = 0; i < 3; i++){
beep = 1;
delay(1);
beep = 0;
delay(1);
}
}

}
void main(void){
init();
while(1){
start();
if(flag % 2){
while(!echo);
TR0=1;
while(echo);
TR0=0;
}else{
while(!echo2);
TR0=1;
while(echo2);
TR0=0;
}
Conut();
Display(S);
if(flag % 2)
beep_act(S);
flag++;
}
}
void Display(unsigned long num){
if(!(flag % 2)){
qianwei1 = num / 1000;
wei1 = (num / 100) % 10;
shiwei1 = (num / 10) % 10;
gewei1 = num % 10;
}else{
qianwei2 = num / 1000;
wei2 = (num / 100) % 10;
shiwei2 = (num / 10) % 10;
gewei2 = num % 10;
}
for(aa = 0; aa < 20; aa++){
wela=1;
P2=0xfe;
wela=0;
la=1;
P0 = leddata[qianwei2];
la=0;
delay(1);

wela=1;
P2=0xfd;
wela=0;
la=1;
P0=leddatadot[wei2];
la=0;
delay(1);

wela=1;
P2=0xfb;
wela=0;
la=1;
P0 = leddata[shiwei2];
la=0;
delay(1);

wela=1;
P2=0xf7;
wela=0;
la=1;
P0=leddata[gewei2];
la=0;
delay(1);
//behind led
wela=1;
P2=0xef;
wela=0;
la=1;
P0 = leddata[qianwei1];
la=0;
delay(1);

wela=1;
P2=0xdf;
wela=0;
la=1;
P0=leddatadot[wei1];
la=0;
delay(1);
wela=1;
P2=0xbf;
wela=0;
la=1;
P0 = leddata[shiwei1];
la=0;
delay(1);

wela=1;
P2=0x7f;
wela=0;
la=1;
P0=leddata[gewei1];
la=0;
delay(1);
}
}
/********************************************************/
void zd0() interrupt 1 {
TH0 = 0;
TL0 = 0;
times++;
}

閱讀全文

與超聲波模塊用什麼程序相關的資料

熱點內容
科魯澤車儀表盤怎麼操作 瀏覽:957
機床用什麼通訊比較穩定 瀏覽:130
如圖所示的實驗裝置能用來研究 瀏覽:994
咸陽液壓傳動裝置 瀏覽:521
一年前買的機械如何入賬 瀏覽:945
聞對電器設備起什麼作用 瀏覽:717
機械能的差值等於什麼 瀏覽:400
螢石雲賬號怎麼與設備 瀏覽:449
熱水器的排氣閥門兒是哪個 瀏覽:136
叉車工作裝置液壓系統的設計 瀏覽:26
設備裝配圖如何畫 瀏覽:961
對夾閥門用什麼法蘭陪 瀏覽:866
降水使用什麼閥門 瀏覽:878
廣聯達消防閥門套用什麼定額 瀏覽:62
分離軸承和分泵一體的空氣怎麼排 瀏覽:628
凱恩帝機床怎麼連接電腦 瀏覽:344
污水處理小試實驗裝置怎麼設計 瀏覽:293
哪些明星做過儀器減肥 瀏覽:49
製冷機報E101什麼故障 瀏覽:42
福建亞峰五金製品有限公司 瀏覽:310