Нуждается ли датчик в калибровке?
Магические константы «0.001129148», «0.000234125» и «0.0000000876741» одни и те же для всех термисторов или только для конкретного типа/номинала?
Если не сложно, расскажите подробнее, по каким законам сопротивление зависит от температуры.
Нет, датчик я не калибровал, хотя заметил, что всё таки некоторая погрешность присутствует (± 1°C), поэтому калибровка желательна. Константы разные под разные термисторы. У меня термистор, сопротивление которого при 25°C равно 10 кОм. На википедии приводятся значения этих констант под термистор, сопротивление которого при 25°C равно 3 кОм en.wikipedia.org/wiki/Thermistor
Зависимость сопротивления от температуры определяется формулой Стейнхарта и Харта
1/T = a+b(lnR)+c(lnR)3
T — температура в Кельвинах
R — сопротивление
a, b, c — константы термистора, выведенные эмпирически или найденные в документации к термистору.
Все LCD такого типа выполнены на базе контроллера HD44780 либо его аналоге. Вот он.
В сети информации по нему огромное количество даже на русском т.к. выпускаются они уже наверно лет 15.
Есть к чему еще стремиться! Советую следующим этапом усовершенствовать данную схему, включив в нее сдвиговый регистр 74HC595, что позволит сократить количество используемых пинов на ардуино и познакомит с SPI. Про саму 74HC595
Удачи!
Коли так, то как автор вышеупомянутой статьи, предлагаю прочитать ещё вот эту статью, где я рассказал, как можно подключить LCD и сервомашинки через сдвиговый регистр. Но первая статья тоже нужна — для понимания принципа работы сдвигового регистра.
Хорошая статья, но сразу скажу, что термистор — дрянь :) Я недавно возился с попытками подключить температурный сенсор KTY82 (фактически тот же термистор) к Ардуине и проклял тот день, когда за это взялся.
Три разных экземпляра выдавали разные показания. Да и показания с него нужно снимать при токе 1 мА. Я сделал такой же делитель, как и у вас с резистором в 10К, но найти что-то близкое к 10К крайне сложно — так что у меня был 9.9К, что естественно давало свою погрешность. Молчу уже за то, что зависимость сопротивления от температуры у них нифига не линейная %)
Короче, мой вам совет — используйте что-то типа DS18B20.
В том то и дело, что я использовал термистор для того, чтобы понять как он работает и понять алгоритм перевода значений :) А так, если бы мне нужен был термометр, то я бы использовал стабильный и откалиброванный цифровой датчик температуры, например DHT11 или DS18B20.
Хм, я этот DS18B20 в банку с тающим снегом пихал — показывает +2 (впрочем в даташите так и написано: -+2 градуса). И вообще создалось впечатление что он всегда на 2 градуса завышает (или плавает?).
Вот интересно, если DS18B20 «откалибровать» в помощью DS1820 (у которого -+0.5 градуса) — мы не на конвейере, время есть — он будет показывать с такой же точностью? Или все-таки плавают у него показания?
термистор дрянь — так Вы, батенька, его бы через генератор тока запитывали (чтоб исключить изменение тока от изменения сопротивления) — глядишь точность бы и устроила, не?
все равно это не решает проблему не линейности сопротивления и возню с монструозными коэффициентами. Да и смысла нет ваять еще и генератор — дешевле будет DS1820 купить :)
Молодцы, конечно. Не ради критики, но все же, чем ценна ваша статья для сообщества? Ведь статей уровня «мигание светодиодами» вагоны и маленькие тележки… да, и в документации подобный уровень описан.
Возьмите задачу поинтересней, чтобы и читать было интересно. И успехов вам в освоении мк и интересных идей!
Вряд ли термопары. Обрабатывать сигнал с них — еще больший геморрой. Их ставят только там, где нужна жаростойкость: во всякие печки и паяльники.
Так что, вероятнее всего, термисторы.
Подскажите, а откуда брали коэффициенты, по которым значение напряжения на А4 переводится в градусы? Имперический метод или есть какие-либо конкретные указания?
Практическое использование термистора с Arduino