IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 超声波模块使用介绍 -> 正文阅读

[嵌入式]超声波模块使用介绍

超声波模块

型号:HC-SR04

在这里插入图片描述

产品介绍:

超声波测距模块是用来测量距离的一种产品,通过发送和收超声波,利用时间差和声音传播速度, 计算出模块到前方障碍物的距离

在这里插入图片描述

手上的是老版本

应用注意事项:

1:此模块不宜带电连接,如果要带电连接,则先让模块的 GND 端先连接。否则会影响模块工作。

2:测距时,被测物体的面积不少于 0.5 平方米且要尽量平整。否则会影响测试结果。

接口定义:

VCC:5V电源

GND:接地

Trig:控制端

Echo:接收端

工作原理:

在这里插入图片描述

1、采用IO触发测距,给至少10us的高电平信号,实际40-50uS效果好
2、模块自动发送8个40KHz的方波
3、有信号返回,通过lO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间
4、测试距离=(高电平时间*声速(340M/S))/2

本产品使用方法:控制口发一个 10US 以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,就可以达到你移动测量的值了。

接线参考:

模块除了两个电源引脚外,还有TRIG,ECHO引脚,这两个引脚分别接我们开发板的P1.5和 P1.6端口

代码时序:

  1. 怎么让它发送波 Trig :给Trig端口至少10us的高电平
  2. 怎么知道它开始发了:Echo信号由低电平跳转到高电平,表示开始发送波
  3. 怎么知道接收了返回波:Echo由高电平跳转回低电平,表示波回来了
  4. 怎么算时间: Echo引脚维持高电平的时间!波发出去的那一下,开始启动定时器波回来的那一下,我们开始停止定时器,计算出中间经过多少时间
  5. 怎么算距离:距离 = 速度 (340m/s)* 时间/2,时间单位是us
#include <REGX52.H>
#include "Timer0.h"		//定时器TH0和TL0初始化为0,TR0为0,后面根据时序开启TR0

sbit LED1 = P3^7;
sbit LED2 = P3^6;

sbit Trig = P1^5;
sbit Echo = P1^6;

/**
  * @brief延时10us
  * @param无
  * @retval无
  */
void Delay10us()		//@11.0592MHz
{
	unsigned char i;
	i = 2;
	while (--i);
}

/**
  * @brief 触发信号
  * @param无
  * @retval无
  */
void Trig_Start()
{
	Trig = 0;
	Trig = 1;
	Delay10us();
	Trig = 0;
}

void main()
{
	double time;				//时间
	double distance;			//距离
	Timer0Init();
	while(1)
	{
		Trig_Start();			//发送触发信号
		
		Echo = 0;
		while(Echo == 0);		//Echo信号,由低电平跳转到高电平,表示开始发送波
		TR0 = 1;				//开启定时器	
		while(Echo == 1);		//Echo信号,由高电平跳转回低电平,表示波回来了
		TR0 = 0;				//停止定时器
		time = (TH0*256+TL0)*1.085;		//计算出Echo口高电平的时间,单位是us
		//distance = 340m/s*time/2,声音的传播速率是340m/s,要统一单位
		//340m/s = 34000cm/s = 34cm/ms = 0.034cm/us	,	0.034cm/us/2 =0.017cm/us; 
		distance = time*0.017;
		if(distance < 20)		//距离小于20cm
		{
			LED1 = 0;
			LED2 = 1;
		}
		else
		{
			LED1 = 1;
			LED2 = 0;
		}
		TH0 = 0;				//重新置0,为下一次测距作准备
		TL0 = 0;
	}
}

注意:

11.0592MHz的晶振频率的机器周期是1.085us,计算方法:12 * 1/110592Hz = 1.085us

12MHz的晶振频率的机器周期是1us

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:39:38  更:2022-07-17 16:43:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 14:08:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码