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

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

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

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

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

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

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

API 說(shuō)明文件里面有官方的移植指導(dǎo),但我覺(jué)得可以把重點(diǎn)放在與 MLX90640 具體操作有關(guān)的幾個(gè)函數(shù)上,而與標(biāo)準(zhǔn) I2C 相關(guān)的函數(shù)和文件結(jié)構(gòu)還是按照自己習(xí)慣的套路實(shí)現(xiàn)。這樣更符合我們開(kāi)發(fā)人員的可控性的習(xí)慣。步驟如下:
(1) 建立標(biāo)準(zhǔn) I2C 文件 IIC.h 和 IIC.c
用自己的方法實(shí)現(xiàn)如下幾個(gè)函數(shù)(硬件也好,GPIO 模擬也好),函數(shù)名稱(chēng)用下面建議的。
void IIC_Init(void); //I2C 接口初始化
void IIC_Start(void); //發(fā)送開(kāi)始信號(hào)
void IIC_Stop(void); //發(fā)送結(jié)束信號(hào)
void IIC_SendACK(void); //發(fā)送應(yīng)答信號(hào)
void IIC_SendNAK(void); //發(fā)送非應(yīng)答信號(hào)unsigned char IIC_RecvACK(void); //讀取應(yīng)答信號(hào)unsigned char IIC_RecvData(void); //讀取 1 個(gè)字節(jié)void IIC_SendData(char dat); //發(fā)送 1 個(gè)字節(jié)
(2) 在工程中引入 MLX90640_API.c
并做如下幾處修改
第一行#include 改為#include
(3) 添加 3 個(gè)函數(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 個(gè)字(每個(gè)字占用 2 個(gè)字節(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è)備地址+寫(xiě)命令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;
}
//向指定地址寫(xiě)入 1 個(gè)字(2 字節(jié))
unsigned char MLX90640_I2CWrite(unsigned int writeAddress, unsigned int word)
{
IIC_Start(); //發(fā)送起始命令
IIC_SendData(0x66); //發(fā)送設(shè)備地址+寫(xiě)命令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 個(gè)函數(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)//有測(cè)量完成的 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;
}

至此移植完成
編譯工程,若沒(méi)有錯(cuò)誤提示則基本上沒(méi)有問(wèn)題了,下一篇開(kāi)始講述如何操作MLX90640。

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

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

    關(guān)注

    2551

    文章

    51099

    瀏覽量

    753606
  • 測(cè)溫模塊
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    2852
  • MLX90640
    +關(guān)注

    關(guān)注

    2

    文章

    22

    瀏覽量

    1232
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    MLX90640 紅外成像測(cè)溫模塊開(kāi)發(fā)筆記(一)
    的頭像 發(fā)表于 08-01 15:12 ?2589次閱讀
    <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'>測(cè)溫</b><b class='flag-5'>模塊</b><b class='flag-5'>開(kāi)發(fā)筆記</b>(完整版)

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

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

    【正點(diǎn)原子STM32H7R3開(kāi)發(fā)套件試用體驗(yàn)】+MLX90640成像

    測(cè)量,幫助監(jiān)測(cè)異常和預(yù)防故障。本次使用RA6T2開(kāi)發(fā)板讀取MLX90640紅外測(cè)溫傳感器的溫度
    發(fā)表于 12-17 22:41

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

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

    RK3288 mlx90640的驅(qū)動(dòng)開(kāi)發(fā)描述

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

    基于熱電堆的遠(yuǎn)紅外傳感器陣列MLX90640芯片解析

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

    遠(yuǎn)紅外傳感器陣列MLX90640的特性和優(yōu)勢(shì)分析

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

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

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

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

    MLX90640 紅外成像測(cè)溫模塊開(kāi)發(fā)筆記(四)
    的頭像 發(fā)表于 07-22 09:33 ?1230次閱讀
    <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'>測(cè)溫</b><b class='flag-5'>模塊</b><b class='flag-5'>開(kāi)發(fā)筆記</b>(四)

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

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

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

    MLX90640 紅外成像測(cè)溫傳感器模塊
    的頭像 發(fā)表于 07-26 09:09 ?1481次閱讀
    <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'>測(cè)溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開(kāi)發(fā)筆記</b>(六)

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

    MLX90640 紅外成像測(cè)溫傳感器模塊
    的頭像 發(fā)表于 07-27 13:41 ?990次閱讀
    <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'>測(cè)溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開(kāi)發(fā)筆記</b>(七)

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

    MLX90640 紅外成像測(cè)溫傳感器模塊
    的頭像 發(fā)表于 07-29 09:46 ?1084次閱讀
    <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'>測(cè)溫</b><b class='flag-5'>傳感器</b><b class='flag-5'>模塊</b><b class='flag-5'>開(kāi)發(fā)筆記</b>(九)

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

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

    MLX90640 紅外成像測(cè)溫傳感器 手機(jī)連接操作詳細(xì)

    河北穩(wěn)控科技MLX90640 紅外成像測(cè)溫傳感器 ?手機(jī) APP 軟件 RedEye 連接
    的頭像 發(fā)表于 08-10 10:03 ?3625次閱讀
    <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'>測(cè)溫</b><b class='flag-5'>傳感器</b> 手機(jī)連接操作詳細(xì)