Терморегулятор на микроконтроллере PIC16F84 датчикe DS18B20

Поклонники продукции Microchip Technology Inc тусуются тут.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Соник писал(а):При установке температуры показания иногда проскакивают через одну цифру: 11-12-13-15-16-17-18-20-21-22-24...

Прогнал несколько раз туда-обратно. Ничего подобного не наблюдал. В роли кнопок у меня выступают провода, которыми я касаюсь выводов, так что моя проверка та еще. Может надо изменить время длинных и коротких нажатий?
Соник писал(а):При включении на индикаторе 0,0 и горит красный светодиод. В следующий момент на индикаторе 85,0 и вдобавок к красному загорается зелёный светодиод, далее температура на индикаторе высвечиваются, горят оба светодиода (через несколько включений/отключений мне удалось поймать момент когда горит только красный светодиод и всё вроде бы работает как надо, но светодиоды ведут себя как хотят).

Тоже такого не наблюдаю. При включении, пока не произошел замер температуры на индикаторе 0,0. Если задание выше - включается красный светодиод. Если ниже - зеленый. Затем первое считанное с индикатора значение 85,0 - это особенность датчика. Светодиоды реагируют соответственно. Следующие показания уже реально измеренная температура. Ну и светодиоды вслед за ней. Погонял вверх-вниз - все правильно. Диоды ни разу не зажигались одновременно.
Красному запрещено зажигаться первую секунду. Зеленый я добавлял позже и о его судьбе в момент включения не подумал. Но после замера реальной температуры (третьи показания) оба ведут себя адекватно. :dont_know:
Зеленый - всего лишь инверсия красного. Своего алгоритма у него нет.
На начальном этапе, при включении питания, я так понимаю, надо сделать так, чтобы оба были выключены?
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Ребят, я уже себя работодателем ощущаю :))) у меня денег не хватит с вами расплатиться :)))
Два месяца просил прошивку перекомпилировать безуспешно, а теперь... :)))
Я рожден при социализме, и я этим горжусь!
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Странно. Прошивки одинаковые, а ведут себя по-разному :)))
Soir писал(а):На начальном этапе, при включении питания, я так понимаю, надо сделать так, чтобы оба были выключены?

Лучше - да, а то срабатывает впустую и тут же отключается. Только срок службы реле сокращается.
Я рожден при социализме, и я этим горжусь!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Аlex »

или у PIC16F628A на такое уже не хватает ножек/ресурсов?
Скорее ножек чем ресурсов.

Если у Вас есть готовый проект - выкладывайте, человек ждет.
Выкладываю.
В архиве проект, файл протеса и исходный код. Исходник не прокоментирован, будут вопросы - задавайте.
Алгоритм:
Жмём кнопку сет, мигает нижняя граница уставки. Кнопками + и - выставляем её. Долгое нажатие - начинает изменяться быстро.
Жмём кнопку сет. Нижняя граница сохраняется и начинает мигать верхняя граница. Меняем её так же кнопками + и -
Жмём сет, параметр сохраняется и выходим в режим показа температуры.
Диапазон между нижней границей и верхней - есть гистерезис. Т.е. при нижней включается нагреватель, при верхней включается кулер. Между ними оба выхода выключены.
Вот как то так... :dont_know:
Вложения
Termometr_v1.rar
(121.21 КБ) 638 скачиваний
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Soir писал(а):При включении, пока не произошел замер температуры на индикаторе 0,0. Если задание выше - включается красный светодиод. Если ниже - зеленый. Затем первое считанное с индикатора значение 85,0 - это особенность датчика. Светодиоды реагируют соответственно. Следующие показания уже реально измеренная температура. Ну и светодиоды вслед за ней. Погонял вверх-вниз - все правильно. Диоды ни разу не зажигались одновременно.

Извиняюсь... Прошил второй МК, включил - всё правильно... Диоды горят порознь... Кажется я подпалил порты первого МК пока мы тут активно тестировали прошивки :cry:

ПС: нужно сделать чтобы после подачи питания сначала устанавливалась реальная температура, а потом уже МК принимал решении о включении нагрева либо охлаждения либо ничего не включал. А то с такими перемигиваниями светодиодов и вправду погорит всё.

Аlex, сейчас начну просматривать Вашу прошивку.

