Ronald Lee / Mbed 2 deprecated MLX90614

Dependencies:   mbed

Committer:
ronaldhklee
Date:
Wed Mar 22 04:54:35 2017 +0000
Revision:
1:eb3bd21fba0b
Parent:
0:599009dbb3e5
Tobj_max = 60, Tobj_min = 0, Ta=50~0;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ronaldhklee 0:599009dbb3e5 1 #include "mbed.h"
ronaldhklee 0:599009dbb3e5 2 #include "mlx90614.h"
ronaldhklee 0:599009dbb3e5 3
ronaldhklee 0:599009dbb3e5 4 DigitalOut myled(LED1);
ronaldhklee 0:599009dbb3e5 5
ronaldhklee 1:eb3bd21fba0b 6 int SAddr = DEFAULT_SADDR;
ronaldhklee 0:599009dbb3e5 7 float temp = 0;
ronaldhklee 1:eb3bd21fba0b 8 char c;
ronaldhklee 1:eb3bd21fba0b 9 //uint16_t pwmreg;
ronaldhklee 0:599009dbb3e5 10
ronaldhklee 0:599009dbb3e5 11 int main() {
ronaldhklee 1:eb3bd21fba0b 12 if (MLX90614_EEPROM_Read(SAddr,EEPROM_T0MAX) != TOBJ_P60)
ronaldhklee 1:eb3bd21fba0b 13 MLX90614_EEPROM_Write(SAddr, EEPROM_T0MAX, TOBJ_P60);
ronaldhklee 1:eb3bd21fba0b 14 if (MLX90614_EEPROM_Read(SAddr,EEPROM_T0MIN) != TOBJ_PM0)
ronaldhklee 1:eb3bd21fba0b 15 MLX90614_EEPROM_Write(SAddr, EEPROM_T0MIN, TOBJ_PM0);
ronaldhklee 1:eb3bd21fba0b 16 if (MLX90614_EEPROM_Read(SAddr,EEPROM_PWMCTRL) != DEFAULT_PWMCTRL)
ronaldhklee 1:eb3bd21fba0b 17 MLX90614_EEPROM_Write(SAddr, EEPROM_PWMCTRL, DEFAULT_PWMCTRL);
ronaldhklee 1:eb3bd21fba0b 18 if (MLX90614_EEPROM_Read(SAddr,EEPROM_TARANGE) != (uint16_t)(TAMB_P50 << 8 | TAMB_PM0))
ronaldhklee 1:eb3bd21fba0b 19 MLX90614_EEPROM_Write(SAddr, EEPROM_TARANGE, (uint16_t)(TAMB_P50 << 8 | TAMB_PM0));
ronaldhklee 1:eb3bd21fba0b 20 if (MLX90614_EEPROM_Read(SAddr,EEPROM_CONFIGREG1) != DEFAULT_CONFIGREG1)
ronaldhklee 1:eb3bd21fba0b 21 MLX90614_EEPROM_Write(SAddr, EEPROM_CONFIGREG1, DEFAULT_CONFIGREG1);
ronaldhklee 1:eb3bd21fba0b 22 //wait(5);
ronaldhklee 1:eb3bd21fba0b 23 printf(" EEPROM_T0MAX = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_T0MAX));
ronaldhklee 1:eb3bd21fba0b 24 printf(" EEPROM_T0MIN = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_T0MIN));
ronaldhklee 1:eb3bd21fba0b 25 printf(" EEPROM_PWMCTRL = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_PWMCTRL));
ronaldhklee 1:eb3bd21fba0b 26 printf(" EEPROM_TARANGE = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_TARANGE));
ronaldhklee 1:eb3bd21fba0b 27 printf(" EEPROM_ECCOEF = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_ECCOEF));
ronaldhklee 1:eb3bd21fba0b 28 printf(" EEPROM_CONFIGREG1 = 0x%X\r\n", MLX90614_EEPROM_Read(SAddr,EEPROM_CONFIGREG1));
ronaldhklee 0:599009dbb3e5 29 SAddr = MLX90614_SA_Read();
ronaldhklee 1:eb3bd21fba0b 30 printf(" EEPROM_SMBUSADDR = 0x%X. \n\r", SAddr);
ronaldhklee 1:eb3bd21fba0b 31 if (SAddr == ERROR_ADDR_CRC8)
ronaldhklee 0:599009dbb3e5 32 {
ronaldhklee 0:599009dbb3e5 33 SAddr = MLX90614_SA_Scan();
ronaldhklee 0:599009dbb3e5 34 printf(" MLX90614 Slave Address Find = 0x%X. \n\r", SAddr);
ronaldhklee 0:599009dbb3e5 35 }
ronaldhklee 1:eb3bd21fba0b 36 do temp = getTempC_Ambi(SAddr); while(temp == ERROR_TEMP_CRC8);
ronaldhklee 0:599009dbb3e5 37 printf(" Ambient temperature = %.2f\r\n", temp);
ronaldhklee 1:eb3bd21fba0b 38 do temp = getTempC_Obj1(SAddr); while(temp == ERROR_TEMP_CRC8);
ronaldhklee 0:599009dbb3e5 39 printf(" Object 1 temperature = %.2f\r\n", temp);
ronaldhklee 1:eb3bd21fba0b 40 do temp = getTempC_Obj2(SAddr); while(temp == ERROR_TEMP_CRC8);
ronaldhklee 0:599009dbb3e5 41 printf(" Object 2 temperature = %.2f\r\n", temp);
ronaldhklee 1:eb3bd21fba0b 42
ronaldhklee 1:eb3bd21fba0b 43
ronaldhklee 1:eb3bd21fba0b 44 fflush(stdin); printf(" Press any Key......");
ronaldhklee 1:eb3bd21fba0b 45 scanf("%c", &c);
ronaldhklee 0:599009dbb3e5 46
ronaldhklee 0:599009dbb3e5 47 while(1) {
ronaldhklee 1:eb3bd21fba0b 48 printf("\033[2J\033[1;1H"); fflush(stdout);
ronaldhklee 1:eb3bd21fba0b 49 do temp = getTempC_Ambi(SAddr); while(temp == ERROR_TEMP_CRC8);
ronaldhklee 1:eb3bd21fba0b 50 printf(" Ambient temperature = %.2f\r\n", temp);
ronaldhklee 1:eb3bd21fba0b 51 do temp = getTempC_Obj1(SAddr); while(temp == ERROR_TEMP_CRC8);
ronaldhklee 1:eb3bd21fba0b 52 printf(" Object 1 temperature = %.2f\r\n", temp);
ronaldhklee 1:eb3bd21fba0b 53 do temp = getTempC_Obj2(SAddr); while(temp == ERROR_TEMP_CRC8);
ronaldhklee 1:eb3bd21fba0b 54 printf(" Object 2 temperature = %.2f\r\n", temp);
ronaldhklee 1:eb3bd21fba0b 55
ronaldhklee 0:599009dbb3e5 56 myled = 1; // LED is ON
ronaldhklee 1:eb3bd21fba0b 57 wait(0.5); // 1000 ms
ronaldhklee 1:eb3bd21fba0b 58
ronaldhklee 0:599009dbb3e5 59 myled = 0; // LED is OFF
ronaldhklee 1:eb3bd21fba0b 60 wait(0.5); // 1 sec
ronaldhklee 0:599009dbb3e5 61 }
ronaldhklee 0:599009dbb3e5 62 }