Page 18 of 109

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

Posted: 04 Mar 2010 08:06
by Andrey
Advent» 03 мар 2010 13:46
в файле kdd.c изменяю значение 900 в if (DeltaT < 900) на 5 для макс. предела регулировки 0.5 но почему-то изменений не проиходит ====
Измени if (DeltaT < 900); на if (eeDeltaT < 900);

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

Posted: 04 Mar 2010 10:31
by hardlock
Andrey wrote:eeDeltaT
этот параметр храниться в энергонезависимой памяти. А в работе учавствует "DeltaT ".... вроде. :rofl:

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

Posted: 04 Mar 2010 10:57
by Joberr
а я вот думаю что писать нужно сюда
case 2:
if (DeltaT < 250) //ставим 5 для макс дельты 0,5
{
DeltaT ++;
RefreshDisplay();
}
Counter = 5;
break;
}

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

Posted: 04 Mar 2010 13:05
by Andrey
А в работе учавствует "DeltaT ".... вроде.====
Извиняюсь протупил, надо внимательнее посты читать.

Добавлено спустя 3 минуты 25 секунд:
Такой вопрос.Как сделать что-бы когда Tnew<=Tуст на PORTD.2 были импульсы 2сек-1, 10сек-0
Вставлял delay_ms но ето не то так как пока крутится пауза экран не горит, а на больше кебы не хватает. Нужно для управления трехходовым краном.
Temp = T_LoadOn + DeltaT;
if ((Tnew >= Temp)) //температура больше установленного предела
{
PORTD.3 = 1;
PORTD.2 = 0;
LoadOn = 0; //
}
if ((Tnew < Temp) & (Tnew > Т_LoadOn)) //температура в рамках установленного предела
{
PORTD.3 = 0;
PORTD.2 = 0;
LoadOn = 1; // горит
}
if ((Tnew <= Temp)) //температура ниже установленного предела
{
PORTD.3 = 0;
PORTD.2 = 1;
delay_ms (2000)
LoadOn = 0;
PORTD.3 = 0;
PORTD.2 = 0;
delay_ms (10000)
}

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

Posted: 04 Mar 2010 22:58
by grey4ip
Andrey wrote:Как сделать что-бы когда Tnew<=Tуст на PORTD.2 были импульсы 2сек-1, 10сек-0
предлагаю устанавливать глобальный флаг + используя глобальную переменную и таймер, генерировать импульсы требуемой длительности.
или подцепить к этому пину 555 таймер.
Andrey wrote:if ((Tnew <= Temp)) //температура ниже установленного предела
по идее должно быть:

Code: Select all

if ( Tnew <= Т_LoadOn ) //температура ниже установленного предела
или

Code: Select all

Temp = T_LoadOn;
if ( Tnew <= Temp ) //температура ниже установленного предела
Advent wrote:Хотелось бы ещё сделать рег. дельта от 0.1 до 0.5
в ближайшее время выложу прошивку в которой вынес в отдельный файл эти параметры. пример кода

Code: Select all

#define MaxAllowT       1500 // Макс. температура      1500 = +50°C
#define MinAllowT       899  // Мин. температура        899 = -10.1°C
#define DefT_LoadOn     1366 // температура по умолчанию.         1366 = +36.6°C, 1140 = +14°C 
#define MaxDeltaT       100  // Макс. значение дельты 10°C
#define DefDeltaT       10   // Значение дельты по умолчанию 1°C

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

Posted: 05 Mar 2010 22:30
by Andrey
grey4ip»
предлагаю устанавливать глобальный флаг + используя глобальную переменную и таймер, генерировать импульсы требуемой длительности.
или подцепить к этому пину 555 таймер.=====
Такая мысль как 555 была, но хотелось более красивого решения, а вот как воплотить переменую с флагом ...Читая чужие проги все вроде понятно, как что-то свое вставить полный ступор

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

Posted: 06 Mar 2010 11:27
by grey4ip
2 Andrey,
Попробуй добавить следующее после BYTE Counter = 0; :

Code: Select all

BYTE Counter2 = 0;         //служебная переменная, для подсчёта времени
и после, найди if (Counter > 0), и добавь текст между /* For Andrey Start */ и /* For Andrey End */, чтоб получилось:

Code: Select all

if (Counter > 0)                //Counter - переменная для подсчёта времени отображения различных режимов
{                               
  Counter --;                   //если она больше "0", то значит кто-то переключил режим отображения и
}                               //присвоил ей значение отличное от "0". Значит надо декрементировать, 
else                            //пока не станет равной "0".
{
  View = 0;                     //если она =0, то сбрасываем текущий режим на "0"
}

