Подключил терморезистор из набора, в делитель поставил резистор на 10 кОм. Считываются некие данные ... как мне их перевести в температуру ? Что бы программа выдавала хотя бы в ком порт данные. Заранее спасибо По даташиту у него данные идут с разницей в 5 градусов, а как получить информацию хотя бы до градуса. Ведь забивать в программу огромную таблицу соответствий это муторно и глупо получится.
На термисторах делают датчики перегрева-переохлаждения, а для градусника нужен градусник Например такой: DS18B20, или использовать Датчик температуры и влажности, правда в нагрузку будет ещё и влажность показывать. Но для тренировки и термистор неплох
На основе терморезистора и двух 7 сегментных получился вполне симпатичный термометр. Плохо только то что эти 7 сегментники требуют микруху для подключения и кучи резисторов ... не кашерно выходит Щас руки дойдут распотрошить нокия 3310 вытащу экран оттуда. А датчик DS я уже думал брать такой, но пока в качестве обучения использую базовый набор. А на будущее думаю вообще взять ультразвуковой дальномер, там сразу и термометр есть
"Нет там датчика"(с) Там можно получить температуру чипа, на котором собран дальномер. У вас в Ардуино тоже есть термометр внутри Атмеги328, он тоже показывает температуру процессора, она вовсе не комнатная... http://quadmotor.org/doku.php
Но даже в таком случае "бонус" вполне не лишний А вот вопрос про 7 сегментные индикаторы так и остался ... как бы их покомпактнее зацеплять? Или без кучи резисторов+микросхема не обойтись ?
Вместо "кучи" резисторов можно использовать две резисторных сборки,принцип тот же,но места занимает меньше и соплей будет тоже меньше! Советую над этим задуматься.
Вот тут поподробнее Что это и с чем едят А то с горя решил сделать сегменты как шилды, накидать все на отдельной плате и развести красиво ... заодно платы научусь травить.
на счет показаний термистора. взял значения от 0 до 65 градусов и аппроксимировал функцию. получилась такая вот штука: Код (Text): int temp(int tempVoltage){ float R; int result=0; R = float(tempVoltage)/(1023-float(tempVoltage)); result = 85-151*R+167*pow(R,2)-105*pow(R,3)+33*pow(R,4)-4*pow(R,5); //сама функция return result; } tempVoltage - показания с АЦП, который как раз подключен к делителю напряжения. возвращаемое значение - сама температура.