STM32学习笔记-单总线类传感器

一、红外遥控工作原理讲解

1、光的基础知识

  • 光的本质:光的本质是电磁波,其传播本质上是一种粒子振动。广义上,光是指所有的电磁波谱。狭义上的光是人类眼睛可以看见的一种电磁波,也称可见光。
  • 光的波长:是指波在一个振动周期内传播的距离。光的波长由光的频率以及传播的介质决定,光通过不同介质的时候,频率不变而波长发生改变
  • 光的颜色: 是由它的波长来决定的,各种颜色有各自的波长,人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。

在这里插入图片描述

2、红外线

  • 可见光:光整个电磁波谱包括了无线电波、红外线、紫外线以及X射线等。它们的波长不同,其中波长在380~760纳米之间就是一般的可见光。依次为红、橙、黄、绿、青、蓝、紫。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。

  • 红外线:是波长介于微波与可见光之间的电磁波,波长在1mm到760纳米(nm)之间,比红光长的非可见光。

    高于绝对零度(-273.15℃)的物质都可以产生红外线。现代物理学称之为热射线。我们把红光之外的辐射叫做红外线(紫光之外是紫外线),人的肉眼不可见。
    在这里插入图片描述

3、红外通信

3.1、无线远程遥控技术

又称为遥控技术,是指实现对被控目标的遥远控制,在工业控制、航空航天、家电领域应用广泛。

  • 红外遥控:
    是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机和手机系统中。

  • 红外通讯
    就是通过红外线传输数据。发射器发出红外信号,接收器接收到信号进行解析。
    在这里插入图片描述

3.2、红外遥控器

红外遥控器是利用一个红外发光二极管,以红外光为载体来将按键信息传递给接收端的设备。红外光对于人眼是不可见的,因此使用红外遥控器不会影响人的视觉(可以打开手机摄像头,遥控器对着摄像头按,可以看到遥控器发出的红外光)。

  • 信号调制:
    日常生活环境中有很多红外光源,太阳、蜡烛火光、白炽灯、甚至是我们的身体。这些红外光源都可能会对我们的接收设备产生干扰,为了屏蔽干扰,只接收有效信息,我们就需要用到调制。
    通过调制我们可以把指定的数字信号转换为特定频率的红外光进行发送,调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz
    在这里插入图片描述
3.3、红外接受器

红外线接收器是一种可以接收红外信号并能独立完成从红外线接收到输出与TTL电平信号兼容的器件,体积和普通的塑封三极管差不多,适合于各种红外线遥控和红外线数据传输。

  • 信号解调:
    解调就是将模拟信号转换成数字信号。红外接收器接收到外部发射器传过来的红外信号后,会按照固定的协议去解析信号,并转换成数字信号输出。
    在这里插入图片描述
3.4、NEC协议详解

在这里插入图片描述
NEC协议特点

  • 8 位地址码, 8 位命令码
  • 完整发射两次地址码和命令码,以提高可靠性
  • 脉冲时间长短调制方式
  • 38KHz 载波频率
  • 位时间 1.12ms 或 2.25ms
    在这里插入图片描述

二、红外遥控实例讲解

红外电路分析
在这里插入图片描述

1、CubeMx配置

1.1、串口配置

在这里插入图片描述

1.2、管脚设置

外部中断
在这里插入图片描述

1.3、时钟配置

在这里插入图片描述
在这里插入图片描述

1.4、开启中断

在这里插入图片描述
在这里插入图片描述

2、代码详解

2.1、配置SYSTICK

在这里插入图片描述
在这里插入图片描述

2.2、调试信息

在这里插入图片描述

2.3、调用红外键值函数

在这里插入图片描述
按键码和反码判断
在这里插入图片描述
在这里插入图片描述

2.4、按键中断

在这里插入图片描述
在这里插入图片描述

三、DS18B20温度传感器工作原理

1、DS18B20技术性能特征

  • ①、 独特的单总线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。大大提高了系统的抗干扰性。
  • ② 、测温范围 -55℃~+125℃,精度为±0.5℃。
  • ③、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个, 实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
  • ④、 工作电源: 3.0~5.5V/DC (可以数据线寄生电源)。
  • ⑤ 、在使用中不需要任何外围元件。 ⑥、 测量结果以9~12位数字量方式串行传送。

2、DS18B20硬件连接

在这里插入图片描述

3、DS18B20通信类型

  • 单总线是一种半双工通信方式
  • DS18B20共有6种信号类型:
    复位脉冲、应答脉冲、写0、写1、读0和读1。
    所有这些信号,除了应答脉冲以外,都由主机发出同步信号。并且发送所有的命令和数据都是字节的低位在前。
3.1、复位脉冲

单总线上的所有通信都是以初始化序列开始。主机输出低电平,保持低电平时间至少480 us,,以产生复位脉冲。接着主机释放总线,4.7K的上拉电阻将单总线拉高,延时15~60 us,并进入接收模式(Rx)。接着DS18B20拉低总线60~240 us,以产生低电平应答脉冲。
在这里插入图片描述

3.2、写时序

写时序包括写0时序和写1时序。所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,两种写时序均起始于主机拉低总线。

  • 写0时序:主机输出低电平,延时60us,然后释放总线,延时2us。
  • 写1时序:主机输出低电平,延时2us,然后释放总线,延时60us。
    在这里插入图片描述
3.3、读时序

单总线器件仅在主机发出读时序时,才向主机传输数据,所以,在主机发出读数据命令后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在2次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起,至少拉低总线1us。主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。

  • 典型的读时序过程为:主机输出低电平延时2us,然后主机转入输入模式延时12us,然后读取单总线当前的电平,然后延时50us。
    在这里插入图片描述

4、温度读取过程

DS18B20的典型温度读取过程为:

  • 复位
  • 发SKIP ROM命令(0XCC)
  • 发开始转换命令(0X44)
  • 复位
  • 发送SKIP ROM命令(0XCC)
  • 发读存储器命令(0XBE)
  • 连续读出两个字节数据(即温度)
  • 结束

5、温度数据的存储

在这里插入图片描述
转化后得到的11位数据,存储在18B20的两个8比特的RAM中, MSB的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反再乘于0.0625即可得到实际 温度。

例如+125℃的数字输出为07D0H,-25.0625℃的数字输出为FE6FH

四、DS18B20温度温度采集实验

1、CubeMx配置

1.1、管脚配置

将温度传感器对应的管脚配置为输出
在这里插入图片描述

1.2、串口配置

在这里插入图片描述

1.3、时钟配置

在这里插入图片描述
在这里插入图片描述

2、代码详解

2.1、DS18B20传感器函数封装

在这里插入图片描述

2.2、复位功能

在这里插入图片描述
在这里插入图片描述

2.3、检测函数

检测BS18B20是否存在
在这里插入图片描述

2.4、写操作函数

在这里插入图片描述

2.5、读操作函数

在这里插入图片描述

2.6、读取温度函数

在这里插入图片描述

2.7、温度读取

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值