找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 9760|回復(fù): 21
打印 上一主題 下一主題
收起左側(cè)

STM32f103zet6+AMG8833的熱成像例程

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"
  7. #include "asm88xx.h"


  8. low range of the sensor (this will be blue on the screen)
  9. #define MINTEMP 15

  10. high range of the sensor (this will be red on the screen)
  11. #define MAXTEMP 29

  12. #define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))

  13. const uint16_t camColors[] = {0x480F,
  14. 0x400F,0x400F,0x400F,0x4010,0x3810,0x3810,0x3810,0x3810,0x3010,0x3010,
  15. 0x3010,0x2810,0x2810,0x2810,0x2810,0x2010,0x2010,0x2010,0x1810,0x1810,
  16. 0x1811,0x1811,0x1011,0x1011,0x1011,0x0811,0x0811,0x0811,0x0011,0x0011,
  17. 0x0011,0x0011,0x0011,0x0031,0x0031,0x0051,0x0072,0x0072,0x0092,0x00B2,
  18. 0x00B2,0x00D2,0x00F2,0x00F2,0x0112,0x0132,0x0152,0x0152,0x0172,0x0192,
  19. 0x0192,0x01B2,0x01D2,0x01F3,0x01F3,0x0213,0x0233,0x0253,0x0253,0x0273,
  20. 0x0293,0x02B3,0x02D3,0x02D3,0x02F3,0x0313,0x0333,0x0333,0x0353,0x0373,
  21. 0x0394,0x03B4,0x03D4,0x03D4,0x03F4,0x0414,0x0434,0x0454,0x0474,0x0474,
  22. 0x0494,0x04B4,0x04D4,0x04F4,0x0514,0x0534,0x0534,0x0554,0x0554,0x0574,
  23. 0x0574,0x0573,0x0573,0x0573,0x0572,0x0572,0x0572,0x0571,0x0591,0x0591,
  24. 0x0590,0x0590,0x058F,0x058F,0x058F,0x058E,0x05AE,0x05AE,0x05AD,0x05AD,
  25. 0x05AD,0x05AC,0x05AC,0x05AB,0x05CB,0x05CB,0x05CA,0x05CA,0x05CA,0x05C9,
  26. 0x05C9,0x05C8,0x05E8,0x05E8,0x05E7,0x05E7,0x05E6,0x05E6,0x05E6,0x05E5,
  27. 0x05E5,0x0604,0x0604,0x0604,0x0603,0x0603,0x0602,0x0602,0x0601,0x0621,
  28. 0x0621,0x0620,0x0620,0x0620,0x0620,0x0E20,0x0E20,0x0E40,0x1640,0x1640,
  29. 0x1E40,0x1E40,0x2640,0x2640,0x2E40,0x2E60,0x3660,0x3660,0x3E60,0x3E60,
  30. 0x3E60,0x4660,0x4660,0x4E60,0x4E80,0x5680,0x5680,0x5E80,0x5E80,0x6680,
  31. 0x6680,0x6E80,0x6EA0,0x76A0,0x76A0,0x7EA0,0x7EA0,0x86A0,0x86A0,0x8EA0,
  32. 0x8EC0,0x96C0,0x96C0,0x9EC0,0x9EC0,0xA6C0,0xAEC0,0xAEC0,0xB6E0,0xB6E0,
  33. 0xBEE0,0xBEE0,0xC6E0,0xC6E0,0xCEE0,0xCEE0,0xD6E0,0xD700,0xDF00,0xDEE0,
  34. 0xDEC0,0xDEA0,0xDE80,0xDE80,0xE660,0xE640,0xE620,0xE600,0xE5E0,0xE5C0,
  35. 0xE5A0,0xE580,0xE560,0xE540,0xE520,0xE500,0xE4E0,0xE4C0,0xE4A0,0xE480,
  36. 0xE460,0xEC40,0xEC20,0xEC00,0xEBE0,0xEBC0,0xEBA0,0xEB80,0xEB60,0xEB40,
  37. 0xEB20,0xEB00,0xEAE0,0xEAC0,0xEAA0,0xEA80,0xEA60,0xEA40,0xF220,0xF200,
  38. 0xF1E0,0xF1C0,0xF1A0,0xF180,0xF160,0xF140,0xF100,0xF0E0,0xF0C0,0xF0A0,
  39. 0xF080,0xF060,0xF040,0xF020,0xF800,};

  40. float temp;
  41. float pixels[AMG88xx_PIXEL_ARRAY_SIZE];
  42. uint16_t arrColor[64];

  43. float map(float val, float I_Min, float I_Max, float O_Min, float O_Max)
  44. {
  45.     return(val/(I_Max-I_Min)*(O_Max-O_Min) + O_Min);
  46. }
  47. void show(uint16_t *pBuf)
  48. {        u8 i=0;
  49.          u8 j=0;
  50.         u16 colorr1=0;
  51.                         for(j=0;j<8;j++)
  52.                 {
  53.                         for(i=0;i<8;i++)
  54.                         {                                
  55.                         LCD_Fill(i*40,j*40,(i*40)+40,(j*40)+40,arrColor[colorr1]);
  56.                                 colorr1++;
  57.                         }
  58.           }
  59.         

  60. }void pull_color(float *pPixel)
  61. {
  62.         uint8_t i;
  63.         
  64.         for(i = 0; i < 64; i ++)
  65.         {
  66.                 if(pPixel[i] < 10)
  67.                 {
  68.                         arrColor[i] = BLUE;
  69.                 }
  70.                 else if(pPixel[i] < 20)
  71.                 {
  72.                         arrColor[i] = BLUE;
  73.                 }
  74.                 else if(pPixel[i] < 25)
  75.                 {
  76.                         arrColor[i] = GREEN;
  77.                 }
  78.                 else if(pPixel[i] < 30)
  79.                 {
  80.                         arrColor[i] = RED;
  81.                 }
  82.                 else if(pPixel[i] < 35)
  83.                 {
  84.                         arrColor[i] = BRRED;
  85.                 }               
  86.         }
  87. }


  88. int main(void)
  89. {         
  90.         delay_init();                     //延時函數(shù)初始化         
  91.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);         //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  92.         uart_init(115200);                 //串口初始化為115200
  93.          LED_Init();                             //LED端口初始化
  94.         LCD_Init();  
  95.   amg88xx_init();
  96.          
  97.           while(1)
  98.         {               
  99.    amg88xx_readPixels(pixels, 64);
  100.    pull_color(pixels);
  101.                 show(arrColor);
  102.                 LED0=!LED0;               
  103.         }
  104. }
