0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MLX90640紅外熱成像傳感器測溫模塊開發(fā)筆記(二)

工程監(jiān)測 ? 來源:工程監(jiān)測 ? 作者:工程監(jiān)測 ? 2022-07-20 09:22 ? 次閱讀

MLX90640 紅外熱成像儀測溫模塊開發(fā)筆記(二)API 移植-I2C 和關(guān)鍵接口函數(shù)

pYYBAGLXWDqAKRptAAhUl2aEAlo676.png穩(wěn)控科技MLX90640 紅外熱成像傳感器

API 說明文件里面有官方的移植指導(dǎo),但我覺得可以把重點放在與 MLX90640 具體操作有關(guān)的幾個函數(shù)上,而與標準 I2C 相關(guān)的函數(shù)和文件結(jié)構(gòu)還是按照自己習(xí)慣的套路實現(xiàn)。這樣更符合我們開發(fā)人員的可控性的習(xí)慣。步驟如下:
(1) 建立標準 I2C 文件 IIC.h 和 IIC.c
用自己的方法實現(xiàn)如下幾個函數(shù)(硬件也好,GPIO 模擬也好),函數(shù)名稱用下面建議的。
void IIC_Init(void); //I2C 接口初始化
void IIC_Start(void); //發(fā)送開始信號
void IIC_Stop(void); //發(fā)送結(jié)束信號
void IIC_SendACK(void); //發(fā)送應(yīng)答信號
void IIC_SendNAK(void); //發(fā)送非應(yīng)答信號unsigned char IIC_RecvACK(void); //讀取應(yīng)答信號unsigned char IIC_RecvData(void); //讀取 1 個字節(jié)void IIC_SendData(char dat); //發(fā)送 1 個字節(jié)
(2) 在工程中引入 MLX90640_API.c
并做如下幾處修改
第一行#include 改為#include
(3) 添加 3 個函數(shù)
void MLX90640_I2CInit(void)
unsigned char MLX90640_I2CRead (unsigned short startAddress, unsigned short nWordsRead, unsigned short *datas)
unsigned char MLX90640_I2CWrite (unsigned short writeAddress, unsigned short word)

