Регулятор температуры в погребе (очередной)

usr-bin
Offline
Зарегистрирован: 04.09.2012

Сделал регулятор температуры для своего погреба.

на базе микроконтроллера Amtel atmega8a. Со светофоро-подобной индикацией состояний.

Включает нагрузку (нагреватель), мигает светодиодами температуру. (дисплеи я пока не освоил, а показывать все нужно было через улицу из гаража в частный дом). МК защищен от влаги герметичной банкой, предусмотрен подогрев МК.

Линии индикации защищены транзисторами, нагрузка включается - транзистором и двумя 5В реле. Монтаж навесной полу-жесткий.

 

Индикационная панель:

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

Фото:

Контроллер, транзисторы защиты в 8-угольном круговом радиаторе, лампа подогрева на фоне схемы линий

Банка, защищающая от испарины, готовая конструкция (индикатр вольтметра только для отладки)

 

Более подробное описание работы, режимов, техническое описание, фото и скетч находятся в архиве:

Описание, скетч, фото

 

usr-bin
Offline
Зарегистрирован: 04.09.2012

Никто не комментирует, но число скачиваний архива постоянно увеличивается.

Неужели все так понятно и безспорно описал и сделал? :)

Zapek@n
Offline
Зарегистрирован: 16.02.2012

Пытаемся понять

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

usr-bin пишет:

Никто не комментирует, но число скачиваний архива постоянно увеличивается.

Роботы... Бесспорно, а не "без порно". :)

usr-bin
Offline
Зарегистрирован: 04.09.2012

мне роднее "беЗспорно". Так понятнее и образ слова есть. :)

AlexFisher
AlexFisher аватар
Offline
Зарегистрирован: 20.12.2011

Интересный подход с кучей конролей.

Только понять трудновато... Вам бы алгоритм нарисовать.

usr-bin
Offline
Зарегистрирован: 04.09.2012

Выкладываю примерный алгоритм:

 

Я не стал этого рисовать, но там ниже, в конце всего идет проверка на температуру воздуха в капсуле с контроллером. Если она ниже +1, то включаем лампочку внутри капсулы, если больше +10 - отключаем.

 

Не подскажете проверенное средство преобразования ардуино-совместимого кода в блок-схемы?

Добавил в архив блок-схему и тройку фот прототипов.

maksim
Offline
Зарегистрирован: 12.02.2012

usr-bin пишет:

мне роднее "беЗспорно". Так понятнее и образ слова есть. :)

беСспорно
приставка бес, т.к. корень спор начинается на глухую согласную.

usr-bin
Offline
Зарегистрирован: 04.09.2012

Предлагаю правила правописания обсудить в другой ветке

А админа прошу очистить тему от разговоров на тему правописания, а попутно и от этого сообщения.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Меня вот смущают пятивольтовые реле (проходной постоянный ток не более 10А) на включение ТЭНа. Не греются релюшки ?

usr-bin
Offline
Зарегистрирован: 04.09.2012

nestandart пишет:

Меня вот смущают пятивольтовые реле (проходной постоянный ток не более 10А) на включение ТЭНа. Не греются релюшки ?

А кто их знает... Я и не знал, что 10А это для постоянного тока.

В общем я не мерял, но.. в прибор стоит в условиях приближенных к уличным (неотапливаемый гараж). Думаю, пока не греются.

 

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

 

П.С. Замечу, что нагреватель воздуха в погребе - полукиловатный.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Я и не знал, что 10А это для постоянного тока.<<

Написано прямо на ней. Насколько я помню " До 10А постоянка и до 30А - переменка".

>>но.. в прибор стоит в условиях приближенных к уличным (неотапливаемый гараж). Думаю, пока не греются.<<

Дело не в общем нагреве а в нагреве контактных площадок. При очередном включении могут прикипеть контакты. Логика не пострадает , но релюшку придется менять.

>>что нагреватель воздуха в погребе - полукиловатный.<<

