15-传感器开发

发布于:2025-05-17 ⋅ 阅读:(19) ⋅ 点赞:(0)

一、超声波

1、超声波传感器

产品特点:

        HC-SR04 超声波测距模块可提供 2cm-400cm 的非接触式距离感测功能, 测距精度可达高到 3mm;模块包括超声波发射器、接收器与控制电路.

工作原理:

(1)采用 IO 口 TRIG 触发测距,给最少 10us 的高电平信号。

(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;

(3)有信号返回, 通过 IO 口 ECHO 输出一个高电平, 高电平持续的时间就是超声

波从发射到返回的时间。 测量距离=(高电平时间*声速(340M/S))/2;

2、超声波引脚说明

触发信号输入:TRIG(STM32做输出  超声波做输入)

回响信号输出:ECHO(STM32做输入  超声波做输出)

3、超声波框架分析

时序图

测量距离=(高电平时间*声速(340M/S))/2

超声波测量距离步骤

a.STM32发送启动信号

b.测ECHO的高电平持续时间

c.通过公式计算测量距离

4、超声波代码编写思路

1、 先找两个引脚,连接超声波, PA2 – TRIG(触发信号)  PA3 – ECHO(回响信号), 并初始化

PA2做为普通输出

PA3做为普通输入

2、 设置定时器3,计一个数用时1us, 可计最大数为50000,且不用中断(不用设置NVIC)

TIM_TimeBaseInitTypeDef  TIM_TimeBaseInitStruct;

//1、能定时器时钟

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

TIM_TimeBaseInitStruct.TIM_Prescaler = 84-1;   // 84分频 84MHZ/84 = 1MHZ

TIM_TimeBaseInitStruct.TIM_Period = 50000-1; //(其实计不到这么多数) TIM_TimeBaseInitStruct.TIM_CounterMode = TIM_CounterMode_Up; // 向上计数

TIM_TimeBaseInitStruct.TIM_ClockDivision= TIM_CKD_DIV1; // 分频因子

//2、初始化定时器,配置ARR,PSC

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStruct);

//5,不使能定时器

TIM_Cmd(TIM3, DISABLE);

3、 根据下面代码框架,完成距离测量

//PA2输出低电平

delay_us(8);

//PA2输出高电平

delay_us(20); //至少10us

//PA2输出低电平

//设置定时器的CNT为0  TIM3->CNT = 0

//PA3等待高电平到来,参考按键松开代码 while( 读电平 == 0 );

//使能定时器开始计数

//PA3等待低电平到来,while( 读电平 == 1);

//获取定时器CNT值,从而得到高电平持续时间    temp = TIM3->CNT;

//关闭定时器

//通过公式计算出超声波测量距离

下面是整个工程的源码

https://download.csdn.net/download/m0_63622771/90835726

二、DHT11(温湿传感器)

1、DHT11概述

VCC   -- 电源正极

DATA  -- 数据传输线

NC    -- 无连接

GND   -- 电源地

2、串行接口 (单线双向)

DATA线用于微处理器与 DHT11之间的通讯,采用单总线数据格式,一次通讯时间(数据传输)4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

一次完整的数据传输为40bit(5个字节, DHT11向MCU传40位数据),高位先出。

高位先出:

假设传感发送的数据: 1 1 1 0 1 0 1 0 (先出来左边数据)

合成字节:0 1 0 1 0 1 1 1 (低位先出),比较少见,红外接受器有这样的情况

合成字节: 1 1 1 0 1 0 1 0 (高位先出)

 

数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据

+8bit校验和

    数据传送正确时校验和数据=8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据

3、启动信号

总得来讲,STM32先发送启动信号,DHT11回发响应信号,然后DH11再连续发送40位数据(8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和)

4、数据位表示

5、温湿传感器源码:

https://download.csdn.net/download/m0_63622771/90835748


网站公告

今日签到

点亮在社区的每一天
去签到