Работа с LM75

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем enclouder, 14 окт 2015.

Метки:
  1. enclouder

    enclouder Нерд

    Здравствуйте.

    Подскажите, пожалуйста, что не так?

    Подключаю все так же, как на схеме.
    [​IMG]
    Использую такой же код:
    Код (C++):
    #include <Wire.h>

    #define LM75 (0x90 >> 1)

    void setup()
    {
      Wire.begin();
      Serial.begin(9600);
      Serial.println("LM75 temp");
    }

    void loop()
    {
      byte msb,lsb=0;
     
      float Grad=0;
      Wire.beginTransmission(LM75);
      Wire.write(0x00);
      Wire.endTransmission(LM75);
      Wire.requestFrom(LM75, 2);
      while(Wire.available() < 2);
        msb = Wire.read();
        lsb = Wire.read();
       

      if(msb<0x80)
      {
        Grad=((msb*10)+(((lsb&0x80)>>7)*5));
      }
      else
      {
        Grad=((msb*10)+(((lsb&0x80)>>7)*5));
        Grad=(2555.0-Grad);
      }
     
      Grad=Grad/10;
     
      Serial.print(Grad);
      Serial.println(" Grad");
     
      delay(400);
    }
    Залил контакты специальным клеем, чтоб не коротило и окунаю в воду сам датчик в открытом виде.

    Открываю горячую воду, даю ей пробежать чтоб температура устаканилась. Сую под воду, показывает 45,46,47..52. Такой рост наблюдается не так, как указано в даташите - 100мс, а с момента попадания в воду (45*С) до конечной температуры (52*С) проходит порядка 10 секунд. Отключаю воду, температура медленно снижается до 35-30-26 градусов. Даю пробежать опять горячей воде чтоб сразу была горячая. Подставляю под воду и он опять с такой же скоростью медленно набирает обороты до конечной температуры. В чем может быть причина? Вода бежит одной температуры постоянно, а он так медленно "ростит" температуру. Тоже самое и с холодной. КОгда она уже пробежала, он с 26*С до 12*С снижается постепенно, хоть и все время находится под холодной водой одной температуры, проходит так же порядка 10 секунд. Однако если его не убирать из под воды и резко сменить на горячую, с холодной, то он с 12 прыгает до 40 и опять до 52 медленно раскачивается.

    Где-то читал, что нужно ставить кондеры, может изза их отсутствия он так себя ведет?. А может, он просто так долго соображает по факту, в отличие от даташита?) Но кажется я просто чет не так сделал. Может использовать например DS18B20?
     
  2. ANV

    ANV Гуру

    100ms - это как часто измеряется температура внутри микросхемы. А ваши 10 секунд - это время за которое микросхема прогревается до температуры окружающей среды.
     
  3. enclouder

    enclouder Нерд

    Спасибо, я понял. Но это слишком много времени, чтоб узнать текущую температуру. Может, посоветуете датчик который делает это более быстрее? DHT11/22 слишком большой. А что насчет негерметичного DS18B20? Подойдет ли он, сможет ли он быстро реагировать на даже не значительное изменение внешней среды?
     
  4. Tomasina

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

    DS18B20 довольно шустрый, тепло от руки сразу распознает.
    Но учтите, что у него пауза между измерениями уже 750 мс, а не 100.
     
    enclouder нравится это.
  5. enclouder

    enclouder Нерд

    Да, но это если измерять разрешением 12 бит. А если 9, то это уже не 750, а 93,75.
    Остается вопрос, как это изменить?) Потому что по стандарту везде написано что время - 750мс.
    А ещё вопрос: тепло от руки распознает который герметичный (1), или простой (2)? В приложении представлены оба.

    1)[​IMG] 2) [​IMG]
     

    Вложения:

    • resolution.jpg
      resolution.jpg
      Размер файла:
      36,4 КБ
      Просмотров:
      566
  6. Tomasina

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

    задержка тупо прописана в скетче.
    Распознает простой, но, думаю, герметичный будет не сильно медленее - гильза небольшая и пустотелая, прогреется быстро.
     
    enclouder нравится это.
  7. ANV

    ANV Гуру

    Температуру чего измерять хотите и почему скорость важна? Может изящнее и интереснее можно сделать
     
  8. enclouder

    enclouder Нерд

    температуру воды хочу померить. а скорость важна чтоб не перегрелась и по нагреву в бойлере до определенной температуры - отключалась.
    есть варианты как это можно сделать изящнее и интереснее?)
     
  9. ANV

    ANV Гуру

    <sarcasm> А что за марка бойлера, который за 3 секунды 50 литров воды превращает в кипяток? :D:D:D Скромные расчеты показывают что в эти три секунды мощность 5 мегаватт нужна </sarcasm>

    Если серьезно, то:
    - если датчик в бойлере с водой, то хватит и любого интегрального датчика про которые упоминалось выше
    - если вода проточная и надо быстро реагировать на изменение, то можно посмотреть в сторону RTD, т.е. связка из платинового термодатчика PT100 или PT1000 и АЦП к нему: http://datasheets.maximintegrated.com/en/ds/MAX31865.pdf
     
  10. enclouder

    enclouder Нерд

    Спасибо большое. Прочитал про платиновый термодатчик - то что нужно! А главное - стоимость: 150рублей за термопару, удивился) Датчик ~400р +- 50р.
    Спасибо большое ещё раз ВСЕМ! Получил именно то, что хотел, то, зачем пришел. Очень интересная тема. Всем участникам беседы БЛАГОДАРНОСТЬ! :)
     
  11. ANV

    ANV Гуру

    Датчик то да, 400р, АЦП прибавить не забудьте когда считаете :)
     
  12. enclouder

    enclouder Нерд

    Ага, я уже посмотрел)) 1800 стоит все целиком: АЦП и датчик + доставка 600. Не мало выходит))