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

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

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

Сообщение Soir »

Pavel84 писал(а):А у меня высвечивается "значение" 0,8 и все. Причем регулировка мощности происходит (если до выключения из сети был включен автоматический режим. В качестве нагрузки для удобства отладки использую лампочку.) Т.е. программа отрабатывается, только вместо показаний температуры - "0,8". Стоит нажать на кнопку MODE и 0,8 пропадает, появляется измеренная температура. Дальше все ok. Происходит это (высвечивание 0,8) как-то через раз. То нормально, то 0,8. Я уже писал об этом выше, но списал все на особенности сборки на макете, а не тут-то было.

Однозначно причину не могу назвать, надо пробовать.
1. Попробуйте новую прошивку.
2. На вход MCLR (вывод 1 МК) подайте питание не напрямую, а через резистор 10 кОм и с этого вывода конденсатор 10 nF на общий провод.

Pavel84 писал(а):Можно ли добавить таймер на отключение нагрузки? Часов на 12 с шагом установки 5мин. и естественно чтобы OFF таймера присутствовало.

Можно, добавлю чуть позже.
Вложения
Termometr.zip
(4.42 КБ) 223 скачивания
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Soir писал(а):Можно, добавлю чуть позже.

Добавил таймер. Описание, прошивка во вложении. Может неправильно понял его работу - говорите.
Точность отсчета времени весьма относительная. За эталон берется частота сети...
В Proteus при смене прошивки нужно сделать сброс EEPROM или взять файл Termo_876.DSN из вложения.
Вложения
Termometr_16F876_PWM_v2.5.zip
(33.51 КБ) 228 скачиваний
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Добавил таймер. Может неправильно понял его работу - говорите.

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

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

Сообщение Soir »

Pavel84 писал(а):...Я представляю этот процесс себе так:
Устанавливаем время таймера (часы, минуты)
Устанавливаем в "положение" On и установленное время начинает отсчитываться назад. Дальше все понятно, при 00.00 отключение нагрузки.

Не понял. Ведь так и сделал. :dont_know:
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Не понял. Ведь так и сделал.

Устанавливаем время таймера (часы, минуты)
Устанавливаем в "положение" On и установленное время начинает отсчитываться назад.

Хм... Может я что-то не правильно делаю. Ставлю время 00.10 (10мин), включаю таймер. А оставшееся время как при запуске симуляции начало отсчитываться назад с 12.00 так и продолжает, причем при истечении 10мин. отключения не происходит.
Я предпологал что какое время поставил, то отсчет с него и начинается. Допустим поставил 00.05 - отсчет начинается с 00.05;
поставил 01.25 - отсчет в обратную сторону начинается с 01.25.
Вот сижу уже полчаса, врубаюсь, симуляция идет. Установленное время 00.05, оставшееся время уже отсчиталось до 11.33, а действый никаких.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Pavel84 писал(а):Хм... Может я что-то не правильно делаю. Ставлю время 00.10 (10мин), включаю таймер. А оставшееся время как при запуске симуляции начало отсчитываться назад с 12.00 так и продолжает, причем при истечении 10мин. отключения не происходит...

Теперь понял в чем вопрос.
Значение таймера извлекается из памяти при включении питания устройства. Если время нужно другое, то после его установки необходимо подождать, пока данные не запишутся в EEPROM (примерно 10 сек, когда устройство перейдет на отображение текущей температуры), выключить и снова включить питание. Тогда будут активированы новые настройки таймера. Таймер будет работать, если включен параметр tr0n.
Если я правильно Вас понял, надо сделать так, чтобы новые настройки таймера вступали в силу сразу?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Для тех, кто скачал Termo_ATMEGA8_v0.zip из поста, перезалил прошивку, исправлен баг при сохранении в EEPROM.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Если я правильно Вас понял, надо сделать так, чтобы новые настройки таймера вступали в силу сразу?

Именно так. Допустим при работе устройства у меня возникла необходимость отлучиться. Прикидываю время сколько процесс еще должен продлиться, устанавливаю это самое время и пошел спокойно.
Тогда впринципе можно добавить еще светодиодную индикацию "таймер включен" А то вдруг на On забуду поставить.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

И кстати.
1. Попробуйте новую прошивку.
2. На вход MCLR (вывод 1 МК) подайте питание не напрямую, а через резистор 10 кОм и с этого вывода конденсатор 10 nF на общий провод.

Ничего не помогло.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Pavel84 писал(а):...Допустим при работе устройства у меня возникла необходимость отлучиться. Прикидываю время сколько процесс еще должен продлиться, устанавливаю это самое время и пошел спокойно.
Тогда впринципе можно добавить еще светодиодную индикацию "таймер включен" А то вдруг на On забуду поставить.

Проверьте все ли так.
Pavel84 писал(а):Ничего не помогло

Возможно не совсем четко работает формирователь сетевых импульсов. Попробуйте кратковременно обрывать прохождение импульсов, закоротив базу-эмиттер транзистора при работе устройства. И закоротить при выключенном, а затем включить и восстановить подачу импульсов.
Вложения
Termometr_16F876_PWM_v2.5.zip
(33.96 КБ) 206 скачиваний
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Проверьте все ли так.

