Замена Dallas DS18B20
- Войдите на сайт для отправки комментариев
Втр, 05/07/2016 - 13:13
Добрый день.
нахожу много примеров термостата на Ардуино и везде используется Dallas DS18B20
Но на моем термостате будет балансироваться температура в районе 250 С и даллас такое не тянет.
И я не представляю как изменить код в скетче что бы избавиться от загрузки DallasTemperature.h
Подозреваю, что сабака порылась тут
#include <OneWire.h> OneWire oneWire(15); //Подключаем библиотеку для работы с термометром #include <DallasTemperature.h> //Создаем объект sensors, подключенный по OneWire DallasTemperature sensors(&oneWire);
Но вот как прописать съем инфы с датчика отличного от даллас?
датчика отличного от даллас?
Какого датчика? ХЗ!
Как он подключён? ХЗ!
Но вот как прописать съем инфы
Тогда, это тоже ХЗ!
Датчик термистор NTS 3950 100K
подключен по схеме
где U подсоединен к аналоговому входу А1
Вы уж извиняйте нуба - я только начал пробовать работать с Ардуино
и даже вопросы иногда не корректно формулирую .
Ну, так Вам надо его отградуировать. Для этого Вам нужно иметь доступ к эталонному термометру. Читайте значение с входа А1 функцией analogRead(1), печатайте прочитанное значение и составляйте таблицу "температура - значение". Как составите - вот Вам и будет датчик. Потом будете считывать показание и по таблице узнавать температуру (или формулу придумайте, глядя на таблицу).
Я бы ещё поставил конденсатор между А1 и землёй, чтобы сгладить показания, а то скакать будут. Какой? Тут нужен компромисс - чем больше конденсатор, тем глаже показания (меньше скачут), но тем больше задержка в реакции. Я бы начал с 22 нанофарад а там посмотрел бы, что получается и подобрал бы такой, который бы меня устроил.
Дело в том, что во собрал методом тыка
Выводит температуру --- не очень точно, но меня устраивает "пока"
дело в том, что есть много проектов с уже готовыми термостатами для помещений. они мне подходят, но там везде Даллас
думал что можно часть кода заменить на мой, исключить даллас и все заработает.
вот код определения температуры
КОД ДАТЧИКА (термистора)
Дкмал именно заменить даллас своим
в примере с далласом в первом топике
//Создаем объект sensors, подключенный по OneWire
создается переменная
sensors
у меня в
-----------
переменная V
Вот и думаю как грамотно вместо
sensors арисать V
в за кандер - спасибо.
думаю главное запустить, а улучшать показатели уже потом буду
Ну, в целом, Вы на верном пути. Может упростить как-то, но идея правильная. Я бы подумал над формулой. Кажется в Excel даже есть сервис - сделать формулу по табоице. И таблицу хранить не надо и проще всё.
Ну, в целом, Вы на верном пути. Может упростить как-то, но идея правильная. Я бы подумал над формулой. Кажется в Excel даже есть сервис - сделать формулу по табоице. И таблицу хранить не надо и проще всё.
Подскажите, что надо сделать в коде программы что бы вместо Далласа использовать свой термистор.
А что непонятно в посте №3? Просто читать analogRead'ом значения и переводить в температуру по таблице или по формуле.
А что непонятно в посте №3? Просто читать analogRead'ом значения и переводить в температуру по таблице или по формуле.
я пытался так как вы советуете, и значение температуры присвоил переменной. но постоянно выдаются ошибки
вот в таком коде заменить
Ну, вместо строк 104-107 напишите своё:
При этом Вам потребуется массив sensorPins в котором должны лежать номера пинов, к которым подключены Ваши сенсоры и функция convertADC2Temp, которая должна принимать параметр - то, что прочиталось analogRead'ом и возвращать темепратуру (по таблице или по формуле - это её дело).
Ну, собственно, всё.
Сможете такую функция сами написать?
Сможете такую функция сами написать?
К сожалению не смогу самостоятельно.
Я только в начале пути освоения ардуино и очень многое не понятно, да почти все. но не унываю и читаю, пробую.
думаю надо как-то включить в этот код переменную V из кода датчика
Сможете такую функция сами написать?
так вы ее уже написали? и надо только вставить 15 вместо i вот тут
то есть должно быть так?
Ну, так-то так, но здесь вызывается функция convertADC2Temp, которую писать надо. Кроме того, здесь используется массив sensorPins, который надо описать и инициализировать.