导航:首页 > 制冷设备 > 超声波模块用什么程序

超声波模块用什么程序

发布时间: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++;
}

阅读全文

与超声波模块用什么程序相关的资料

热点内容
机床用什么通讯比较稳定 浏览:130
如图所示的实验装置能用来研究 浏览:994
咸阳液压传动装置 浏览:521
一年前买的机械如何入账 浏览:945
闻对电器设备起什么作用 浏览:717
机械能的差值等于什么 浏览:400
萤石云账号怎么与设备 浏览:449
热水器的排气阀门儿是哪个 浏览:136
叉车工作装置液压系统的设计 浏览:26
设备装配图如何画 浏览:961
对夹阀门用什么法兰陪 浏览:866
降水使用什么阀门 浏览:878
广联达消防阀门套用什么定额 浏览:62
分离轴承和分泵一体的空气怎么排 浏览:628
凯恩帝机床怎么连接电脑 浏览:344
污水处理小试实验装置怎么设计 浏览:293
哪些明星做过仪器减肥 浏览:49
制冷机报E101什么故障 浏览:42
福建亚峰五金制品有限公司 浏览:310
青岛三钢电动工具有限公司 浏览:992