void MLX90640_I2CInit(void)
{
IIC_Stop();
}
//從指定地址讀取 n 個字(每個字占用 2 個字節(jié))
unsigned char MLX90640_I2CRead(unsigned short startAddress, unsigned short nWordsRead, unsigned short *datas)
{
unsigned char c1,c2; unsigned short i; unsigned char Msb,Lsb;

Msb=(unsigned char)(startAddress>>8); Lsb=(unsigned char)(startAddress&0x00FF);

IIC_Start(); //發(fā)送起始命令

IIC_SendData(0x66); //發(fā)送設(shè)備地址+寫命令I(lǐng)IC_RecvACK();
IIC_SendData(Msb); //發(fā)送要操作的地址值 2 字節(jié)

IIC_RecvACK();
IIC_SendData(Lsb);
IIC_RecvACK();

IIC_Start(); //發(fā)送起始命令
IIC_SendData(0x67); //發(fā)送設(shè)備地址+讀命令I(lǐng)IC_RecvACK();
for (i=0;i{
c1=IIC_RecvData(); IIC_SendACK();
c2=IIC_RecvData();
if (i==(nWordsRead-1)) IIC_SendNAK();
else
IIC_SendACK();;i++)

datas[i]=c1; datas[i]<<=8; datas[i]|=c2;
}
IIC_Stop(); //發(fā)送停止命令

return 0;
}
//向指定地址寫入 1 個字(2 字節(jié))
unsigned char MLX90640_I2CWrite(unsigned int writeAddress, unsigned int word)
{
IIC_Start(); //發(fā)送起始命令
IIC_SendData(0x66); //發(fā)送設(shè)備地址+寫命令I(lǐng)IC_RecvACK();
IIC_SendData(writeAddress>>8); //發(fā)送要操作的地址值 2 字節(jié)
IIC_RecvACK();
IIC_SendData(writeAddress&0x00FF); IIC_RecvACK();

IIC_SendData(word>>8); IIC_RecvACK();
IIC_SendData(word&0x00FF); IIC_RecvACK();

IIC_Stop(); return 0;

(4)修改 2 個函數(shù)
unsigned char MLX90640_DumpEE(unsigned short *eeData)
{
return MLX90640_I2CRead(0x2400, 832, eeData);
}

unsigned char MLX90640_GetFrameData(unsigned short *frameData)
{
unsigned short statusRegister,controlRegister1;

MLX90640_I2CRead(0x8000, 1, &statusRegister); if (statusRegister&0x0008)//有測量完成的 Frame
{
MLX90640_I2CRead(0x800D, 1, &controlRegister1); MLX90640_I2CWrite(0x8000, statusRegister&(~0x0018)); MLX90640_I2CRead(0x0400, 832, frameData); frameData[832] = controlRegister1;
frameData[833] = statusRegister & 0x0001; return 0;
}
Return -1;
}

至此移植完成
編譯工程,若沒有錯誤提示則基本上沒有問題了,下一篇開始講述如何操作MLX90640。

pYYBAGK6lTGAd79hAAcQSZdFtVQ429.png河北穩(wěn)控科技MLX90640 紅外熱成像成果展示

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2545

    文章

    50445

    瀏覽量

    751035
  • 測溫模塊
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    2845
  • MLX90640
    +關(guān)注

    關(guān)注

    2

    文章

    22

    瀏覽量

    1202
收藏 人收藏

    評論

    相關(guān)推薦

    MLX90640 紅外成像測溫模塊開發(fā)筆記(完整版)

    MLX90640 紅外成像測溫模塊開發(fā)筆記(一)
    的頭像 發(fā)表于 08-01 15:12 ?2462次閱讀
    <b class='flag-5'>MLX90640</b> <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(完整版)

    MLX90640紅外成像測溫傳感器模塊PC端操作教程

    MLX90640 紅外成像測溫傳感器模塊PC端操
    的頭像 發(fā)表于 08-12 14:08 ?3095次閱讀
    <b class='flag-5'>MLX90640</b><b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b>PC端操作教程

    MLX90640紅外成像-紅眼睛相機(中文資料/開發(fā)筆記/測試源碼)

    `以實際項目為主線的開發(fā)筆記,包括了資料準備、中文資料、API移植、成像算法、插值方法等最近用MLX90640搗鼓DIY了個紅外相機,US
    發(fā)表于 10-15 19:18

    RK3288 mlx90640的驅(qū)動開發(fā)描述

    1、mlx90640的驅(qū)動開發(fā)描述mlx90640是一款紅外熱像儀模塊, 32×24 像素, I2C 接口通信,兼容 3.3V/5V 電平。
    發(fā)表于 05-16 10:28

    MLX90640 開發(fā)筆記 成果展示 紅眼睛相機

    MLX90640 開發(fā)筆記 成果展示-紅眼睛相機 原理:幾乎所有利用或者發(fā)射能量的物體在發(fā)生故障前都會產(chǎn)生發(fā)熱現(xiàn)象。保證電氣和機械系統(tǒng)運行可靠性的關(guān)鍵便是對能源的有效管理。現(xiàn)在,紅外成像
    發(fā)表于 06-28 13:45

    基于熱電堆的遠紅外傳感器陣列MLX90640芯片解析

    紅外傳感器陣列MLX90640的像元尺寸為100微米(μm),采用低成本的硅透鏡,設(shè)計非常緊湊。MLX90640工作溫度范圍為:-40°
    發(fā)表于 09-29 15:09 ?1w次閱讀

    紅外傳感器陣列MLX90640的特性和優(yōu)勢分析

    紅外傳感器陣列MLX90640的像元尺寸為100微米(μm),采用低成本的硅透鏡,設(shè)計非常緊湊。MLX90640工作溫度范圍為:-40°
    發(fā)表于 10-08 15:41 ?5850次閱讀

    紅外成像測溫模塊MLX90640開發(fā)筆記(一)

    MLX90640 開發(fā)筆記(一)概述及開發(fā)資料準備 現(xiàn)在自己在做紅外成像儀的越來越多了,兩年前有個井下機電設(shè)備運行狀態(tài)的科研項目,當時使用了
    的頭像 發(fā)表于 07-19 14:50 ?1302次閱讀
    <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>模塊</b><b class='flag-5'>MLX90640</b><b class='flag-5'>開發(fā)筆記</b>(一)

    MLX90640紅外成像測溫模塊開發(fā)筆記(四)

    MLX90640 紅外成像測溫模塊開發(fā)筆記(四)
    的頭像 發(fā)表于 07-22 09:33 ?1181次閱讀
    <b class='flag-5'>MLX90640</b><b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(四)

    MLX90640紅外成像測溫模塊開發(fā)筆記(五)

    MLX90640 的 32*24=768 像素雖然比以往的 8*8 或者 16*8 像素提高了很多,但若直接用這些像素還是不能很好的形成像圖,為了使用這些像素點平滑成像就需要對其進行插值,使用更多的像素來繪制圖像。
    的頭像 發(fā)表于 07-25 09:23 ?954次閱讀
    <b class='flag-5'>MLX90640</b><b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(五)

    MLX90640 紅外成像測溫傳感器模塊開發(fā)筆記(六)

    MLX90640 紅外成像測溫傳感器模塊
    的頭像 發(fā)表于 07-26 09:09 ?1429次閱讀
    <b class='flag-5'>MLX90640</b> <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(六)

    MLX90640 紅外成像測溫傳感器模塊開發(fā)筆記(七)

    MLX90640 紅外成像測溫傳感器模塊
    的頭像 發(fā)表于 07-27 13:41 ?953次閱讀
    <b class='flag-5'>MLX90640</b> <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(七)

    MLX90640 紅外成像測溫傳感器模塊開發(fā)筆記(九)

    MLX90640 紅外成像測溫傳感器模塊
    的頭像 發(fā)表于 07-29 09:46 ?1042次閱讀
    <b class='flag-5'>MLX90640</b> <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(九)

    MLX90640 紅外成像測溫傳感器模塊開發(fā)筆記(十)

    從第一篇開發(fā)筆記到今天最后MLX90640 紅外成像測溫
    的頭像 發(fā)表于 08-01 09:13 ?1184次閱讀
    <b class='flag-5'>MLX90640</b> <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開發(fā)筆記</b>(十)

    MLX90640 紅外成像測溫傳感器 手機連接操作詳細

    河北穩(wěn)控科技MLX90640 紅外成像測溫傳感器 ?手機 APP 軟件 RedEye 連接
    的頭像 發(fā)表于 08-10 10:03 ?3468次閱讀
    <b class='flag-5'>MLX90640</b> <b class='flag-5'>紅外</b><b class='flag-5'>熱</b><b class='flag-5'>成像</b>儀<b class='flag-5'>測溫</b><b class='flag-5'>傳感器</b> 手機連接操作詳細