Какая напруга ? Будем считать допустимые параметры ключей.

>>Можно сделать управление нагрузкой на симмисторе, как я сделал раньше, только радиатор не такой массивный<<

Симистор , тиристор и т.д. это правильней. Радиатор - чем больше тем лучше.

 

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

И еще. Увас там вроде бы шилд релейный ? Есть ли на нем диоды параллельно питанию релюшек ? 

И есть ли опторазвязка управляющих сигналов ?  Если есть то все нормально. А если нет ... вобщем не стал бы я такой модуль использовать.

usr-bin
Offline
Зарегистрирован: 04.09.2012

>Сила тока реле для переменного напряжения  30А, тогда есть многократный запас прочности

Напряжение в сети 220Вольт, мощность 0,5 кВт => сила тока около 2,5 А.

>дело ... в нагреве контактных площадок

понял.

>Шилд релейный.

Да, шилд релейный, с деалэкстрима, но у меня управление инвертированное, подается минус, а не плюс (с транзисторов PNP), я не мог включить штатно, поэтому отрезал от релей все посторонние дорожки и использую от шилда только два реле (на фазу и на ноль однофазного входа питания (обычное 220В "из розетки")). Поясняю: для управляющих усиленных сигналов у меня минусы - управляющие, а плюс - общий. Ну вот так вот я сделал... *смущение*

 

>опторазвязка управляющих сигналов

На сколько я понял, нельзя сделать опторазвязку управляющих сигналов, управляющих постоянным током (нагрузкуой) (оптосиммисторы), поэтому я развязал транзисторами. Возможно я ошибаюсь, но я понял так, что если что сгорит транзистор, то на МК напряжение/ток не пустит. Все транзисторы (PNP), кроме подогрева МК (PNP, включен до подачи отключающего сигнала), включены вот так:

П.С. В предыдущих версиях сборки, когда я использовал симмистр, я его изолировал оптосиммистором (оптопарой).

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Возможно я ошибаюсь, но я понял так, что если что сгорит транзистор, то на МК напряжение/ток не пустит<<

В случае обратного удара (противо ЭДС катушки реле) биполярник прошьет как тряпку , и собственно МК вместе с ним.

Поставьте оптопару между базой транзистора и ногой МК. Так же диод паралельно питанию релюшки (+ диода к мусу релюшки и + релюшки к минусу диода).

Так же на вашей схеме не хватает резюков , 1К последовательно базе транзистора и токоограничитель по питанию релюшки (нужно считать номинал исходя из минимальног тока релюшки).

>>Напряжение в сети 220Вольт, мощность 0,5 кВт => сила тока около 2,5 А.<<

 

Ну вроде как нормально. Хотя стоит тщательно потестить некоторое время. Китайскую сборку китайских деталей никто не отменял.

 

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

nestandart пишет:

Меня вот смущают пятивольтовые реле (проходной постоянный ток не более 10А) на включение ТЭНа. Не греются релюшки ?

Там проблема не в том, что греются, а в том, что при коммутации - возникает дуга, и на постоянке гасить эту дугу гораздо сложнее. У меня примерно в таком габарите релюшки от бесперебойников на 400 ватт - заявлено: 10A 240VAC.

usr-bin
Offline
Зарегистрирован: 04.09.2012

Токоограничительные резисторы 1к в цепи управления транзисторами (база коллектор) есть, прочто не упомянул.

А вот перед катушкой ничего специального нет. Даже диода. О котором знал, но при сборке забыл. Впрочем, транзисторы мощные

- КТ863б (npn 50W 160V 10A >4MHz h>70).

>стоит тщательно потестить некоторое время. Китайскую сборку китайских деталей никто не отменял.
Эта штука собрана 6 января вечером и с тех пор тестится в рабочих условиях (работает). Один раз зависла до сброса питания (включила подогрев погреба, отключила все индикаторы и молчит), в остальном работает нормально. Судя по изменению температуры - подогрев помещения происходит раз в двое-трое суток.

