084-Двоканальний термометр-термостат на atmega8

Уявляю Вашій увазі свій пристрій - двоканальний термометр-термостат. Термостат був зроблений мною на прохання родичів, для підтримки в ящику з картоплею постійної температури. Якщо в інші роки в ньому не було необхідності, то минула зима показала, що він необхідний.

Як датчики використовував DS18B20. Мікроконтролер (ATmega8) працює від внутрішнього генератора, що задає на 4 мГц (додатково, на платі передбачена можливість установки кварцу). Через артефактів динамічної індикації (помітно було підморгування в момент опитування датчика) довелося відмовитися від читання ROM датчика і підрахунку CRC. Проте, в пристрої використовуються два датчика, які підключені до різних висновків МК. Один вимірює температуру зовнішнього повітря, інший в ящику. Термостатування організовано тільки для датчика №2 (ящик).

084-Двоканальний термометр-термостат на atmega8

Термометр-термостат розділений по двом корпусам. В одному керуюча частина і дисплей, в іншому блок живлення і реле управління навантаженням. На платі управління передбачена установка стабілізатора живлення з конденсаторами для живлення мікроконтролера, але так як харчування приходить і так 5 v він не упаяний (в разі живлення від блоків живлення з вихідною напругою більше 5 v, його необхідно впаяти). Корпус управління забезпечений кронштейном який дозволяє встановлювати його як на DIN-рейку або просто саморізами до стіни.

084-Двоканальний термометр-термостат на atmega8

Роз'єми пристрою:
- по USB роз'єму передаються керуючі сигналячи для включення реле;
- через аудіо роз'єми підключені датчики температури.

Так як програма займає 66% пам'яті, вирішено було зробити ще й другий канал управління, на всяк випадок, від РВ5. У даній програмі другого каналу немає, і знадобиться взагалі, поки не знаю, але на ПП другий канал організований в повному обсязі, тільки не встановлено реле.



084-Двоканальний термометр-термостат на atmega8
084-Двоканальний термометр-термостат на atmega8
084-Двоканальний термометр-термостат на atmega8

Опис роботи термостата.
Пристрій має три кнопки для управління. Кнопка (ОК), (Up), (Dn). При включенні харчування на індикаторі висвічується температура датчика №1 (зовнішнє повітря).



При повторному натисканні кнопки (ОК), на дисплей виводиться температура датчика №1, а світлодіод HL1 гасне.


Для зміни уставки порога, необхідно натиснути кнопку (ОК). Значення на дисплеї почне блимати, що сигналізує про готовність до зміни уставки. Уставку можна змінювати в межах від +1 до +10 градусів, з дискретністю 1 градус. Збільшення значення відбувається за допомогою кнопки (Up), а зменшення за допомогою кнопки (Dn). Для збереження уставки або просто для переходу на наступний поріг, необхідно натиснути кнопку (ОК). На дисплеї висвітиться нижній поріг і у четвертого розряду засвітиться нижній сегмент, який вказує, що це нижній поріг.


Для зміни уставки порога, необхідно знову натиснути кнопку (ОК). Значення на дисплеї почне блимати, що сигналізує про готовність до зміни уставки. Після установки порога включення, натискаємо кнопку (ОК) для збереження і виходу з режиму установки порогів термостатирования. Уставки зберігаються в незалежній пам'яті МК і при зникненні живлення не скидаються.

Рекомендую для якісного зберігання картоплі, уставку включення (нижній поріг) обігріву встановити +2, уставку виключення (верхній поріг) +4.

Для зручності контролю стану температури в ящику, був введений додатковий алгоритм сигналізації про низьку температуру в ящику. Що він собою являє? Коли відобразиться температура датчика №1, а температура в ящику знижується (припустимо, через несправність нагрівача) і досягає значення нижче +1 градуса, світлодіод HL1 починає блимати, сигналізуючи про низьку температуру в ящику. Якщо температура в ящику підніметься вище + 2 градусів, світлодіод перестане блимати.

Алгоритм несправності датчиків. При несправності датчика та дисплеї виводиться напис Err №. Номер позначає код несправності від 1 до 3. Цифра 1 означає - немає високого рівня, 2 - немає датчика, 3 - високий рівень не відновлений.


Коли відобразиться температура датчика №1, і сталася несправність датчика №2, то світлодіод HL1 починає блимати, сигналізуючи про несправності. Таким чином, при виведеної на дисплей температурі датчика №1 Ви не пропустите несправність термостата. Природно при несправності датчика №2, обігрів відключається.

Ще кілька моментів. Термостат відключений якщо уставка нижнього порога дорівнює уставці верхнього порогу, або уставка нижнього порога вище уставки верхнього порогу. Якщо несправні датчик №1 або №2, то в меню уставок, значення уставки Ви не побачите, хоча уставку змінити можна, але наосліп. Це зроблено для того, щоб споживач не ліз змінювати уставки при несправні датчики.