/* For Andrey Start */
if (Counter2 > 0)                //Counter - переменная для подсчёта времени импульса
{
  Counter2 --; // Уменьшаем время
  if ( Counter2 <= 9 ) // прошло 2 сек?
  { PORTD.2 = 0; } // отключаем выход
}
else
{
  if (Tnew <= T_LoadOn) //температура ниже либо равна установленному пределу
    { PORTD.2 = 1;   // Включаем выход
      Counter2 = 11; // Загружаем таймер
    } 
}
/* For Andrey End */

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

Posted: 06 Mar 2010 21:15
by Andrey
grey4ip вернусь с командировки попробую, самый лучший учебник это чужие программы. Вообщем с меня пиво.

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

Posted: 07 Mar 2010 16:32
by SERV222
Всем привет.Прошу помощи,в програмировании не селён.Хочу собрать термостат, незнаю чем прошить, 5-ю проводами не получается так как нет LPTпорта, можно как то попростому через КОМ порт прошить?

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

Posted: 07 Mar 2010 16:34
by hardlock
SERV222 wrote:можно как то попростому через КОМ порт прошить?
на сайте понипрога есть схемы. Читайте, собирайте, шейте.

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

Posted: 07 Mar 2010 19:59
by VirusCz
Доброго времени суток всем здесь общающимся. Есть просьба. Я в электронике полный ноль, но есть нужда собрать данный девайс. Купить компоненты, не составит труда. Так вот, просьба - может ли кто-либо растолковать мне что конкретно и сколько мне нужно купить, чтоб данную штуцку собрать... (Кроме микропроцессора и термодатчика, с ними я разобрался и уже приметил где купить.)
Микропроцессоры есть следующие - ATTINY2313-20SU, ATTINY2313-20PU, ATTINY2313V-10PU. Какой из них стоит брать?

Заранее благодарен за отклики.

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

Posted: 08 Mar 2010 00:24
by Advent
VirusCz , для печатки, которая на страничке со схемой бери ATTINY2313-20SU, если будешь делать свою печатку то лучше под DIP ATTINY2313-20PU

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

Posted: 08 Mar 2010 16:43
by VirusCz
А в чём их разница? Могу взять и то и то! Но мне больше нужнее, если кому не трудно расписать мне остальные компоненты! Наименование, номинал и количество штук, или обозначение в случае SMD 1206 и остальных! Я просто в этом полный ноль! Могу купить и спаять, прошить смогу, телефоны прошивал.

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

Posted: 08 Mar 2010 18:01
by Advent
Разница только во внешнем виде, ATTINY2313-20SU планарное расположение ножек под smd, а ATTINY2313-20PU обычные штырьки (DIP)

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

Posted: 08 Mar 2010 19:27
by Alexander
Доброго времени суток !
Хотелось бы поблагодарить автора за интересный девайс, все отлично работает.Следующей зимой он будет обогревать картошку на балконе у сотрудника. :-)
Точность, кстати, соответствует поверенному термометру с делением 0,2 гр.С :good:

VirusCz,если будете использовать имеющуюся разводку платы, то вот как-то так:
-Микроконтроллер ATtiny2313-20su - 1 шт.
-Датчик температуры Dallas DS18B20* - 1 шт.
-Четырехразрядный светодиодный цифровой дисплей (обязательно динамическая индикация !) - GNQ-5641 (аналог RL-F5610GDAW/D15) (с ОА или ОК).
-Стабилизатор напряжения 78L05 (корпус SOT-89) - 1 шт.
-Реле (например) : BS-114S-10A-12VDC* - 1 шт.
-Стабилитрон BZV55C5V1 (корпус DO-35) - 2шт.
-Транзистор КТ817(у меня - Г )* - 1 шт.
-Диод 1N4148 (корпус LL-34) - 1 шт.

-Резисторы:
100 Ом (0805) - 2 шт.
470 Ом (1206) - 8 шт.
1 кОм (на свое усмотрение)* - 1 шт.
4,7 кОм (0805) - 1 шт.

-Конденсаторы:
0,1 мкФ (1206) - 2 шт.
10 мкФ Х 16В (TAJ-B) - 2 шт.

Микрик - 2 шт.*
* - вне платы.
Вроде все. :dontknow:

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

Posted: 10 Mar 2010 08:44
by Vladimir
Добрыи день, для разроботчиков термостата, один из ваших посетителей вроде уже задавался вопросом о приминении в данной версии термостата пид регулирования , но как то эта тема дальше предложения и не пошла. Уверяю это
полезная функция только в каком направлении двигатся???? :?: :?:

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

Posted: 12 Mar 2010 01:06
by chapay
Доброй ночи.
Запара. Собрал тахометр и термостат на одной печатной плате. запустились оба с первого раза. собирал для авто.
При заглушеном двигателе показывает температуру правильно (температура масла), а при заведенном термометр живет своей жизнью - показания меняються рывками +- 40 градусов, также часто показывает просто 0.0.
датчик включен по 3х проводной схеме. расстояние провода 3м. На термометр провод витая пара в экране. экран GND.
На тахометр провод - витая пара в экране. Экран GND.
Ничего не могу сделать.... выручайте.

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

