нужна помошь с кодом!

Тема в разделе "Arduino & Shields", создана пользователем михаил.нестандарт, 10 май 2016.

  1. гуру и люди добрые поскажите где в этом коде переменная температуры с датчика?
    Код (Text):

    #include <OneWire.h>

    int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2

    //Temperature chip i/o
    OneWire ds(DS18S20_Pin);  // on digital pin 2

    void setup(void) {
     Serial.begin(9600);
    }

    void loop(void) {
     float temperature = getTemp();
     Serial.println(temperature);
     
     delay(100); //just here to slow down the output so it is easier to read
     
    }


    float getTemp(){
     //returns the temperature from one DS18S20 in DEG Celsius

     byte data[12];
     byte addr[8];

     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;
     
    }

     
     
  2. Tomasina

    Tomasina Сушитель лампочек Модератор

    Код (C++):
    void loop(void) {
    float temperature = getTemp();  // <-- вот она: temperature
    Serial.println(temperature);
    delay(100); //just here to slow down the output so it is easier to read
    }