復(fù)制代碼

全部資料51hei下載地址:
AMG8833識別成功.7z (225.07 KB, 下載次數(shù): 319)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏14 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:384489 發(fā)表于 2020-5-18 16:35 | 只看該作者
感覺很不錯,學(xué)習(xí)了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:762925 發(fā)表于 2020-5-27 21:49 | 只看該作者
我來學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

地板
ID:770122 發(fā)表于 2020-6-5 10:48 | 只看該作者
謝謝樓主分享,正需要這個東西
回復(fù)

使用道具 舉報(bào)

5#
ID:819036 發(fā)表于 2020-9-14 20:43 | 只看該作者
求助,AMG引腳INT和ADO要怎么連o(╥﹏╥)o
回復(fù)

使用道具 舉報(bào)

6#
ID:819036 發(fā)表于 2020-9-15 14:02 | 只看該作者
本帖最后由 719439150 于 2020-9-15 16:16 編輯

pixels數(shù)組中存儲的是溫度嗎,為什么我調(diào)用pixels        
while(1)
        {
               
                amg88xx_readPixels(pixels, 64);
                for(t=0;t<=63;t++)
                {
                        printf("%d %f\r\n",t,pixels[t]);
                        delay_ms(100);
                }
}  
串口輸出后除了pixels[0]以外其他全是63.75,求大佬解惑
回復(fù)

使用道具 舉報(bào)

