MindSensors Infra Red Thermometer
 Software and Programming Related   Started by Rick Warner   2017-08-13 17:21:07 -04:00   Comments: 2    Viewed: 113

  1. Rick Warner
    Rick Warner Member
    Hello all,

    I just got my Infra Red Thermometer a few days ago. I am very impressed with this little device.
    Does anyone know anything regarding the "Emissivity" bytes at 0x4a or the Unknown at 0x4c?
    is the Emissivity one byte or two?
    I have read a byte at 0x4c and 0x4d however I have no idea what it might be for.
    I have not looked at any other registers, I intend to in the coming days.

    Below is a small NBC program I scribbled out this afternoon which Displays the current temperature,
    the recorded Low, the recorded high, and the current ambient temperatures in Celcius.
    The port is auto sensing so it can be plugged into any one of your four ports.

    I am hoping someone can help me with the Emissivity registers.
    Thanks for reading,
    Rick


    /* MindSensorIRT_1.nbc
    R.Warner
    Aug 13 2017
    By design the port "IN_1,IN_2,etc" will auto-detect.    */
    dseg segment
    r1           word
    r2           word
    r3           word
    r4           word
    t0           float 0
    t1           float
    t2           float
    thigh        float
    tlow         float
    ct           float
    res          byte
    tenv         byte
    tport        byte
    mystr        byte[]
    mystrY       byte[] 'IRThermo'
    dseg ends

    thread main
       SetSleepTimeout(0)
    locateport:
       SetSensorType(tport,IN_TYPE_LOWSPEED_9V)
       SetSensorLowspeed(tport)
       ReadI2CDeviceInfo(tport,42,16,mystr)
    newport:
       set r1,1
    nextbyte0:
       index r2,mystr,r1
       index r3,mystrY,r1
       brcmp EQ,nextbyte1,r2,r3
       add tport,tport,1
       brcmp EQ,myexit,tport,4
       jmp locateport
    myexit:
       TextOut(1,32,"IRT Not Found")
       wait 10000
       exit
    nextbyte1:
       add r1,r1,1
       brcmp EQ,loopmain,r1,9
       jmp nextbyte0
    loopmain:
       mov t0,t1
       mov t0,t2
       mov t0,ct
       ReadI2CRegister(tport,42,68,r1,res)
    tl4:
       brtst NEQ,tl4,res
       ReadI2CRegister(tport,42,69,r2,res)
    tl5:
       brtst NEQ,tl5,res
       ReadI2CRegister(tport,42,66,r3,res)
    tl6:
       brtst NEQ,tl6,res
       ReadI2CRegister(tport,42,67,r4,res)
       add t2,t2,r3
       shl r4,r4,8
       add t2,t2,r4
       div t2,t2,100
       add t1,t1,r1
       shl r2,r2,8
       add t1,t1,r2
       div t1,t1,100
       mov ct,t1
       brcmp EQ,nfr,tenv,2
       mov tlow,ct
       mov thigh,ct
       set tenv,2
    nfr:
       brcmp LT,jlow,ct,tlow
       brcmp GTEQ,jhigh,ct,thigh
    re1:
       SetSensorType(IN_3,5)      ;******DEBUG
       TextOutEx(1,LCD_LINE3,"Current",1)
       NumOut(56,LCD_LINE3,t1)
       TextOut(1,LCD_LINE4,"Temp High")
       NumOut(56,LCD_LINE4,thigh)
       TextOut(1,LCD_LINE5,"Temp Low")
       NumOut(56,LCD_LINE5,tlow)
       TextOut(1,LCD_LINE7,"Ambient")
       NumOut(56,LCD_LINE7,t2)
      ; wait 20
       SetSensorType(IN_3,6)     ;*******DEBUG
       jmp loopmain
    jlow:
       mov tlow,ct
       mov t1,ct
       jmp re1
    jhigh:
       mov thigh,ct
       mov t1,ct
       jmp re1
    endt


    Rick Warner, 2017-08-13 17:21:07 -04:00
  2. seth10
    seth10 Member Staff Member
    Good morning!
    Emissivity cannot be changed. We determined this would add more complexity and we want to keep the sensor simple.
    For more information please look at the sensor's data sheet, MLX90614.
    In short, we don't allow the emissivity to be changed, and 0x4C and 0x4D are reserved.
    From,
    Seth
    seth10, 2017-08-18 11:41:10 -04:00
  3. (You must log in or sign up to post here)

Log in | Sign up
Tems & Conditions!
Help!