Подключаем термо датчик (термосопротивление,термистор) Без всяких логарифмов и датащитов.

Тема в разделе "Arduino & Shields", создана пользователем olegoriy, 21 май 2015.

  1. olegoriy

    olegoriy Гик

    Всем добрый день.
    Для тех у кого мало времени или кто не любит много буков читать сразу пункт 2.
    1)
    Может быть подобная тема уже была да и решение не ново, но мне как новичку такая бы статья очень помогла на первых этапах освоения микроконтроллера.
    При экспериментах с ардуино, возникло острое желание знать сколько же сейчас градусов выше нуля, с последующим применением куда ни будь.
    Почитав умную книжку которая была в комплекте с матрешкой, я понял что решение задачи достаточно простое и все что мне нужно это термистор на 10 кОм и сопротивление тем же номиналом.
    Если с сопротивлением проблем проблем не возникло то вопрос о термисторе вызвал недовольное бурчание продавца радио деталями по типу "Ходят тут умники всякую ерунду спрашивают".
    Это кстати отдельная тема, продавцы в моем городе работают по принципу " Если я этого не видел то такого не бывает и незачем тут придумывать" но что то я отвлекся.
    В общем мне было предложено термо сопротивление на 10 кОм которое на деле оказалось 15кОм и скорее всего было украдено с каково нибудь завода еще во времена СССР все тем же бурчащим дядькой.
    При подключении всего этого дела у меня не чего не получалось и монитор порта говорил мне о том что скорее всего пришла зима хотя на дворе конец весны. Тут и было выяснено что номинал термо сопротивления отличается от заявленного дядькой с усами, но мультиметр расставил все точки над буквами и заклемил позором товарища выше написанного. Конечно обычное сопротивление сразу было заменено на 15 кОм но результат хоть и стал лучше, но все равно не радовал. Подозрение пало на "магическую формулу" все из той же умной книжки. Почитав форум я нашел информацию что в формуле есть неточности и она исправлена. Но тут стал вопрос ребром о параметрах моего термосопротивления. Так как с триклятым дядькой еще одного общения я бы не выдержал, да и врятли он, когда воровал детали, хватал с собой инструкции к ним, я совсем расстроился. Но потом немного подумав нашел решение.
    2) Берем любое термосопротивление меряем сопротивление мультиметром при 25 градусах. Ставим в делитель такое же по номиналу обычное сопротивление. Вооружаемся термометром заранее проверенным . Производим замеры термометром и термосопротивлением вместе при разных температурах, мониторим при этом значение на нашем аналоговом входе. Все это дело записываем в таблицу в excel-е. Строим точечный график все в том же excel-e. Правой кнопкой мыши на любой точке и выбираем "Добавить линию тренда" далее выбираем линейную функцию (кстати можно выбрать и сепенную и логарифмическую) и ставим галочку показать уравнение на диаграмме и погрешность. Вот это самое уравнение вставляем в наш скетч заменив Y на значение температуры а X на analogRead() нашего пина. Вот и все.
    3) Замеры температур стоит производить термометром в котором уверенны на 100%. Для разных температур можно замерить температуру на улице, в холодильнике, под кондинционеном в разных режимах. Я лично использовал стаканы с водой разной температуры от 2 до 70 градусов, конечно загерметив выводы термосопротивления.
    Замеров советую провести не менее 10. Чем больше тем точнее будет формула.
    Ну вот и все. Всем удачи.
     
    Последнее редактирование: 23 май 2015
  2. DrProg

    DrProg Вечный нерд

    Если немного отступить от метода тыка, то можно вспомнить, что существует некий математический метод определяющий зависимость двух рядов чисел друг от друга. Есть сильное подозрение, что зависимость температуры от сопротивления как раз таки логарифмическая, хотя небольшой участок температурного диапазона, вероятно, можно описать другой функцией. Но участок должен быть совсем небольшим.
    Но избежать логарифма для всех случаев жизни поможет разве что аппаратное решение.
     
    Последнее редактирование: 21 май 2015
  3. olegoriy

    olegoriy Гик

    Я не в коем разе не пытался оспаривать какие то научные доводы. Просто привел пример как я вышел из ситуации, не зная характеристик термосопротивления. Кстати я написал что показания можно преобразовать и в логарифмическую функцию. Я основывался на статье из википедии последний пункт:
    Преимущества термометров сопротивления[править | править вики-текст]
    • Высокая точность измерений (обычно лучше ±1 °C), может доходить до 0,13 тысячных °C (0,00013).
    • Возможность исключения влияния изменения сопротивления линий связи на результат измерения при использовании 3- или 4-проводной схемы измерений.
    • Практически линейная характеристика.

    Вообще очень обидно что мой метод вы назвали «методом тыка». Точность моего метода тыка кстати + - один два градуса на промежутке от нуля до шестидесяти. Сравнивал температуру воды с приборами взятыми в лаборатории.
     
  4. DrProg

    DrProg Вечный нерд

    Ничего обидного в "методе тыка" нет, даже если он бы и был. Можно назвать его более толерантно, например "эмпирический метод поиска соотношений двух величин". Непонятно только зачем изобретать велосипед если он есть и ездит? Настолько критично время между замерами, что контроллер не успевает взять логарифм? Или программа не влезает в память?
     
  5. Unixon

    Unixon Оракул Модератор

    ТС изобрел процедуру калибровки? Браво! :D
     
  6. Vad33

    Vad33 Капитан-оригинал

    Ну, калибровать термодатчики "термометром в котором уверенны на 100%" - это
    для "настоящих индейцев" и детей, которым все в диковинку.
    Нелюбопытные дядьки обычно используют датчики типа DS18B20, где все уже откалибровано. :)
     
  7. iglooshtosser

    iglooshtosser Гик

    Не изобрел, а открыл для себя. (и тех кто не знал) :)
     
  8. DrProg

    DrProg Вечный нерд

    Калибровка это привязка к базе, например к нулю. Тут же речь идет о вычислении температуры из сопротивления, проблема в том, что совпадающие нули не гарантируют совпадение остальных значений.
     
  9. KamAdm

    KamAdm Нерд

    атмосферное давление забыли учесть.;)
     
  10. olegoriy

    olegoriy Гик

    Злые вы :) но не уйду я от вас. Спасибо за конструктивную критику.
     
  11. DrProg

    DrProg Вечный нерд

    Разве же это критика, ты не видел как меня местные "монстры" принимали. Здесь хоть истерик не было. )
     
  12. olegoriy

    olegoriy Гик

    Хорошо тогда давайте по существу.
    Имею вот это:
    [​IMG]не факт что открыл пример который использую но суть не в этом.
    Вставляю в скетч формулу y = - 0.178x + 99.48 использую линейную так как имеет самую маленькую погрешность.(к примеру)
    В скетче формула имеет такой вид t = - 0.178 * (analogRead(dat1)) + 99.48;
    мониторю Serial.println(t1);
    все в порядке.
    когда формулу умножаю на 10 : t = (- 0.178 * (analogRead(dat1)) + 99.48) * 10
    выдает значение 234 235 237 где ( я так понимаю последняя цифра это десятые градусов) Так вот вопрос как замониторить чтобы писало 23.4 23.5 23.7 ??????????
     
  13. KamAdm

    KamAdm Нерд

    А с чего решили, что дуга именно там загибается?
     
  14. DrProg

    DrProg Вечный нерд

    Разделить на 10 и занести в переменную с типом float.
     
  15. iglooshtosser

    iglooshtosser Гик

    зачем на 10 то делить? просто t объявить как float. Ведь реультат - 0.178 * (analogRead(dat1)) + 99.48 уже такой какой надо, дробная часть отсекается при присвоении (при преобразовании к типу t)/
     
  16. olegoriy

    olegoriy Гик

    Это не я решил. Это excel решил.
     
  17. DrProg

    DrProg Вечный нерд

    Мне, если чесно, до сих пор до конца ее понятно зачем сыр бор? Разве что поломать голову на тему как сделать сделанное максимально близко к сделанному. По мне так полно задач более интересных, есть что изучать, пробовать и мастерить. Тем более вот посылка пришла от Амперки с новыми детальками. )
     
  18. olegoriy

    olegoriy Гик

    Тоже жду посылку с различными детальками. Правда из китая.:) Ну пока жду решил поэкспериментировать.
     
  19. DrProg

    DrProg Вечный нерд

    Из Китая долго ждать, тоже заказал, но за это время успею получить из Амперки раз 10 всякие ништяки. Кроме того, нет уверенности, что все китайское 100% рабочее.
     
  20. olegoriy

    olegoriy Гик

    Ни какой рекламы. Контролер сам купил у амперки. Но у китайцев такие привлекательные цены что на барахло что придет можно смотреть сквозь пальцы. Да и ждать правда долго(((