7#
ID:778512 發(fā)表于 2020-9-26 15:52 | 只看該作者
719439150 發(fā)表于 2020-9-15 14:02
pixels數(shù)組中存儲的是溫度嗎,為什么我調(diào)用pixels        
while(1)
        {

請問大佬這個問題解決了嗎。我也遇到了,望賜教
回復(fù)

使用道具 舉報(bào)

8#
ID:400726 發(fā)表于 2020-10-6 19:02 | 只看該作者
719439150 發(fā)表于 2020-9-15 14:02
pixels數(shù)組中存儲的是溫度嗎,為什么我調(diào)用pixels        
while(1)
        {

我也遇到這個問題了,大佬怎么解決
回復(fù)

使用道具 舉報(bào)

9#
ID:698988 發(fā)表于 2020-10-9 20:16 | 只看該作者
719439150 發(fā)表于 2020-9-15 14:02
pixels數(shù)組中存儲的是溫度嗎,為什么我調(diào)用pixels        
while(1)
        {

多回復(fù)ACK了
回復(fù)

使用道具 舉報(bào)

10#
ID:698988 發(fā)表于 2020-10-9 20:23 | 只看該作者
首先感謝樓主的分享。
一次性讀取64個溫度時,應(yīng)答了兩次,所以第一個數(shù)正確,其它返回值都是FF。應(yīng)刪去讀字節(jié)中的應(yīng)答即可。
回復(fù)

使用道具 舉報(bào)

11#
ID:657190 發(fā)表于 2020-10-11 21:55 來自手機(jī) | 只看該作者
719439150 發(fā)表于 2020-9-15 14:02
pixels數(shù)組中存儲的是溫度嗎,為什么我調(diào)用pixels        
while(1)
        {

兄弟我也是這樣,你解決了嗎,
回復(fù)

使用道具 舉報(bào)

12#
ID:210511 發(fā)表于 2020-11-22 23:48 來自手機(jī) | 只看該作者
可以運(yùn)行成功嗎
回復(fù)

使用道具 舉報(bào)

13#
ID:337139 發(fā)表于 2020-11-25 13:56 | 只看該作者
青天有月 發(fā)表于 2020-10-11 21:55
兄弟我也是這樣,你解決了嗎,

同問,這個我也碰到了。
回復(fù)

使用道具 舉報(bào)

14#
ID:634558 發(fā)表于 2021-4-7 16:49 | 只看該作者
根據(jù)上面兩樓大佬的回復(fù),把a(bǔ)sm88xx.c里第73行的應(yīng)答注釋掉,應(yīng)該就能正常工作了
回復(fù)

使用道具 舉報(bào)

15#
ID:232129 發(fā)表于 2021-4-9 10:44 | 只看該作者
正在學(xué)習(xí),收到的值為00 正在找原因
回復(fù)

使用道具 舉報(bào)

16#
ID:854025 發(fā)表于 2022-6-29 16:41 | 只看該作者
能正常顯示溫度,但是圖像顯示出現(xiàn)了問題,這是什么原因呢,是通過修改pPixe后面的數(shù)字大小來修正圖像顯示嗎?
回復(fù)

使用道具 舉報(bào)

17#
ID:981841 發(fā)表于 2023-6-9 10:39 | 只看該作者
2900015021 發(fā)表于 2022-6-29 16:41
能正常顯示溫度,但是圖像顯示出現(xiàn)了問題,這是什么原因呢,是通過修改pPixe后面的數(shù)字大小來修正圖像顯示 ...

修改顯示函數(shù)
回復(fù)

使用道具 舉報(bào)

18#
ID:1086988 發(fā)表于 2023-7-5 16:17 | 只看該作者
樓主,我剛好在做這個設(shè)計(jì),里面的lcd里面說驅(qū)動可以用ili9341?
回復(fù)

使用道具 舉報(bào)

19#
ID:1086988 發(fā)表于 2023-7-11 09:16 | 只看該作者
樓主,我買的那個amg8833無法寫I2C,不知道是什么原因。我用的野火的開發(fā)板,運(yùn)行你給的程序,到amg88xx那里就運(yùn)行不下去了。不知道樓主有好什么好的建議嗎?
回復(fù)

使用道具 舉報(bào)

20#
ID:1106702 發(fā)表于 2024-3-7 18:55 | 只看該作者
為什么我顯示的只有幾個色塊,而且還是不動的
回復(fù)

使用道具 舉報(bào)

21#
ID:1113339 發(fā)表于 2024-3-21 10:23 | 只看該作者
發(fā)表于 2024-3-7 18:55
為什么我顯示的只有幾個色塊,而且還是不動的

我也是這樣,你解決了嗎?
回復(fù)

使用道具 舉報(bào)

22#
ID:600499 發(fā)表于 2025-2-19 11:20 | 只看該作者
原來是刪除 IIC_Read_Byte() 中的
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表