Файли для складання пристрою.

Termostat_PCB_ATtmega8_OK - Малюнки друкованих плат термостата
7_seg_term_OK_v2b_ATtmega8 - Исходник термостата на билдер v2b_1
Termostat_7_LED.hex - Прошивка термостата для ATmega8 v2b_1
FuseBits - фьюз для прошивки термостата
Для Algorithm Builder і UniProf галочки ставляться як на картинці.
Для PonyProg, AVR Studio, SinaProg галочки яка ставить инверсно.
Як правильно прошити AVR фьюз

(Visited 12 100 times, 13 visits today)

Навігація по публікаціям

Привіт, SVN.
Планую зібрати девайс по вашому проекту. Цікаво дізнатися який нагрівач ви використовували для Термоящики? Судячи по блоку живлення він видає 12В 0,5А. Тобто нагрівач всього на 6 Вт? Потужність в 6 Вт мені здається не забезпечить необхідний тепловий режим. Або я щось не так зрозумів?)

fizik_89:
Цікаво дізнатися який нагрівач ви використовували для Термоящики? Судячи по блоку живлення він видає 12В 0,5А. Тобто нагрівач всього на 6 Вт? Потужність в 6 Вт мені здається не забезпечить необхідний тепловий режим. Або я щось не так зрозумів?)

Ви помиляєтесь. БП не має нагрівач, а живить тільки схему управління і обмотку реле. А ось за допомогою контактів реле організовано управління нагрівачем. У моєму випадку нагрівачем служить старий фен для волосся, напруга живлення 220VAC.

Дякую за відповідь) тепер все зрозуміло)

Я зібрав термостат.Заработал відразу. Тільки ось температуру показує дивну: мінус 38,6 (обидва датчика) в теплій кімнаті, де приблизно 20 градусів. Датчики (DC18B20) реагують на изменеие температури. при підігріві паяльником температура підвищується до мінус 21 градусів. В чому проблема?

alex52:
Я зібрав термостат.Заработал відразу. Тільки ось температуру показує дивну: мінус 38,6 (обидва датчика) в теплій кімнаті, де приблизно 20 градусів. Датчики (DC18B20) реагують на изменеие температури. при підігріві паяльником температура підвищується до мінус 21 градусів. В чому проблема?

Замініть Ваші датчики DC18B20 на DS18B20 і температура буде відображатися адекватно.

Дякуємо. Старість не радість.

Я вдома перевірив які у мене термодатчики стоять: на них написано DALLAS 18B20. Це DC18B20 або DS18B20?

Це DS18B20. Якраз ті, які потрібні. Поки для мене загадка, чому у Вас такі свідчення. Поки ось що, перевірте ще раз уважно підключення датчиків. Якщо є можливість, поміняйте датчики (бажано придбані з іншого магазину). Зараз я від будинку далеко. Повернуся до кінця тижня. Якщо не чого не знайдете, напишу для цього девайса просту тестову програму без зайвої лушпиння. А там вже будемо намагатися робити висновки.

При подачі живлення на пристрій, на дисплеї висвітилося значення 85,0 * С, а потім приблизно через 2 секунди: -36,3 * С. Потім поміняв датчики місцями: знову висвітилося значення 85,0 * С, а потім приблизно через 2 секунди: -36,5 * С. На жаль я хворів і не зміг придбати нові датчики. Днями я це зроблю і про результати напишу. Дякую вам за допомогу.

alex52:
При подачі живлення на пристрій, на дисплеї висвітилося значення 85,0 * С, а потім приблизно через 2 секунди: -36,3 * С. Потім поміняв датчики місцями: знову висвітилося значення 85,0 * С, а потім приблизно через 2 секунди: -36,5 * С. На жаль я хворів і не зміг придбати нові датчики. Днями я це зроблю і про результати напишу. Дякую вам за допомогу.

При подачі живлення на датчик, датчик записує в регістри значення рівне 85,0, що і зчитує пристрій. Це підтверджує, про правильне перерахунку зчитувальних значень. Таким чином, складається враження, що Вам попалися неліквіди, що велика рідкість. Спробуйте придбати датчики в іншому магазині. Але такий ефект може виникнути якщо на датчик не приходить +5 В. Перевірте відповідність харчування датчика.

Так, Ви мали рацію, датчики виявилися некондиційними. Новий датчик показує нормальні величини. Просто, мені здавалося малоймовірним, щоб два датчика були б однаково некондиційними. Напевно можна проаналізувати роботу цих датчиків і програмно виправити свідчення. На дозвіллі спробую. Дякуємо.