Теперь все хорошо. Единственное только что точка между часами и минутами не светится при индикации времени и установке времени тоже.
Проверил работу таймера в 10 мин. Нагрузка отключилась только на 11мин. 42с. Видимо из-за:
Точность отсчета времени весьма относительная. За эталон берется частота сети...

Интересно что будет при установленном таймере в 10 часов :shock:
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Pavel84 писал(а):...Единственное только что точка между часами и минутами не светится при индикации времени и установке времени тоже.

Это в железе или в Proteus'е? А часы, минуты мигают при установке?
Pavel84 писал(а):Проверил работу таймера в 10 мин. Нагрузка отключилась только на 11мин. 42с.
Интересно что будет при установленном таймере в 10 часов :shock:

Опять же, это в железе? Многовато для погрешности частоты сети. Буду разбираться. В принципе и предполагал, что будут часы идти медленней, но не думал, что настолько. Если Вы определите, путем экспериментов на разное время погрешность, я внесу поправку в программу.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Это в железе или в Proteus'е? А часы, минуты мигают при установке?

Все это в железе уже. Часы и минуты мигают. Если честно при проверке в Proteus не обратил на это внимания.
В принципе и предполагал, что будут часы идти медленней, но не думал, что настолько. Если Вы определите, путем экспериментов на разное время погрешность, я внесу поправку в программу.

На это нужно время. Тогда чуть позже.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Pavel84 писал(а):...Часы и минуты мигают...

Буду искать.
Pavel84 писал(а):На это нужно время. Тогда чуть позже.

Раз это уже в железе, ускорил работу таймера. И чуть изменил его работу. При его активации не сбрасывался счетчик секунд, отсюда возможна погрешность до 1 минуты на все время работы таймера. И сделал так, что отключение устройства будет как только часы и минуты станут равны 0, а то как-то некрасиво, на индикаторе 00,00 (секунд не видно), а таймер еще не отработал.
Вложения
Termometr.zip
(5.01 КБ) 205 скачиваний
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

сейчас буду пробовать.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Раз это уже в железе, ускорил работу таймера. И чуть изменил его работу. При его активации не сбрасывался счетчик секунд, отсюда возможна погрешность до 1 минуты на все время работы таймера. И сделал так, что отключение устройства будет как только часы и минуты станут равны 0, а то как-то некрасиво, на индикаторе 00,00 (секунд не видно), а таймер еще не отработал.

Так наверное нормально будет. Привожу результаты замеров(установленная температура/температура отключения нагрузки):
10мин./10мин 11с.;
20мин./20мин 22с.;
30мин./30мин 05с.
На больше времени не хватило.
А точка между часами и минутами так и не светится :cry:
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

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

Сообщение Soir »

Pavel84 писал(а):...А точка между часами и минутами так и не светится :cry:

Странно...
Чуть подчистил прошивку, попробуйте, а вдруг. И еще во вложении прошивка test.hex. Это та же прошивка, только я в ней поменял местами точки. Если не будет работать точка, отделяющая десятые - проблема в прошивке. Если по прежнему разделительная часы-минуты - проблема в индикаторе.

Кстати, что с проблемами при запуске, Вы делали что-нибудь с сетевыми импульсами?
Вложения
Termometr.zip
(10 КБ) 195 скачиваний
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Странно...
Чуть подчистил прошивку, попробуйте, а вдруг. И еще во вложении прошивка test.hex. Это та же прошивка, только я в ней поменял местами точки. Если не будет работать точка, отделяющая десятые - проблема в прошивке. Если по прежнему разделительная часы-минуты - проблема в индикаторе.

Прошу прощения, виноват. Я же совсем забыл что точка-то у меня не подключена была, а я мучаюсь, да и Вас напрягаю. Все, пора в отпуск!
Кстати, что с проблемами при запуске, Вы делали что-нибудь с сетевыми импульсами?

Заменил резистор R21 (от базы транзистора к общей шине) на 100К + залил крайнюю прошивку и нормально стало, теперь 0,8 не выскакивает :) Уже не стал разбираться из-за резистора это было или дело в прошивке :dont_know:
Сегодня или завтра буду пробовать конкретно на обьекте. Потом отпишусь что получилось.
Pavel84
Открыл глаза
Сообщения: 59
Зарегистрирован: Ср апр 06, 2011 13:50:40

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

Сообщение Pavel84 »

Прошу прощения за долгое отсутствие. Ох уж эти мои командировки :evil:
Попробовал разок все это дело запустить. Вроде все устраивает. Пришлось правда немного изменить расположение датчика, а то некорректно температуру давал. Сейчас уехал в отпуск, так что повторные испытания буду проводить только в августе. Может в процессе многократных испытаний что-нибудь и вылезет, но я думаю нормально все будет.
Спешу поблагодарить Soir за проделанную им огромную работу и оказанную помощь! Без Вас бы я не справился. Спасибо!!!
Аватара пользователя
nvz
Электрический кот
Сообщения: 1056
Зарегистрирован: Чт ноя 25, 2010 16:58:42
Откуда: Средний Урал

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

Сообщение nvz »

Что-то тихо стало в зале! Последний вопрос решился (вроде) и всё?
Теперь я со своей задачкой: мк PIC16F628A, остальное во вложении.

Вопрос снят.
Последний раз редактировалось nvz Чт июл 14, 2011 18:42:19, всего редактировалось 1 раз.
Ответить

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