И снова обращаюсьза советом, так как не выходит каменный цветок Есть задача мерять высокую температуру (от 0 до 250 С), поетому приобрел такие термисторы http://www.ebay.com/itm/191674222260?_trksid=p2057872.m2749.l2649&ssPageName=STRK:MEBIDX:IT Подключил как делитель с 100к резистором. Как говориться, ничто не предвещало беды. Собрал, залил скетч, нашел у кого то с похожим датчиком и обьясением. Код: Код (C++): boolean sensorWarning; // Глобальная переменная для пищалки при перегреве датчика float tempData() { float temp; float volt = analogRead(A4) * 5.0 / 1023.0; float r1 = volt / 2.5; // R_t/R_25C unsigned int B = 3950; // Параметр конкретного типа термистора (из datasheet) if (volt == 0) { sensorWarning = true; volt = 0.001; } temp = 1. / ( 1. / (B) * log(r1) + 1. / 298. ) - 273; return temp; } Сразу всплыло две проблеммы, первая- если температура достигает примерно 280C, в формулу подставляется ноль и все жутко глючит, но тут ничего страшного, так как столько цельсиев мне и не нужно, но на всякий случай ввел програмное отсечение нуля. Вторая более серьезная, а именно то, что эта схема не может померять температуру меньше 10 градусов, а по факту 19С, даже если отключить термистор и подать на вход все 5 вольт на экране будет 10 С. Очевидно где то косяк с расчетами, но мой гумунитарный ум при виде синусов и косинусов авторитетно заявляет: "Ой всё!".
указанное вами изделие сделано конкретно для определённых целей и низкие температуры там не присутствуют, что вы от него хотите
Цели у него могут быть любыми, а по паспорту от -40 до 300, а то, что их все кому не лень пихают в 3d принтеры не делает их неспособными мерять любую другую температуру. К тому же сам термистор вполне рабочий, и при низких температурах его сопротивление стабильно растет, при 15С сопротивление около 150кОм, но на индикаторе 19С и не падает.
Отбросьте все преобразования, проверьте в мониторе напряжение, снимаемое пином с делителя от 0 и до 150 градусов.
Измерения не очень точные, но примерно дают понять что и как. Термистор подключен между входом и землей, если это важно. При температуре 0 градусов значение АЦП- 720 (после расчетов Ардуина считает что это 16 градусов). При 150 градусах значение АЦП- 11 (тут Ардуина выдает примерно правильный результат). При 23.5С примерные значения 550. Но, тут есть огромная нелинейность, при значении 5 (значение АЦП в мониторе) расчетная температура 184 градуса, а при 4- 213! То есть, все что между просто выпадает?! Думаю, что что то не так с коэфицентами в формуле, увы я ее едва понимаю.
Не надо не чего понимать. )))) Сделайте свою формулу. Я делал так: http://forum.amperka.ru/threads/Под...сяких-логарифмов-и-датащитов.5106/#post-40958