Posted: 12 Mar 2010 07:22
by Andrey
chapay» 12 мар 2010 01:06======
У тебя скорее всего шум по питанию поэтому 3300мкФ до кренки и 1500 после. Я использую кондеры с материнок. Экран тебе не нужен, попробуй поставить 4.7кОм не на плате, а на датчик. А еще вставить фильтр по питанию с какой нибудь автомагнитолы. Желаю удачи.

Добавлено спустя 4 минуты 31 секунду:
chapay Да чуть не забыл. Желательно подтянуть Reset к +пит. через 10кОм.

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

Posted: 12 Mar 2010 07:34
by hardlock
chapay, экран - лишнее. .только наводок наловить.
Насчёт питания - мне хватало 47мкФ до кренки и 100 после неё. Плюс резистор после диода по питанию.

Насчёт подтянуть ресет и резисоро на датчик - согласен. Можно добавить, что номинал подтягивающего резистора можно пробовать менять от 1к до 10к - иногда помагает.

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

Posted: 12 Mar 2010 08:36
by Kazemir
Добрый день!
Собрал "Термостат 0,1" для поддержания температуры в тепличке. Сейчас в стадии отладки и проверки. Все работает, но беда в том, что иногда происходит сброс установленной температуры (на индикаторе четырехразрядная ерунда). Помогает только перепрошивка процессора. За 5 дней это произошло уже три раза. Подскажите, в чем может быть причина и как с этим бороться. И второе - у кого нибудь ds18b20 заработал по двухпроводной схеме? Все мои экземпляры не хотят работать по 2-х проводке. Уже купил специально ds18b20par (par- это паразитное питание) и тут осечка. Посоветуйте кто знает как бороться с этими проблемами.

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

Posted: 12 Mar 2010 09:00
by hardlock
Kazemir wrote:но беда в том, что иногда происходит сброс установленной температуры (на индикаторе четырехразрядная ерунда).
проблема с питанием. Происходит сброс EEEPROMа.
Kazemir wrote:у кого нибудь ds18b20 заработал по двухпроводной схеме? Все мои экземпляры не хотят работать по 2-х проводке.
у меня работают только старые экземпляры, те которые от Даласа. Сейчас их клепает Максим. Да, ещё можно поиграться с подтягивающим резистором - иногда помагает.

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

Posted: 12 Mar 2010 15:02
by Andrey
chapay Что значит хватало 47 и 100 после. Система зажигания автомобиля (кстати какой автомобиль) особено контактная выбрасывает в сеть иглы 60-150 вольт, 47 и 100 эту энергию могут не проглатить. Также может шуметь генератор, если есть возможность проверь осцилографом. Попробуй дросель на 100mkH до кренки с кондером...

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

Posted: 12 Mar 2010 15:06
by hardlock
Andrey wrote:Система зажигания автомобиля (кстати какой автомобиль) особено контактная выбрасывает в сеть иглы 60-150 вольт, 47 и 100 эту энергию могут не проглатить. Также может шуметь генератор, если есть возможность проверь осцилографом. Попробуй дросель на 100mkH до кренки с кондером...
резистор 51 сглаживает лучще, чем дросель. На таврии стоял тахометр, так там вообще по 10мкФ до и после КРЕНки стояло, правда СМД танталовые. Глюков замечено не было.

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

Posted: 12 Mar 2010 15:24
by Kazemir
VladZ от 2.03.10. в 12:21
В схеме вывод сброса МК висит в воздухе и поэтому, чтобы в EEPROM не прописывалась всякая билиберда при провалах питания нужно повесить супервизор. Я уже давно и успешно использую дешевую альтернативу (подсмотрено когда-то у UA4NX), а именно подключаю светодиод с 20 ножки (+5В) на первую (анодом на +5В) и с первой ножки резистор 3к3 на корпус.
Вопрос такой - какой светодиод надо применить и нужен ли для светодиода токоограничительный резистор или включать надо буквально по написанному. Уточните пожалуйста.

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

Posted: 12 Mar 2010 16:59
by Andrey
Собрал "Термостат 0,1" для поддержания температуры в тепличке. Сейчас в стадии отладки и проверки. Все работает, но беда в том, что иногда происходит сброс установленной температуры (на индикаторе четырехразрядная ерунда). Помогает только перепрошив====
У меня было тоже самое. Управлял через оптосимистор контактором, при вкл-выкл происходил сброс еепрома и самого проца. Блок питания был импульсный. Щас поставил зарядку от НОКИА, там транс, диодный мост после моста поставил 3300мкФ. ТепЕрь даже медлено вынимая вилку сварочного аппарата с той же розетки куда вставлена НОКИЯ неудается сбросить МК...