Перенос с мороза в тепло (после получасового высыхания) переносит хорошо, не сбоит после этого как было раньше, без влагозащищенной банки для МК.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

 

>>Впрочем, транзисторы мощные

- КТ863б<<

Толку то ? Прошьет как тряпку.  Диод обязатателен.

usr-bin
Offline
Зарегистрирован: 04.09.2012

Понял. Там по какому принципу диод расчитывается? Наверное, просто напряжение побольше?

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

>>Наверное, просто напряжение побольше?<< 

Да.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

Цитата:
Один раз зависла до сброса питания (включила подогрев погреба, отключила все индикаторы и молчит),

Надо watch-dog timer взводить, чтобы она сама перезапускалась...

void setup() {
...
  wdt_enable(WDTO_8S);
  wdt_reset();  //Good practice to reset the watchdog in setup
...
}

void loop(){
/* Reset watchdog timer */
   cli();
   wdt_reset();
   sei();
...
}

 

usr-bin
Offline
Зарегистрирован: 04.09.2012

гуглю

Нагуглил: WDT это не зависимый от основного генератора таймер. Он ресетит МК, если его долго (указанное время) не сбрасывали.

Пасиба :)

 

usr-bin
Offline
Зарегистрирован: 04.09.2012

А не подскажете, где взять соответствующую библиотеку ?

Что-то ничего не нагуглил, а то ругается у меня на эти функции:

pogreb7.cpp:98:14: error: ‘WDTO_8S’ was not declared in this scope
pogreb7.cpp:98:21: error: ‘wdt_enable’ was not declared in this scope
pogreb7.cpp:99:13: error: ‘wdt_reset’ was not declared in this scope

 

step962
Offline
Зарегистрирован: 23.05.2011

Берем wdt_enable, вбиваем в окно поиска Google. Получаем список.

Первая же запись в нем приводит на страничку с описанием AVR-библиотеки <avr/wdt.h>

Может быть попробуете вставить в свой скетч директиву

#include <avr/wdt.h>

Есть неплохие шансы, что она поможет избавиться от упомянутых ошибок компиляции.

leshak
Offline
Зарегистрирован: 29.09.2011

Если, после применения собаки будет "караул, дуино все-время быстро мигает LED-дом и скетчи не заливаются" - не паникуйте. Это из-за ошибки в бутлоадере некоторых плат. Вывести ее из этого состояния - можно (способ лечения находится поиском тут на форуме. и не сложный). Но вот примянеть watchdog - будет затруднительно (пока не смените бутлоадер в плате в котором уфиксана эта проблема).

Ошибка - четкая. Так что сразу ее заметите. А если не проявится после первой же сработки wdt - значит и дальше с этим проблем не будет. Можно им смело пользоваться.

usr-bin
Offline
Зарегистрирован: 04.09.2012

добавил указаный инклуд. Срабатывает,
но 8 сек и желательные мне 35 (он же температуру мигает) секунд не срабатывают. Срабатывает лишь 2 секунды таймера. Ищу библиотеки и смотрю как увеличить продолжительность.

 

Кстати, светодиод быстро мигал, скетчи не заливались. Я подумал "зависло", выключил питание, включил, залил простой скетч и успокоился :). Выходит, моя тестовая freeduino v.1.16 такую функцию не переваривает :)

 

