Термостат на базе AVR ATTiny15L

Железо

Схема устройства
Спецификация
DD1ATtiny15L
DD2MAX232CPE
Rt100K, 5%, EPCOS B57164J
R14.7K
R215K
R3-R51K
C1-C51мкф, 50В
C64700пф
C71нф
C80.1мкф
VT1КТ815В
K1Tyco, RT184005
Свободное место на плате оставлено под сетевой трансформатор, фильтр-выпрямитель-стабилизатор. Монтировать не стал специально. Всё таки 220В - это высокое напряжения, а я его боюсь!!! Последовательно с R2 включен подстроечник, после чего подключен мультиметр (Mastech-838) и... легким движением отвертки 5% превращаются в 0.8% (кажется такая точность у мультиметра).
Фас
Профиль
Формирователь для RS-232, виден только в отраженном свете ;)
Термистор от EPCOS

Снимок окна терминалки.

Настройки для терминалки

Софт

Архив проекта со всеми файлами, которые нагенерил Atmel AVR Studio 4, Version 4.12, Build 472, Service Pack 2. Там же батник для зашивки AVReAl'ом. Там же два Excel файла с табличкой сопротивлений термостата, там же расчётные значения для таймеров, которые рулят UART'ом.
Программа для экспериментов с таблицей сопротивлений термистора и экспериментов с алгоритмом Брезенхема.
Таблица сопротивлений термистора. Температуры в нём нет, однако: шаг в 5 градусов, начальное значение дано для -55 градусов, конечное - для 125 градусов.
Программа заточена под микроконтроллер ATtiny15L. По причине отсутствия в нём ОЗУ - UART работает в полудуплексе. Размер буфера команд - 10 байт (символов). Для интерполяции (апроксимации???) используется алгоритм Брезенхема. Точность должна быть ~1 градус. Сколько реально - не знаю как проверить ;) При подключении взамен термистора - подстроечного сопротивления, результат получается вполне нормальный. То есть, сопротивление на входе соответствует температуре, выдаваемой термостатом. Команды для общения с термостатом видны на картинке.
Всё что можно - вынесено в прерывания.
Сводная таблица параметров и не только
ПараметрИспользованоБыло всего
ROM (байт)9321024
Регистры3132
RAM00
UARTsoft, 2400бод, 1 стоп бит (1 отсчёт на бит, старт с ножки, далее по таймеру)предельная скорость пока не проверялась
Timers2 (UART + запуск ADC)2
Температура-20 : +125 (увы, 10 бит АЦП не хватило)-55 : +125
Точность1градус (расчётное значение)даже и не знаю, сколько может быть в теории

Другие реализации

Исходный TRM от Dmitry Orlov на базе PIC12F675
TRM от Nicolas Minakov на базе AVR ATtiny45.
(с) Vladimir Rybakov, 2006.