其他分享
首页 > 其他分享> > 毕业设计(一)

毕业设计(一)

作者:互联网

1. SMBus配置

/* 1.安装工具包 */
pi@rasberrypi:~s sudo apt-get install libi2c-dev i2c-tools

/* 2.查看smbus.h文件路径 */
pi@rasberrypi:~s find / -name smbus.h
/usr/include/i2c/smbus.h

/* 3.查看liblic库的安装路径 */
pi@rasberrypi:~s whereis libi2c
libi2c: /usr/lib/arm-linux-gnueabihf/libi2c.so

/* 4.在Qt Creator .pro文件添加头文件路径和动态链接库 */
INCLUDEPATH += /usr/include/i2c
LIBS += /usr/lib/arm-linux-gnueabihf/libi2c.so

/* 5.编写应用程序,引入"C"头文件 */
extern "C"
{
    #include <smbus.h>
}

2.  MLX90614温度传感器介绍

2.1 电路设计

2.2 使用说明

  MLX90614传感器ROM和RAM只有部分地址允许改写,可通过SMBus接口读和写,通过配置这些寄存器设置MLX90614。简单整理如表1-1、表1-2所示,具体参考MLX90614技术手册。

表1-1 RAM

RAM

名字

功能

地址

TOmax

测量物体温度上限设定

000h

TOmin

测量物体温度下限设定

001h

PWMCTRL

PWM设定

002h

Ta范围

环境温度设定

003h

发射率校准系数

0.1-1

004h

配置寄存器1

配置寄存器设定

005h

SMBus地址

器件地址设定

00Eh

表1-2 ROM

ROM

名字

功能

地址

TA

环境温度

006h

Tobj1

物体温度

007h

  首先要确定MLX90614从器件地址,默认地址是0x5a,也可以通过i2cdetect -y 1命令查看MLX90614器件地址。其次要测试的物体不同,发射率也不同,在测试之前要设置被测对象的发射率校准系数,人体的发射率为0.95左右,查看表1-1,向004h地址的寄存器写入0xF332数据即可配置成人体发射率系数。最后读取物体温度寄存器获取温度数据并转换为实际温度,查看表1-2,007h地址保存物体温度数据,根据官方技术手册提供的简易计算公式 tempature = data*0.02 - 237.15 获得实际温度。(考虑环境温度,进行补偿比较准确)

3.  代码实现

#include "mlx90614.h"
#include <linux/i2c-dev.h>
#include <sys/ioctl.h>
#include <fcntl.h>
extern "C"
{
    #include <smbus.h>
}

#define MLX90614_ADDR 0x5A
#define MLX90614_BODY_ADDR 0x07
#define MLX90614_REVISE_ADDR 0x04
#define MLX90614_REVISE_EMISSIVITY 0xF332

int smbusFd;

int Mlx90614Init()
{
    smbusFd = open("/dev/i2c-1", O_RDWR);
    if(smbusFd < 0)
    {
        return -1;
    }

    if(ioctl(smbusFd, I2C_SLAVE, MLX90614_ADDR) < 0)
    {
        return -1;
    }

    i2c_smbus_write_word_data(smbusFd, MLX90614_REVISE_ADDR, MLX90614_REVISE_EMISSIVITY);

    return 0;
}

double GetTempature()
{
    double temp;
    double tempature;
    temp = i2c_smbus_read_word_data(smbusFd, MLX90614_BODY_ADDR);
    tempature = temp*0.02 - 273.15;
    return tempature;
}

标签:i2c,ADDR,MLX90614,地址,毕业设计,smbusFd,include
来源: https://blog.csdn.net/qq_40723777/article/details/118277369