Ладно, раз тут не работает - пока не буду заморачиватся, а на atmega8 проверю позже, когда соберу очередной тест какого-нибудь нового устройства. По идее - должно работать, там я без бутлоадеров работаю. (компиляция ардуиной, прошивка через spi/isp

maksim
Offline
Зарегистрирован: 12.02.2012

usr-bin пишет:

но 8 сек и желательные мне 35 (он же температуру мигает) секунд не срабатывают. Срабатывает лишь 2 секунды таймера. Ищу библиотеки и смотрю как увеличить продолжительность.

Не найдете вы таких библиотек, 8 секунд это максимум, да и зачем больше? просто нужно почаще сбрасывать и все.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

usr-bin пишет:

Срабатывает лишь 2 секунды таймера. Ищу библиотеки и смотрю как увеличить продолжительность.

Это - аппаратное ограничение. На самом деле, если у Вас один цикл loop выполняется дольше двух секунд - то с этим надо что-то делать... А так - ресетим в начале каждого цикла и никаких проблем.

http://compcar.ru/forum/showthread.php?8406-Watchdog-%D0%9D%D0%B5-%D0%B4...

maksim
Offline
Зарегистрирован: 12.02.2012

Andrey_Y_Ostanovsky пишет:

usr-bin пишет:

Срабатывает лишь 2 секунды таймера. Ищу библиотеки и смотрю как увеличить продолжительность.

Это - аппаратное ограничение. На самом деле, если у Вас один цикл loop выполняется дольше двух секунд - то с этим надо что-то делать... А так - ресетим в начале каждого цикла и никаких проблем.

http://compcar.ru/forum/showthread.php?8406-Watchdog-%D0%9D%D0%B5-%D0%B4%D0%B0%D0%B4%D0%B8%D0%BC-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80%D1%83-%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%BD%D1%83%D1%82%D1%8C

С чего вдруг 2 секунды - это аппаратное ограничение? Смотрим даташит:

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

maksim пишет:

Andrey_Y_Ostanovsky пишет:

usr-bin пишет:

Срабатывает лишь 2 секунды таймера. Ищу библиотеки и смотрю как увеличить продолжительность.

Это - аппаратное ограничение.

С чего вдруг 2 секунды - это аппаратное ограничение? Смотрим даташит.

Да, там есть и про 2 секунды... Если, при данном мной примере в 8 секунд, у человека срабатывает только 2 секунды - ну, значит у него такое аппаратное ограничение выставлено в регистрах. Да и разговор-то шел про то, что "есть 2, а надо 35"... У меня вот этот простенький пример срабатывает и на 4 и на 8...

#include <avr/wdt.h>  
int n = 0;

void setup()
{
  Serial.begin(9600);
  // wdt_enable (WDTO_4S);
  wdt_enable (WDTO_8S);
  Serial.println("WatchDog timer work");
}

void loop()
{
  Serial.println(n);
  ++n;
  delay(1000);
  //wdt_reset();
}

 

 

 

usr-bin
Offline
Зарегистрирован: 04.09.2012

Хорошо. Просто буду вызывать чаще. И придется вернутся к отслеживанию времени горения индикаторов без delay. Тогда думаю уложится в секунду (750 мс отрабатывает измерение температуры).

Благодарю всех за участие, подсказки и, как следствие, совершенствовании моих знаний и умений :)

usr-bin
Offline
Зарегистрирован: 04.09.2012

Регулятор отслужил чуть менее года. И, в принципе, служит дальше.

Только иногда зависает. Всего было замечено 5-6 зависаний, в том числе 4 - сразу замеченных, а одно вызвало подогрев погреба до 11-13 градусов на полсуток :(

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

Вот видео работы. Показан индикатор термостата, который показывает температуру.

M моргов - целые градусы, пауза, N моргов - десятые доли градуса. Перед перечислением цифр градусов, загорается большой красный ободок, что бы человек сосредоточился и скоординировал глаза на нужном месте.

cudla1973
Offline
Зарегистрирован: 21.02.2013

Хорошая статья ! из за неё хочу сделать нечто подобное ,можно сказать погреб на поверхности так как вода близко и погреб копать нельзя ,сделать металический контейнер обшитый пенопластом, внутри не тены ,а самогреющий кабель и  просто ардуино с задающей температуры внутри контейнера например +4 градуса датчик температуры DS1820 главное что бы можно было регулировать температуру кнопками .