Субъективно, собранная мной паяльная станция http://radiokot.ru/forum/viewtopic.php?p=225045#p225045 - более отзывчива!
Решил построить очередной вариант. Вот, что получилось...
... ПИД управление. Держит относительную температуру не хуже +-3град.
Выводит в UART состояние и темпрерату (можно использовать для оснащения LCD или LED экраном).
Все настройки в двух хидерах ss.h - паяльник и has.h - фен. Исходики cvavr прилагаю!
Основой проекта стал алюминиевый корпус, фен от 702, паяльник с нагревателем HAKKO A1321 + вибродатчик, БП ноутбука.
Управление/индикация
Кнопки меня очень раздражают. В идеале - энкодер, но для него нужен показометр, который не вписывался в морду и, как по мне, лишний в таком инструменте. Остановился на потенциометрах. В качестве индикатора - двухцветные светодиоды. Мигает зеленый - температура меньше заданной, горит - температура меньше на дельту (в исходнике задано 3град), горит красный - больше на дельту, быстро мигает красный - перегрев. Попеременное мигание - разница температур 0. Медленно мигает зеленый - паяльник спит. Медленно мигает желтый (зеленый+оранжевый) - ошибка. Не горит - стендбай.
Паяльник включается/выключается кнопкой, засыпает по таймеру, просыпается по датчику вибрации в ручке, выключается по таймеру.
Фен включается/выключается кнопкой (для выключения удержать 2сек) или геконом. Во включенном состоянии кнопкой дискретно (5 скоростей) по кругу меняется поток. При выключении дует на полную до остывания. Выключается по таймеру.
Схема
Контроллер ATMega8. ИОН на TL431.
Донором для питания стал универсальный БП 24В 100 Вт для ноутбука, собранный на UC3843. Питание 5В - связка MC34063+78L05
Паяльником и потоком управляет аппаратный 8 битный шим 15кГц. Ключевые элементы - полевики с логическими уровнями.
Нагреватель фена коммутируется симистором + MOC3063. Регулировка - пропусками полупериодов, но без синхронизации с сетью, ну типа ЧИМ с кратностью 100Гц.
Усилители термопары и терморезистора собраны на LM358. Калибровка программная, опишу ниже.
Настройка проходит в 3 этапа
1 Калибровка потенциометров:
Подключаемся к COM порту ПК на скорости 9600 8N1. В терминале видим строку формата (обновляется 2раза в секунду):
HAS:[has_ctrl] [has_adc_set]:[has_t_set] [has_adc_get]:[has_t_get] [has_heater_pwr]
SS:[ss_ctrl] [ss_adc_set]:[ss_t_set] [ss_adc_get]:[ss_t_get] [ss_heater_pwr] (конец строки)
где
ctrl - флаговые регистры управляющие феном и паяльником (описание в исходнике)
adc_set - результат АЦП с потенциометра
t_set - заданная температура в градусах
adc_get - результат АЦП с датчиков
t_set - температуры от датчиков в градусах
pwr - текущие мощности
Совмещая метку потенциометра со шкалой деления (для фена: 150-450 с шагом 50 / для паяльника: 200-400 с шагом 20) записываем значения adc_set в соответствующие строчки-директивы (в хидерах есть комментарии). Промежуточные данные контроллер рассчитывает с учетом вычисленных коэффициентов пропорциональности. Компилируем, перепрошиваемся.
2 Калибровка датчиков.
Цепляем термометр (я использовал мультиметр) включаем нагрев, и получаем данные adc_set в 3-4 точках.
По данным строим график в бесплатной программе http://www.alentum.com/agrapher/ Точки должны быть на одной прямой, если нет - где то косяк! Затем нажимаем кнопку РЕГРЕССИОННЫЙ АНАЛИЗ/тип регрессии: ЛИНЕЙНЫЙ. В результате через наши точки построится прямая y=a*x+b. Коэффициенты a и b копируем в соответствующие директивы. Компилируем, перепрошиваемся. Проверяем соответствие температур при необходимости повторяем процедуру.
3 Подстраиваем коэффициенты ПИД под себя. Перепрошиваемся. Проверяем стабилизацию. При необходимости повторяем процедуру до достижения желаемого результата.
Вот, собственно, и все. Позже Выложу видео...
ПС в меге остался свободный таймер0 и 40% флеша для плюшек.


