学习GY906(GY906 |
您所在的位置:网站首页 › od模块红色 › 学习GY906(GY906 |
目录 模块介绍 工作原理: 代码介绍: 1.一些宏定义: 2.起始条件与终止条件: 3.发送一个字节: 4.发送一位: 5.接收一个字节: 6.接收一位: 7.初始化 8. 读取数据: 9.计算接收字节: 10,计算并返回温度值: 11.主函数: 演示: 模块介绍GY906是一款红外热像仪传感器模块,可测量目标物体的温度,常用于非接触式温度测量和温度控制,GY906采用了MLX90614红外热敏传感器芯片和SMBus数字接口协议。 可以测量的温度范围是-40℃至85℃ 而答主我学习的模块是GY906-DCI,采用了I2C数字接口协议通信,所以学习该模块的时候可以与IIC进行比较学习。 引脚: VCC: 供电引脚,输入电压范围为3.3-5V。 GND: 地线引脚,连接地线。 SDA: 数据引脚,用于传输数据。 SCL: 时钟引脚,用于同步数据传输。 工作原理:GY906红外温度模块是一种基于热电偶原理的红外温度测量模块。它可以快速测量目标物体离开模块一定距离处的温度。 该模块内置了一个MLX90614型红外温度传感器,该传感器由杜邦公司生产。MLX90614利用红外线向目标物体发射电磁辐射,然后快速测量被测目标的温度。电磁辐射通过一个双电荷制电磁感应元件(DPP)进入传感器,该元件检测红外能量,并产生一个电荷,该电荷随后被放大并转换为数字输出。MLX90614还集成了一些其他的芯片和组件,如温度补偿电路、电源调节器、EEPROM等,能够提供更加准确和稳定的测量结果。 GY906红外温度模块利用STM32等微处理器,通过I2C/SMBus接口与MLX90614进行通信,可以读取基础温度、环境温度和目标温度等信息。 代码介绍:为了方便与IIC比较学习,每个代码我会借用江科大的IIC的时序图,以下有关IIC时序的图片皆来自江科大 1.一些宏定义: #include "mlx90614.h" /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ #define ACK 0 //应答 #define NACK 1 //无应答 #define SA 0x00 //Slave address 单个MLX90614时地址为0x00,多个时地址默认为0x5a #define RAM_ACCESS 0x00 //RAM access command RAM存取命令 #define EEPROM_ACCESS 0x20 //EEPROM access command EEPROM存取命令 #define RAM_TOBJ1 0x07 //To1 address in the eeprom 目标1温度,检测到的红外温度 -70.01 ~ 382.19度 #define SMBUS_PORT GPIOB //PB端口(端口和下面的两个针脚可自定义) #define SMBUS_SCK GPIO_Pin_6 //PB6:SCL #define SMBUS_SDA GPIO_Pin_7 //PB7:SDA #define RCC_APB2Periph_SMBUS_PORT RCC_APB2Periph_GPIOB #define SMBUS_SCK_H() SMBUS_PORT->BSRR = SMBUS_SCK //置高电平 #define SMBUS_SCK_L() SMBUS_PORT->BRR = SMBUS_SCK //置低电平 #define SMBUS_SDA_H() SMBUS_PORT->BSRR = SMBUS_SDA #define SMBUS_SDA_L() SMBUS_PORT->BRR = SMBUS_SDA #define SMBUS_SDA_PIN() SMBUS_PORT->IDR & SMBUS_SDA //读取引脚电平 2.起始条件与终止条件: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |