DS18B20

Тема в разделе "Arduino & Shields", создана пользователем Perun61, 15 ноя 2012.

  1. Djvan

    Djvan Нерд

    Спасибо. Действительно, что то затупил с примерами и сделал постоянное обновление экрана. Сейчас все заработало как надо.
     
  2. Rustam

    Rustam Нерд

    рассчитан ли Герметичный датчик температуры DS18B20 на длительное время работы в кипящей воде? написано, что может до +125 измерять, а про время работы в таких условиях ничего не нашел. мне просто необходимо получать температуры жидкостей и пара в самогонном аппарате.
     
  3. Tomasina

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

    датчику не поплохеет. А вкус испортишь - как себя поведет термоусадка при долгой термообоработке?
     
  4. Rustam

    Rustam Нерд

    вкус не поплохеет, сэм будет в колбе, которая будет в кастрюле. датчик тоже будет в кастрюле. про термоусадку отпишусь позже =)
     
  5. Pawky_Paw

    Pawky_Paw Говорящая голова Команда форума

    Мы тут краштест датчика провели намедни. Хочется отметить он себя хорошо показал. Несколько минут в кипящей воде провел без каких либо деформаций или заметных изменений; работал исправно. Запаха никакого не было, термоусадка выглядела точно так же как и до погружения.
     
  6. Rustam

    Rustam Нерд

    датчик частично находился в паропроводе и кусочек термоусадки посветлел, но работает нормально. погрешность показаний 1 градус примерно. волновался только насчет попадания жидкости или пара под термоусадку, она не совсем плотно к проводу прилягает
     
  7. Pi-Tone

    Pi-Tone Нерд

    Начну с далека, имеется дом, 5 комнат, в каждой комнате стоит ds18b20, вывод температуры на дисплей android планшета. Все работает нормально, но дело в том что дом деревянный и хотелось бы на этих сенсорах сделать противопожарку.....

    смысл в том чтобы условие выполнялось при резком скачке температуры, например на 2 градуса за 5 секунд, в нормальных условиях температура так не прыгает
    Помогите со скетчем (arduino), что то сам не допру.
    хотя бы примерный алгоритм.
    Спасибо!
     
  8. NR55RU

    NR55RU Оракул

    Если рассматривать самый простой вариант то можно сделать так.
    Допустим вы опрашиваете датчик температуры каждые 5 секунд, сохраняете значение температуры и если при следующем опросе температура превысит температуру последнего опроса больше чем на 2 градуса, решайте что делать дальше :)

    Импровизированный код может выглядеть так:
    Код (Text):
    const double TEMP_JUMP = 2.0;
    double lastTemp = 0;
    double currentTemp = 0;

    currentTemp = readTemp();
    if ((currentTemp + TEMP_JUMP) >= lastTemp)
    {
        alarm();
    }
    lastTemp = currentTemp;
    delay(5000);
    Но у этой простой схемы есть свои недостатки, а что если температура подымется не на 2+ градуса а только на 1.99, и будет каждые 5 сек подыматься на 1.99, тревога просто не сработает, тогда нужен будет чуть более сложный алгоритм с интервалами :)
    Да и от работы с плавающей точкой стоит отойти а то они имеют свои недостатки, это я уже так написал для простоты примера :)
     
    Последнее редактирование: 23 июл 2014
  9. Megakoteyka

    Megakoteyka Оракул

    Почему нельзя просто порог срабатывания установить? А то зальете датчик кипятком и он закричит "пожар!". Резкий скачок температуры может быть много чем вызван.
     
  10. Пушной звер

    Пушной звер Оракул

    температура не показатель, лучше взять датчик дыма.
     
    Nikonist нравится это.
  11. geher

    geher Гуру

    Подозреваю, что когда два градуса за пять секунд, то уже поздно.
    А при локальном возгорании на удаленный датчик воздействие будет совсем небольшим (можно проэкспериментировать с газовой плитой - по виду классическое возгорание на ранней стадии, горение с высокой температурой, но слабо сказывающееся на общей температуре в помещении).
    Тут, действительно, датчик задымления будет более эффективным, не зря пожарная сигнализация именно на этом принципе работает.
     
  12. dreadfull

    dreadfull Гик

    нашел очень интересную статейку с видеообзором http://arrduinolab.blogspot.ru/2014/10/5-ds18b20.html
    для нескольких параллельно подключенных датчиков температуры с возможностью регулирования температуры кнопками с шилда. все хорошо, но как регулировать температуру не целыми градусами, а десятками, не пойму.
    вот вроде эти строчки отвечает за изменение градусов
    Код (Text):
    if (KEY == 2) { // если нажата кнопка
          tempOUTon[pos]--;  // изменяем значение
            if (tempOUTon[pos] > 125) tempOUTon[pos] = 0;
          EEPROM.write(pos, tempOUTon[pos]); // сохраняем в еепром
        }
        else if (KEY == 5){
          tempOUTon[pos]++;
            if (tempOUTon[pos] > 125) tempOUTon[pos] = 0;
          EEPROM.write(pos, tempOUTon[pos]);  
        }
     
  13. dreadfull

    dreadfull Гик

    блин, форумчане, неужели никто не знает как исправить код???:eek::eek::eek:
     
  14. vvr

    vvr Инженерище

    чево шумишь?
    tempOUTon[pos]++;
    замени на
    tempOUTon[pos] = tempOUTon[pos] + 10;
     
  15. Пушной звер

    Пушной звер Оракул

    десятками, всмысле десятыми частями градуса?? ))
    для этого там много править надо
     
  16. vvr

    vvr Инженерище

    я понял что нужно десятками градусов:).
    если десятыми частями градусов - присоединяюсь к Пушному:D
     
  17. dreadfull

    dreadfull Гик

    нет. десятками градусов не надо. но за комент спасибо.

    да именно десятками градуса. а что именно править надо???
     
  18. dreadfull

    dreadfull Гик

    а ведь ответ так был прост.... :mad::mad::mad: неужели никто не знал как поправить код, или вам жалко???
    ответил автор этого видео. надо было байт поменять на флоат, а дальше по аналогии с предложением от vvr:
    tempOUTon[pos] = tempOUTon[pos] + 0.1;
    :cool:
    я так и не увидел, где там много править код надо было....:(?
     
  19. Пушной звер

    Пушной звер Оракул

    ну так одно дело калибровку сделать, в коде
    а другое это в интерфейс эту одну десятую вводить, о чем и думалось.
     
  20. dreadfull

    dreadfull Гик

    честно говоря, не совсем вас понял...:oops:
    правда теперь новая бяка вылезла: после установки температуры, при повторном нажатии кнопки селект (вход в меню) обнуляются последние показания настроек. как с этим бороться????