Page 45 - MDP2020-2
P. 45

················································································  명장양성프로젝트  【MDP】  과제발표회  자료집  Ⅱ    |  39





            if  (  !ds.search(addr))  {
                //no  more  sensors  on  chain,  reset  search
                ds.reset_search();
                return  -1000;
            }


            if  (  OneWire::crc8(  addr,  7)  !=  addr[7])  {
                Serial.println("CRC  is  not  valid!");
                return  -1000;
            }


            if  (  addr[0]  !=  0x10  &&  addr[0]  !=  0x28)  {
                Serial.print("Device  is  not  recognized");
                return  -1000;
                }


            ds.reset();
            ds.select(addr);
            ds.write(0x44,1);  //  start  conversion,  with  parasite  power  on  at  the  end


            byte  present  =  ds.reset();
            ds.select(addr);
            ds.write(0xBE);  //  Read  Scratchpad


            for  (int  i  =  0;  i  <  9;  i++)  {  //  we  need  9  bytes
                data[i]  =  ds.read();
            }


            ds.reset_search();


            byte  MSB  =  data[1];
            byte  LSB  =  data[0];


            float  tempRead  =  ((MSB  <<  8)  |  LSB);  //using  two's  compliment
            float  TemperatureSum  =  tempRead  /  16;


            return  TemperatureSum;
            }
   40   41   42   43   44   45   46   47   48   49   50