Обновление: у Вас в папке 31 файл, какой предназначен для программирования? "termonetr.hex"?
Я рожден при социализме, и я этим горжусь!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Аlex »

какой предназначен для программирования? "termonetr.hex"?
Да
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Аlex писал(а):
какой предназначен для программирования? "termonetr.hex"?
Да

В памяти не сохраняются значения установленных температур после отключения/включения питания.
Или я уже все МК у себя пожёг? :)))
Я рожден при социализме, и я этим горжусь!
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Соник писал(а):Странно. Прошивки одинаковые, а ведут себя по-разному :)))

Ведет себя по-разному железо
Соник писал(а):Лучше - да, а то срабатывает впустую и тут же отключается. Только срок службы реле сокращается.

Залил туда же (http://radiokot.ru/forum/viewtopic.php?p=626220#p626220) измененную прошивку.
Что-то давно Вы не жаловались на проблемы при прошивке МК. Удалось победить?
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Soir писал(а):Что-то давно Вы не жаловались на проблемы при прошивке МК. Удалось победить?

Вроде да (тфу-тфу-тфу) :)
Я рожден при социализме, и я этим горжусь!
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Соник писал(а):Тогда между делом спрошу: можно на один МК повесить два датчика и два индикатора (каждый индикатор отображает температуру своего датчика) или у PIC16F628A на такое уже не хватает ножек/ресурсов?

У меня работает термометр с четырьма датчиками и одним индикатором. (Облепил газовый котел датчиками по всем входам и выходам воды.) Переключение кнопками. Для того, чтобы на все хватило ножек, для вывода данных на индикаторы используется дополнительная микросхема - регистр сдвига. Уже не помню какой именно, надо порыться в архивах.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Аlex »

В памяти не сохраняются значения установленных температур после отключения/включения питания.
Да, есть такой косяк. Сорри, исправимся :roll:
А с остальным как ? Всё нормально ?
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Soir писал(а):У меня работает термометр с четырьма датчиками и одним индикатором. (Облепил газовый котел датчиками по всем входам и выходам воды.) Переключение кнопками. Для того, чтобы на все хватило ножек, для вывода данных на индикаторы используется дополнительная микросхема - регистр сдвига. Уже не помню какой именно, надо порыться в архивах.

Вот это очень интересное устройство... если будет не меньше двух датчиков, не меньше двух инликаторов к ним и один МК :idea:
Аlex писал(а):
В памяти не сохраняются значения установленных температур после отключения/включения питания.
Да, есть такой косяк. Сорри, исправимся :roll:
А с остальным как ? Всё нормально ?

Вроде да. Я за вами обоими не успеваю :))) У меня ж один МК, только успеваю прошивать, менять и тестировать :)))
Ещё по-моему выводы нагрева и охлаждения перепутаны местами.

Подскажите по исполнительному устройству. Такое я поставил и на нагрев и на охлаждение. R2=1 кОм. download/file.php?id=48825 Сажаешь базовый резистор на "+" 5 В - реле срабатывает. Сажаешь на землю - тоже срабатывает. Красный светодиод гаснет, а реле остаётся включённым, потому что на 16 ноге присутствует +5,1В :dont_know: А зелёный светодиод гаснет - реле отключаются, на его 3 ножке +3,6В.
Я рожден при социализме, и я этим горжусь!
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение nvz »

Здравствуйте всем! Собрал схему на PIC16F84, понравилось, правда пришлось инвертировать сигналы на индикатор, у нас с общим анодом проблемы. Можно ли переделать прошивку под общие катоды? а то я в этом профан...
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

nvz писал(а):Здравствуйте всем! Собрал схему на PIC16F84, понравилось, правда пришлось инвертировать сигналы на индикатор, у нас с общим анодом проблемы. Можно ли переделать прошивку под общие катоды? а то я в этом профан...

Какую именно прошивку? Их тут две, моя и Аlex. Если у Вас есть своя - давайте исходник.
Моя кстати существует в двух вариантах ОА и ОК. Дома индикатор оказался в наличии только ОК и для проверки работоспособности прошивки пришлось параллельно делать и для него.
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Изображение

А вам не кажется что в работе термостата что-то не так? Я вот сегодня ночью подумал, получается у нас как только отключается нагрев (предположим +22,5*) - сразу включается охлаждение (пусть 22,6*), температура снижается до предположим +22,0* - включается нагрев. И так бесконечно, либо греет, либо охлаждает.
----------
Изображение

