Моя модификация
Улучшенного термостата на ATtiny2313 и DS18B20.
Модифицированная печатная плата для применения в инкубаторе (основана на разводке от Hardlock'a) (Работает только с моей прошивкой).
3 варианта прошивки для термостата (для индикаторов с ОА и с ОК (можно использовать с платой/схемой Hardlock'a, главное обратить внимание, где выход аларм, а где - нагреватель) + вариант для моей платы: ОК + NPN транзисторы в катодах)
(Обновление 16.04.2010! Добавлен Watchdog и мелкие косметические изменения.
Обновление 23.05.2010! изменена минимальная температура: 20°C, добавлены различные фьюзы)
HEX:
Termostat_led_**_v0.2_by_Grey4ip.hex - без WatchDog'a
Termostat_led_**_v0.21_by_Grey4ip.hex - добавлен WatchDog
Termostat_led_**_v0.21b_by_Grey4ip.hex - изменена минимальная температура: 20°C. внимание!!! аларм остался прежний 35.0°C - 38.9°C
Termostat_led_**_v0.22a_by_Grey4ip.hex - Исправлена проблема отключения нагревателя при отключении датчика, при коррекции не равной 0. (пожалуйста, проверьте работоспособность) и расширена коррекция до +- 2.5°C
Почитать, как и чем шить -
тут и
тут.
Управление:
Кнопками "+" и "-" устанавливают температуру включения нагрузки (на экране в первом сегменте отобразится символ подчёркивания "_"). При одновременном нажатии обеих кнопок устройство переходит в режим изменения гистерезиса (на экране в первом сегменте отобразится символ "d").
Ещё раз нажимаем обе кнопки - переход в режим коррекции (в первом сегменте "d" меняется на "C", если смещение положительное и "E", если смещение отрицательное).
Длительное удержание одной из кнопок приводит к ускоренному перебору значений. При отсутствии нажатий на кнопки в течении 5 секунд прибор переходит в режим отображения измеренной температуры, при этом происходит запоминание изменённых параметров в энергонезависимую память.
(курсивом выделены добавления к описанию Hardlock'a, касающиеся моей прошивки)
Изменения в схеме, плате:
- Добавлен подтяг 10kOm к +5В (20ый пин МК) на Reset (1ый пин МК) и конденсатор 0,1мкФ между Reset'ом (1ый пин МК) и минусом питания (10 пин МК)
- Плата поддерживает только индикаторы с ОК, так как введены NPN транзисторы в цепи общих катодов (BC847 или BC817 в корпусе SOT23)
- 6 пин (PD2) - вывод аварии (Аларм)
7 пин (PD3) - включение нагревателя (подключается транзистор NPN или полевик с 5-ти вольтовым управлением в корпусе DPAK)
Изменения в прошивке (добавлено, исправлено):
- Аларм, при выходе температуры за устанавливаемые пределы.
- Линейная коррекция характеристики (сдвиг на ±0,1-1°С) (сохраняется в EEPROM)
- Запись в EEPROM значений по умолчанию если EEPROM не запрограммирован или данные повреждены.
- Возможность выбора (за счёт дефайнов в файле tempcfg.h):
- требуемого диапазона регулирования температуры (ограничение значений уставки)
- требуемого диапазона регулирования дэльты
- нижний и верхний диапазон температур, вне которого выдаётся сигнал "Аларм"
Для коррекции характеристики нажимаем две кнопки вместе - переходит в режим установки гистерезиса "d", ещё раз нажимаем обе кнопки, "d" меняется на "C", если смещение положительное и "E", если смещение отрицательное.
Перекомпоновка из исходников:
Перед компиляцией открываем файл tempcfg.h и комментим/раскомментим нужные строки (всё, что после "//" - это комментарий)

.
Для моей платы: В файле
tempcfg.h закомментировать #define Cathode и #define Anode, раскомментировать #define CathodeNPN:
Code: Select all
#define CathodeNPN //раскомментировать, если индикатор с ОК и NPN транзисторами в цепи катодов
//#define Cathode //раскомментировать, если индикатор с ОК
//#define Anode //раскомментировать, если индикатор с ОА
Для схемы с ОК: В файле
tempcfg.h закомментировать #define CathodeNPN и #define Anode, раскомментировать #define Cathode:
Code: Select all
//#define CathodeNPN //раскомментировать, если индикатор с ОК и NPN транзисторами в цепи катодов
#define Cathode //раскомментировать, если индикатор с ОК
//#define Anode //раскомментировать, если индикатор с ОА
Для схемы с ОА: В файле
tempcfg.h закомментировать #define CathodeNPN и #define Cathode, расскоментировать #define Anode:
Code: Select all
//#define CathodeNPN //раскомментировать, если индикатор с ОК и NPN транзисторами в цепи катодов
//#define Cathode //раскомментировать, если индикатор с ОК
#define Anode //раскомментировать, если индикатор с ОА
Открыть в CodeVisionAVR файл проекта
termostat_led.prj, make - Shift+F9, залить в проц hex файл, получившийся с папке с проектом.
Просьба отписываться о результатах прошивки и проверки.
Выражаю благодарность Hardlock'у за термостат и предоставленные исходники платы и прошивки.