Page 21 of 109

Re: Термостат 0,1°C

Posted: 17 Apr 2010 19:33
by Torero
Хочу сделать дополнительный нагреватель в термостата. Когда разница температур между заданой в термостате и реальной больше 20ти градусов, хочу чтобы включался дополнительный обогреватель. Для отладки разницу ставлю в 2 градуса. Програмирую микросхему, но результата нет. В данном варианте при первом прохождении рограммы все время работает оба нагревателя, после достижения нужной температуры оба гасятся. При последующих итерациях работает только один при любой разности температур. Что я делаю не так?

Code: Select all

Temp = T_LoadOn + DeltaT;  

if ((Tnew >= Temp) & (LoadOn)) //Off
{
  PORTD.3 = 0;
  PORTD.2 = 0;              
  LoadOn = 0;
}             

Temp = T_LoadOn;             

if ((Tnew <= Temp) & (!LoadOn)) //On
{
  //PORTD.3 = 0;
  PORTD.2 = 1;
  LoadOn = 1;
  Temp = T_LoadOn - 20; // вот тут хочу если разница температур больше 2х градусов включить оба нагревателя
        if ((Tnew <= Temp))
        {
        PORTD.3 = 1;
        }
    
} 

Re: Термостат 0,1°C

Posted: 17 Apr 2010 22:28
by Andrey
Возникли несколько вопросов.
1. По прошивке. Как правильно прошить Attiny2313 из CodeVisionAVR?
Предлагаю скачать Pony Prog которая позволит работать не только с Code Vision, но и с AVR Studio.
http://www.lancos.com это открытый проект.

Добавлено спустя 17 минут 38 секунд:
Как быть с солнечным коллектором? Сегодня результаты такие Тнаружная=13 , солнце из-за туч, Тколлектор=72(без протока)
HELP SOS

Re: Термостат 0,1°C

Posted: 18 Apr 2010 09:26
by molecul
Предлагаю скачать Pony Prog которая позволит работать не только с Code Vision, но и с AVR Studio.
http://www.lancos.com это открытый проект.
К сожалению, Pony Prog не работает с STK500. У меня с STK500 работают WinAVR, AVR Studio, avrdude, CodeVisionAVR.

Re: Термостат 0,1°C

Posted: 18 Apr 2010 12:05
by Kazemir
molecul!
По всей видимости проблема в неверной цоколевке индикатора. Посмотрите вот эту ссылку, может она поможет http://sohan.com.ua/files/FYS-10012.pdf .
С помощью STK500 и CodeVision программируете вроде как правильно. Попробуйте определить истину с цоколевкой индикатора.

Re: Термостат 0,1°C

Posted: 18 Apr 2010 13:19
by Torero
Цоколевку индикатора тогда уж проще самому определить. Батарейку и 2 проводка в руки, листочек бумаги и соединяя контакты записать какие сегменты загораются) Я так делал, т.к. не нашел даташит на свой индикатор

Re: Термостат 0,1°C

Posted: 18 Apr 2010 19:57
by molecul
Kazemir
Спасибо большое, действительно была ошибка в цоколевке индикатора. Сделал новую печатку под индикатор, подключил к термостату - на индикаторе какие-то странности, не гаснет сегмент "С", первый разряд показывает вообще непонятно что. Кнопками что-от регулируется - увеличивается или уменьшается, но датчика термостат не слышит - подключал по обоим вариантам. Куда копать?

Image

Re: Термостат 0,1°C

Posted: 18 Apr 2010 21:02
by Torero
Почти такие же грабли были. Прозвони дорожку от 11й ножки на предмет замыкания с резисторами возле индикаторов. Я себе покупал резисторы меньшего типоразмера и получилось шота страшное(( 2 раза замыкались дорожки. Ну и сегмент С прозвони. Походу тоже замыкает где-то)

Re: Термостат 0,1°C

Posted: 18 Apr 2010 21:36
by molecul
Да, нашел микросоплю под резисторами - поднял их на капельках припоя повыше. Теперь вроди как все работает и регулируется, но почему-то при установке температуры загорается сегмент D на 1-м индикаторе, в результате на отрицательных пределах цифры выглядят не как -33.3, а =33.3, а на положительных _100.0.

Re: Термостат 0,1°C

Posted: 19 Apr 2010 08:57
by hardlock
"_" - включена нагрузка.

Re: Термостат 0,1°C

Posted: 19 Apr 2010 14:05
by molecul
Ага, понял. спасибо! А что тогда означает точка на первом индикаторе?

Re: Термостат 0,1°C

Posted: 19 Apr 2010 15:07
by hardlock
запустался.
Читаем статью:
Управление:

Кнопками "+" и "-" устанавливают температуру включения нагрузки (на экране в первом сегменте отобразится символ подчёркивания "_").
При одновременном нажатии обеих кнопок устройство переходит в режим изменения гистерезиса (на экране в первом сегменте отобразится символ "d"). Длительное удержание одной из кнопок приводит к ускоренному перебору значений. При отсутствии нажатий на кнопки в течении 5 секунд прибор переходит в режим отображения измеренной температуры, при этом происходит запоминание изменённых параметров в энергонезависимую память.

Индикация:

В первом сегменте отображается точка, если Т < Т уст., т.е. нагрузка включена. Точка отображается во всех режимах, даже при изменении установленной температуры или гистерезиса (если сохраняется условие Т < Т уст.). В этом же сегменте будет отображаться знак минуса "-" при отрицательной температуре.

Re: Термостат 0,1°C

Posted: 19 Apr 2010 20:00
by molecul
Понял, извините за невнимательность, теперь все понятно и все работает, правда пока без нагрузки на контактах реле :) .