Я думаю необходимо установить некий температурный промежуток (похож на гистерезис), который будет считаться нормальной температурой (синий цвет). Нагреватель нагревает до +20*к примеру - отключается. Температура упала вниз - снова включается и греет. Перегрев свыше +25* к примеру - включается охлаждение. Температура падает до +24,5* - охлаждение отключается.

ПС: или я полную ахинею напечатал? :)))
Вложения
терм1.PNG
(2.22 КБ) 2015 скачиваний
терм.PNG
(2.41 КБ) 2120 скачиваний
Я рожден при социализме, и я этим горжусь!
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Соник писал(а):А вам не кажется что в работе термостата что-то не так?

Аlex, как я понял, так и сделал.
Я ориентировался на первоначальное задание. Там охлаждения не было. Потом, насколько помню, Вы просили сделать инверсный выход.
Что у Вас за устройство, в котором нужно поддерживать температуру сначала нагревая, а потом охлаждая?
Сформулируйте более четко задачу, прошивку поправить не трудно.
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Soir писал(а):Аlex, как я понял, так и сделал.

Я Соник :)
Soir писал(а):Я ориентировался на первоначальное задание. Там охлаждения не было. Потом, насколько помню, Вы просили сделать инверсный выход.

Да, где-то в самом начале я задал вопрос: "возможно ли так сделать?"
Soir писал(а):Что у Вас за устройство, в котором нужно поддерживать температуру сначала нагревая, а потом охлаждая?

Я просто привёл пример в своём предыдущем посте чтобы было понятно.
И хотел узнать мнение всех.
Я рожден при социализме, и я этим горжусь!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Аlex »

Соник, я так тебе и делал.
Цитата из моего поста :
Диапазон между нижней границей и верхней - есть гистерезис. Т.е. при нижней включается нагреватель, при верхней включается кулер. Между ними оба выхода выключены.
Только правильнее будет не гистерезис, а всётаки наверное "зона нечувствительности".

Косяк с сохранением параметров исправил, пользуйтесь на здоровье :beer:
Termometr_v1.rar
(138.73 КБ) 470 скачиваний
Аватара пользователя
Соник
Друг Кота
Сообщения: 7563
Зарегистрирован: Пн мар 22, 2010 11:01:14
Откуда: СССР, г. Москва.

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Соник »

Аlex писал(а):Соник, я так тебе и делал.
Цитата из моего поста :
Диапазон между нижней границей и верхней - есть гистерезис. Т.е. при нижней включается нагреватель, при верхней включается кулер. Между ними оба выхода выключены.
Только правильнее будет не гистерезис, а всётаки наверное "зона нечувствительности".

Да-да. Как раз Ваш метод выставления температуры и натолкнул меня на мой пост с рисунками и ночными раздумиями :))
Сейчас посмотрю.
Я рожден при социализме, и я этим горжусь!
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Терморегулятор на микроконтроллере PIC16F84 датчикe DS18

Сообщение Soir »

Аlex писал(а):...при нижней включается нагреватель, при верхней включается кулер. Между ними оба выхода выключены.

В таком случае все равно нужен гистерезис, или как там правильнее назвать. В Вашем проекте при колебании температуры в районе установленного значения (даже в пределах погрешности), будет происходить постоянное включение/выключение нагревателя (охладителя). Например, установленная нижняя +20,0, при +20,0 включается нагреватель, при +20,1 (а то и ниже) выключается. Разница между температурой включения и выключения должна регулироваться. Если я правильно понял Соник.
Да, кстати, Соник, я Вас с Аlex не путаю. Если сказать другими словами, я написал, что такой вариант разработал Аlex. :)
Чтобы добавить полезности в свое сообщение - во вложении прошивка. Отличие от предыдущей: при включении, пока нет данных о температуре на индикаторах прочерки, светодиоды погашены. В случае, если будет ошибка обнаружения датчика во время работы устройства (обрыв, повреждение...) на индикаторах тоже будут прочерки, а светодиоды погашены. Ну или можно прописать другое поведение светодиодов при отсутствии датчика.
Вложения
Termometr.zip
(2.55 КБ) 399 скачиваний
Ответить

Вернуться в «PIC»