До речі, може це DS18S20? У них різний вигляд представлення температури. Для DS18S20 температура представляється у вигляді 9-бітного значення в додатковому коді, а для DS18B20 у вигляді двійкового числа з розрядністю від 9 до 12 біт. У DS18S20 і DS18B20 крім серійного номера в ПЗУ міститься код сімейства (10h - для DS18S20, і 28h - для DS18B20). У Вас немає програми для читання коду сімейства або програми для роботи з DS18S20?

alex52:
До речі, може це DS18S20? У них різний вигляд представлення температури. Для DS18S20 температура представляється у вигляді 9-бітного значення в додатковому коді, а для DS18B20 у вигляді двійкового числа з розрядністю від 9 до 12 біт. У DS18S20 і DS18B20 крім серійного номера в ПЗУ міститься код сімейства (10h - для DS18S20, і 28h - для DS18B20). У Вас немає програми для читання коду сімейства або програми для роботи з DS18S20?

Немає у мене такої програми. Але якби це були DS18S20, то і значення + 85 * С при старті програми, Ви б не побачили. Це, однозначно шлюб. А шлюб краще повернути в магазин.

а не красивіше буде якщо використовувати двох рядковий дисплей ??

pino24:
а не красивіше буде якщо використовувати двох рядковий дисплей.

Це вже кому як подобається. Для двох сатиричного дисплея, програму доведеться повністю переписувати.

Величезне спасибі розробникам! Хотів уточнити таке питання. Я роблю приблизно такий же прилад, але більш медичного спрямування. Хотів би дізнатися чи є можливість допомогти зі складанням тимчасових діаграм на Ваш прилад і дізнатися б, які пакети і як передають датчики, що потрібно їм послати, щоб їх опитати і яка частота опитування?
Заздалегідь дякую!

Дякуємо. Я читав уже мануал. Але я трохи далекий від принципу передачі даних (немає можливості на пальцях розповісти який пакет, з чого складається, які і де там нулики і одинички?

Краще ніж в мануалі, мені не розповісти, так як там дуже докладно описаний обмін даними з датчиком, мені додати нічого. Не повірите ... перша програма яку я написав, була якраз запити з цієї датчиком. У исходнике даного пристрою можна подивитися як організована передача і прийом даних. Якщо є конкретні питання, то спробую відповісти, але переказувати мануал, я як би не готовий, при тому, що він дуже добре переведений.

Добридень! Хотів дізнатися не могли б Ви описати специфікацію даного приладу. Хотів би дізнатися які саме моделі і марки діодів, транзисторів, кнопок, реле використовувалися.
Заздалегідь велике спасибі.

В даному корпусі кнопки використовував KAN0611-0901B; реле - G5LA-14 5VDC; діоди - HER108; транзистори - КТ3102 (підійде з будь-якою літерою).

Доброго дня! Хотів дізнатися чи є можливість зібрати даний прилад Вами за винагороду звичайно, але з іншим нагрівальним елементом і іншим блоком живлення?

Skifco:
Доброго дня! Хотів дізнатися чи є можливість зібрати даний прилад Вами за винагороду звичайно, але з іншим нагрівальним елементом і іншим блоком живлення?

Ще раз здрастуйте. В силу своєї недосвідченості в цих справах хотів би уточнити, що необхідно змінити в даному приладі, щоб з'явилася можливість працювати від акумуляторів? І якщо можна звичайно, хотів би поспілкуватися з Вами по приладу безпосередньо якщо є така можливість не використовуючи даний форум. Заздалегідь дякую!

Skifco:
Ще раз здрастуйте. В силу своєї недосвідченості в цих справах хотів би уточнити, що необхідно змінити в даному приладі, щоб з'явилася можливість працювати від акумуляторів? І якщо можна звичайно, хотів би поспілкуватися з Вами по приладу безпосередньо якщо є така можливість не використовуючи даний форум. Заздалегідь дякую!

Підкажіть будь ласка не можу в'їхати в роботу цього девайса
Мені потрібен термостат для вирощування біфідобактерії
теном підтримувати 37 градусів а якщо прівишеніе 39 градусів спрацьовує охолодження

Зібрав цей девайс. Поки тільки контролер. При включенні видає Err 1, через пару секунд Err 3. фьюз при прошивці ставив Low - E3, High - D9. В деталях тут помилитися просто неможливо. Плату перевірив ще раз, правильно все. Датчики перевірив на іншому пристрої, працюють.
Що взагалі ця помилка означає?

2GetChiper
Велике спасибі. Не знав, що тут форум ще є. Чи не довелося б купувати індикатор з ОК. Та ще й з якої му непорозуміння запаяв собі з ОА, думаючи, що він з ОК))