Re: Термостат 0,1°C

Posted: 19 Apr 2010 20:04
by Andrey
Torero» попробуй так
Temp = T_LoadOn - 20; // вот тут хочу если разница температур больше 2х градусов включить оба нагревателя
        if ((Tnew <= Temp))
        {
        PORTD.3 = 1; // тут вкл.
        }
   else // а тут выкл
{
PORTD.3=0
}
   

Re: Термостат 0,1°C

Posted: 22 Apr 2010 22:06
by BARBOSSA
Я собрал этот термостат, но мне пришлось выставить фьюз BODLEVEL0.
У термометра был добавлен аккумулятор в качестве резервного источника питания.
Когда аккумулятор разряжался, и индикаторы было практически не видно, у МК слетала прошивка: неправильно отображал температуру, не работала кнопка "+" и переставал управлять нагрузкой.
После установки фьюза BODLEVEL0 третий день работает без сбоев =)

P.S. Если термостат сбрасывается в процессе работы, можно попробовать водвесить выход "RESET" на питание через резистор

Re: Термостат 0,1°C

Posted: 22 Apr 2010 22:08
by hardlock
BARBOSSA, а попробуйте термостат засунуть в морозилку. У меня при остывании МК до 0°C наблюдался постоянный сброс (при включенном БОДе)

Re: Термостат 0,1°C

Posted: 23 Apr 2010 17:51
by BARBOSSA
"RESET" подвесил на питание через резистор 20 кОм, при температуре около -14ºС работал стабильно

Re: Термостат 0,1°C

Posted: 23 Apr 2010 22:04
by Torero
Andrey wrote:Torero» попробуй так
Temp = T_LoadOn - 20; // вот тут хочу если разница температур больше 2х градусов включить оба нагревателя
        if ((Tnew <= Temp))
        {
        PORTD.3 = 1; // тут вкл.
        }
   else // а тут выкл
{
PORTD.3=0
}
   

To Torero (2 датчика и т.п.)

Posted: 26 Apr 2010 16:05
by Alexey
Да не рассердится на меня hardlock за постороннюю ссылку, http://eldigi.ru/site/term/7.php
(Термостат на DS18B20 и ATmega8) - там восемь версий на разное количество датчиков (в том числе - по дельте) и нагрузок. Правда сам не паял, за достоверность не ручаюсь.

Иногда усложнение функций не есть хорошо - мне надо греть две бочки (т. е. 2 датчика и 2 нагрузки) - можно, конечно, попытаться собрать на одном проце и переключаться набором кнопок... но теща это не освоит. Проще и быстрее спаять два раздельных устройства от hardlockа. Хотя идея с двумя нагрузками заманчивая. Например - защита от разморозки контура отопления.

Re: Термостат 0,1°C

Posted: 05 May 2010 00:20
by Zver666
У кого осталась схема печатки под ДИП?
скинте на мыло, плиз.

Re: Термостат 0,1°C

Posted: 05 May 2010 13:16
by hardlock
Alexey wrote:Да не рассердится на меня hardlock за постороннюю ссылку
я добрый :happy:

Re: Термостат 0,1°C

Posted: 08 May 2010 21:45
by hardlock
wellcom, сам спросил, сам решил... И пост удалил... ...Всего-то 40 минут понадобилось! Удачи в начинаниях!

Re: Термостат 0,1°C

Posted: 16 May 2010 13:00
by kijvod
Вот опять проблема нарисовалась.В ТАВРИИ стоял термостат(электронный) на РC18F84,датчик 18в20-включал вентилятор охлаждения двигателя.Прошлой осенью откусил датчик для градусника с этого сайта.Сделал,работает,подарил товарищу.И тут внезапно наступило лето.Машина перегревается,вентилятор включаю тумблером,задолбался контролировать температуру.Решил сделать "термостат 0,1".Точно датчики новые не качественные-и мне пришлось подбирать подтягивающий резистор.На столе заработал без проблем.В машине не хочет.Зажигание сбивает работу микроконтроллера.Раз в секунду (при работающем двигателе)на дисплее показывает какую-то фигню.Между этой фигней проскакивает и правильная температура.Настройки установленной температуры не забывает,гистерезис тоже помнит.Иногда микроконтроллер виснет-на дисплее пусто.Экранировал провода алюминиевой фольгой-не помогает.Отводил датчик от катушки зажигания-не помогает.Не пойму что ему мешает.Может не правильно подобран подтягивающий резистор.Как его правильно нужно подбирать?Кто что подскажет?

Re: Термостат 0,1°C

Posted: 16 May 2010 13:04
by hardlock
kijvod, стабилитроны по питанию и на линии данных стоят? резисторы между линией данных и выводом МК стоят? Подключение 3-х проводное?

Re: Термостат 0,1°C

Posted: 16 May 2010 13:26
by kijvod
Стабилитроны не стоят.Резисторы стоят.Подключение 3-проводное.Попробую поставить стабилитроны.Спасибо за напоминание о стабилитронах.Все запаял стабилитроны(5,6V других у себя не нашел).Пошел пробывать.

Re: Термостат 0,1°C

Posted: 23 May 2010 16:28
by Demckiy
У меня когда устанавливаешь температуру + не работает , а - работает и на индикаторе 1777... как можно сбросить EEEPROM ????(не перепрошивая мк)