Привет, Хабр. С праздниками всех читателей! Меня зовут Павел, и одним из моих хобби является создание различных устройств на базе микроконтроллеров. Это моя первая статья здесь, и я буду рад конструктивной критике со стороны завсегдатаев Хабра.
Как и у многих инженеров, рабочее место на моем столе имеет склонность быстро заканчиваться, а последующее привидение всего этого безобразия в потребный вид порой требует больше времени и сил, чем собственно решение рабочей задачи. И в бесконечной череде оптимизаций пространства мой взгляд пал на следующую замечательную парочку: китайская паяльная станция для жал типа Т12 и самопальный паяльный фен, сделанный на Atmega328 еще в те далекие времена, когда Arduino стало для меня откровением. Они занимают много места, задачи у них смежные и зачастую используются оба, к тому же хотелось уже обновиться до жал JBC, а именно C245 c их мощностью (один из китайских клонов сейчас у меня потребляет 10А при 24В питания, 240 ватт мощности в маленьком формате, большинство же жал этого формата потребляют 180-190 ватт, против 70 ватт на жалах Т12) и огромным выбором форм. Решение очевидно: совместить их в одном устройстве. Беглый поиск дал понять, что готового устройства за адекватные деньги (паяльник C245 + фен) не найти. Добавим сюда еще несколько факторов: большой зоопарк жал T12 в наличии, которые бы тоже хотелось использоваться далее, небольшой дымоуловитель, подключающийся сюда же, возможность полной кастомизации готового устройства, от размера и до всевозможных настроек и, конечно, огромное желание творить.
Формирование ТЗ
Был проведен анализ и согласование потребностей и возможностей и выделены основные моменты:
2 канала, один – паяльник, второй фен.
Удобные органы управления – никакого множества действий на единственную кнопку, по итогу пришел к 4 кнопкам + 2 энкодера (так же с кнопками внутри).
Полное отключение, при этом включение с отдельной кнопки на передней панели. Если станция выключена – она должна быть полностью гальванически отключена от сети. Сюда же добавим гальваническое отключение нагревателя фена, если рукоятка фена не подключена, а также отключение станции при возникновении нештатных ситуаций (КЗ в нагревателе жала паяльника, превышение допустимых температур, просто по времени простоя).
Подключение дымоуловителя.
Настраиваемые пресеты: для пары температура / воздушный поток фена, для пары температура / воздушный поток дымоуловителя.
Цветной экран, чтобы было и красиво, и удобно. Разумеется, с учетом моих скромных возможностей в графическом дизайне интерфейсов.
Возможность измерения рабочего тока жала.
Возможность настройки PID.
Возможность калибровки температур по нескольким точкам. Пресеты для откалиброванных жал.
Программная компенсация температуры холодного спая для термопар с применением NTC термисторов. Где расположен термистор, должно настраиваться (в рукоятке, или использовать размещенный на плате контроллера).
Возможность применения и настройки сценария для использования встроенных в рукоятку паяльника вибродатчиков/датчиков положения, а также подключаемых внешне подставок с детектированием установки паяльника.
Схемотехника
Указанные выше пункты и наличие определенных запчастей вырисовывало следующую картину:
В качестве контроллера будет использоваться бюджетный STM32F401RCT6. Всевозможные F407, F446 побережем для задач, требующих большей производительности.
Экран будет использоваться TFT 1.77 ‘’ на базе ST7735S с разрешением 160x128 пикселей. Все должно уместиться, фильмы смотреть на нем не предполагается, а после монохромного экрана от Nokia даже такой экран - техническое чудо.
Так как будут использоваться и жала с последовательным соединением термопары и нагревателя (T12), и с параллельным с общей землей (С245), то температуру придется измерять в паузах ШИМ. Понадобится нормальный ОУ, способный это сделать достаточно точно, хотелось бы rail-to-rail. В наличии были китайские AD823ARZ, они подойдут. Вход ОУ нужно будет защитить диодом от перенапряжения при включенном ШИМ и переходных процессах, ставим параллельно входу диод, а лучше пару, включенных встречно.
Для измерения тока применен ACS712-20A. Конечно, можно обойтись шунтом + LM358, но у нас штучный товар, и хотелось хоть где-то попробовать эти микросхемы.
Так как ACS712-20A требует 5В питания, необходимо 2 преобразователя. В качестве преобразователя 24В – 5В, конечно, просится импульсный DC-DC, например TPS5430, но я поставил простой линейный 78M05 с включенным перед ним последовательно резистором на 22 Ома для уменьшения входного напряжения на нем. Места и денег на этом выиграно не много, поэтому если сейчас вы меня спросите почему – я ответить вам не смогу. В общем, решение спорное, и выбор был не очевиден. Если буду делать обновленный вариант платы, то применю импульсный стабилизатор. В качестве преобразователя 5В – 3.3В поставил LM1117-3.3.
Настройки будут храниться в I2C EEPROM AT24C32. Писать будем равномерно, так что износиться в этом столетии не должна.
В коммутацию нагревателя паяльника на первый взгляд просится N-канальный мосфет. Однако, разумных вариантов использования такого варианта коммутации с картриджами жалами, в которых есть термопара, нет. В общем, проще использовать что-то P-канальное. В наличии были AOD403, я перестраховался (эти транзисторы с TAO-BAO) и поставил 2 в параллель для нагревателя, однако и с одним работает нормально, транзистор холодный. Для турбинки фена и дымоуловителя поставил их же, унификация, как никак. В управление их затворами поставил BC817-40.
В каналы измерения температуры NTC поставил супрессоры PESD3V3L1UA.
Добавил канал измерения напряжения питания станции. Тут простой делитель.
Управлять ШИМ нагревателя термофена будет симистор BTA12-600 с драйвером MOC3063.
Управление первичным питанием всей станции и отдельно нагревателя фена вынесено на отдельную печатную плату. Коммутация с основной платой через 4-ех проводной шлейф: земля, сигнал включения станции, сигнал подключения нагревателя термофена, сигнал управления симистором. Габариты и крепежные отверстия у плат одинаковы в целях установки единым пакетом через стойки.
PCB
После проектирования платы приняли свой конечный вид. Единственным нюансом в трассировке стало то, что микроконтроллер, его обвязка в виде кварца, EEPROM и еще немного пассивной рассыпухи расположились под TFT экраном. В любом случае экран монтируется последним уже после отмывки платы.



Платы были разведены и заказаны на производство в Китае. Оставалось только ждать. По приходу все было смонтировано и отмыто. Несоответствий по посадочным местам и возможности реализации не возникло. Настал этап написания прошивки.
Прошивка
Прошивка писалась в STM32CubeIDE с использованием HAL. До чего-то более низкоуровневого я пока не дорос, а HAL позволяет мне в условиях жестко ограниченного на хобби времени создавать рабочие устройства. После Arduino даже HAL, который многие профессионалы, мягко говоря, недолюбливают, дает огромные возможности в плане контроля.
Небольшие пояснения для тех, кто захочет разобраться в творящемся внутри микроконтроллера хаосе.
Большая часть кода выполняется в асинхронном режиме.
Таймер TIM2 обслуживает ШИМ нагревателя термофена. Коллбек окончания периода таймера вызывает функцию получения результатов от PID регулятора.

Таймер ШИМ нагревателя жала паяльника TIM5 работает на протяжении всего времени работы прошивки, заполнение считается PID регулятором. В коллбеке завершения периода таймера вызывается однократно отрабатывающий таймер TIM10, отсчитывающий задержку на переходные процессы перед вызовом ADC, а также подсчитывается выход PID регулятора для работы паяльника. По завершению работы ADC вновь запускается TIM5, а так же TIM10 (с соответствующим флагом, для последующего запуска ADC и получения тока жала). Таким образом связка TIM10 + ADC отрабатывает дважды за один период таймера ШИМ, на старте периода (для измерения тока) и по его завершению (для измерения все остальных каналов ADC). Коллбек завершения импульса таймера устанавливает флаг слишком короткого импульса для измерения тока в случае, если он вызывается во время работы связки TIM10 + ADC.
Коллбек завершения периода таймера TIM2 (таймер ШИМ для нагревателя термофена) вызывает подсчет выхода PID регулятора для работы термофена.
Коллбек завершения периода таймера TIM11 поднимает флаг необходимости обновления изображения на экране. Отрисовка изображения в свою очередь состоит из 2 независимых процедур: однократная отрисовка скелета при смене отображаемой страницы, и непрерывная отрисовка по флагу таймера TIM11 того, что может измениться на текущей странице. Так же на внешних прерываниях завязаны четыре кнопки управления, энкодеры и их кнопки. Прерывания возводят флаги, которые уже обрабатываются в основном цикле. Так же коллбек используется для подсчета времени перехода инструмента в спящий режим с удержанием температуры и его последующего выключения.
Коллбеки обработки событий таймеров
void HAL_TIM_PWM_PulseFinishedCallback (TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM5)
{
if (flag_ADC_Start)
{
flag_ADC_need_restart = true;
}
}
}
void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM2)
{
PID_REG_HOTAIR ();
}
if (htim->Instance == TIM5)
{
HAL_TIM_PWM_Stop_IT (&htim5, TIM_CHANNEL_4);
HAL_TIM_Base_Start_IT (&htim10);
flag_TIM5_Pulse_Start = false;
flag_ADC_Start = true;
PID_REG_IRON ();
}
if (htim->Instance == TIM10)
{
HAL_TIM_Base_Stop_IT (&htim10);
HAL_ADC_Start_DMA (&hadc1, (uint32_t*) &adc, ADC_CHANNELS);
}
if (htim->Instance == TIM11)
{
flag_update_UI = true;
IRON_ext_sensor = HAL_GPIO_ReadPin (EXT_SENSOR_GPIO_Port, EXT_SENSOR_Pin);
IT_SLEEP_count_IRON++;
IT_SLEEP_count_HOTAIR++;
}
}Остальной код (обработка флагов прерываний с кнопок управления, фильтрация результатов работы ADC, проверка защитных параметров, проверка переходов в режимы удержания температуры и отключения, запись в EEPROM при необходимости) имеет более низкий приоритет и обрабатывается в бесконечном цикле.
Графический интерфейс

Основное окно интерфейса логически поделено на несколько зон. В верхней зоне отображается установленная температура, установленный поток воздуха, текущая температура. Левая часть относится к паяльнику и дымоуловителю, правая к термофену. Цвет температуры меняется в зависимости от того, включен ли инструмент, находится ли он в подставке, или же вообще отсутствует. В средней части расположены прогресс-бары текущей мощности, номера пресетов температуры для паяльника и термофена соответственно, номер пресета инструмента для паяльника, рабочий ток жала, напряжение питания, режим работы для паяльника и фена (собственно работа, удержание пониженной температуры в подставке, отключение инструмента). В нижней зоне расположены подсказки для навигации по различным меню для четырех кнопок управления.
Все остальные страницы меню выполнены примерно в одном стиле с типовой навигацией с помощью кнопок и изменением значений при помощи энкодеров.
Практически все, что может быть настроено, можно изменить и сохранить в EEPROM, не прибегая к редактированию исходников и перепрошивке.
Текущие настройки:
Настройки для паяльника/термофена:
MIN TEMP – минимальная температура, которую можно установить
MAX TEMP – максимальная температура, которую можно установить
STEP TEMP – шаг изменения температуры
MIN FLOW – минимальный поток воздуха, который можно установить
MAX FLOW - максимальный поток воздуха, который можно установить
STEP FLOW – шаг изменения потока воздуха
TOOL NTC – выбор NTC, установленного в рукоятке
TOOL SENSOR – установлен ли в ручке сенсор
SLEEP TIMER – время, через которое инструмент перейдет в режим HOLD, будучи установленным в подставку
Дополнительные настройки:
INT NTC – выбор встроенного в плату станции NTC
0 CURRENT – показания АЦП для нулевого тока ACS712-20A
K CURRENT – коэффициент коррекции для измерения тока жала
K VOLTAGE – коэффициент коррекции для измерения напряжения блока питания
K INT NTC – коэффициент коррекции для измерения температуры встроенным NTC
K IRON NTC – коэффициент коррекции для измерения температуры NTC, встроенным в рукоятку паяльника
K HOTAIR NTC – коэффициент коррекции для измерения температуры NTC, встроенным в рукоятку фена
TIME OFF – время перехода инструмента из режима HOLD в режим OFF
OVERCURRENT – максимальное значение тока жала паяльника. При превышении нагрев прекращается
Настойки для конкретных инструментов:
P – коэффициент P для PID регулятора выбранного инструмента
I - коэффициент I для PID регулятора выбранного инструмента
D - коэффициент D для PID регулятора выбранного инструмента
ADC (Δ 0°C) - ADC (Δ360°C) – показания АЦП при заданной дельте температуры термопары и холодного спая.
Корпус

Контроллер из двух плат, соответствующий блок питания (24V, 12.5A), колодка для подключения внешнего кабеля питания и вентилятор для обдува внутреннего содержимого были установлены в напечатанный на FDM принтере из серого PLA корпус. Рукоятки для энкодеров и щиток, закрывающий щели у экрана, напечатаны на SLA принтере из серой ABS-like смолы. Размеры готового блока 19x11x18 см, которые можно значительно сократить, применив более плотную компоновку блока питания и разъемов, а также версию вентилятора с толщиной 10 мм.
Итоги
Что же в итоге? На выходе получился вполне рабочий вариант инструмента с возможностью его полной адаптации под себя и свои нужды.

Плюсы:
Опыт. Программирование STM32 в CubeIDE для меня - значительный шаг вперед после Arduino.
Полная кастомизация устройства и адаптирование под себя по мере необходимости.
Станция паяет. Жала C245 себя полностью оправдали, они действительно оказались намного производительнее T12. Там, где раньше приходилось ставить более крупное жало, теперь вполне справляется наиболее ходовой у меня размер BC1.6. А если воткнуть BC5, то размер полигона становится совершенно не важен. В плане термофена никаких неожиданностей – то, что раньше работало на Atmega328 с обычным пропорциональным регулятором, так же отлично работает и с PID регулятором.
Минусы:
Потраченное время. От идеи до готового устройства прошел год, разумеется, с учетом лишь периодической работы над ним. Лично для меня минусом не является (не считаю, что время, потраченное на хобби, стоит расценивать как упущенное), однако многие выберут вариант получить готовое устройство здесь и сейчас.
Наверняка, не самые оптимальные алгоритмы работы. Я уверен, что инженеры из того же AiXun намного сообразительнее меня, и их устройство позволяет полнее раскрыть потенциал жал C245.
Экономическая составляющая. Если учесть стоимость всех компонентов, производства плат и печати корпуса, то становится ясно, что в соревновании «кустарщина» против «массового производства в Поднебесной» в самом лучшем случае можно сыграть в ничью.
Разъем для заливки прошивки стоило разместить со стороны лицевой панели. Еще более интересным вариантом было бы вывести USB и применить небольшой bootloader для заливки прошивок по USB без программатора.
Повторил бы я для себя такой опыт при возникновении очередной необходимости в том, что можно купить, пусть и без полного соответствия с поставленными требованиями? Определенно да, случай не заставит себя долго ждать.
Репозиторий на Github для тех, кто захочет посмотреть проект подробнее.
Комментарии (31)

Albert2009Zi
05.01.2026 07:36Огнище. Для хобби проекта, на мой взгляд, очень достойно, да что там - хайэнд. Плюс год на устройство полностью, отлично.
HAL не так важен, если у вас все получилось и вам не критична жесткая атомарность операций. Не заморачивайтесь, с Вашим подходом и энтузиазмом CMSIS и даже ASM освоить будет легко. Удачи и плюс в карму от меня.
p.s. Любопытно по графике. Вы писали свою библиотеку или воспользовались сторонней?
p.p.s. Вы и БП станции сами разводили и паяли?

Am0k-HABR Автор
05.01.2026 07:36Спасибо за такой отзыв. Буду работать над собой и дальше.
По графике я брал готовую библиотеку. Добавил по минимуму, вроде отрисовки прогресс-баров. Вообще из библиотек чужие это как раз для работы дисплея и I2C EEPROM (в ней добавил циклическую запись/чтение структур в память по указанному диапазону адресов для увеличения ресурса памяти), а остальное своё (кнопки, преобразование данных АЦП в реальные величины по таблицам, кольцевой буфер с фильтрацией, PID).
БП брал готовый, с Алиэкспресс, такого типа БП уже давно трудятся у меня в ЧПУ, можно сказать что они себя зарекомендовали.

shlmzl
05.01.2026 07:36БП брал готовый, с Алиэкспресс, такого типа БП уже давно трудятся у меня в ЧПУ, можно сказать что они себя зарекомендовали.
Может чего-то не понимаю, но раз вы уже собаку съели на этих БП, ну влезли бы уже микроконтроллером в цепь регулировки его выходного напряжения. И регулировали бы мощность на нагревателе через эту цепь, Скрипач в смысле PWM не нужен со всеми его 10-амперными закидонами, у вас и так есть уже PWM внутри БП. Нагрев на время измерения температуры можно отключать, если нужно.

sim2q
05.01.2026 07:36HAL не так важен,
С таким процессором и для дома - просто прекрасно, т.к. легко сможет каждый быстро переконфигурить и поправить если что. Тоже писал и дописываю "на регистрах", но у меня как то изначально сложилась F0 серия и постоянно память заканчивалась. Сейчас так конечно уже делать не буду.

Albert2009Zi
05.01.2026 07:36Я немного костно выразился. Имелось ввиду - не стоит переживать, что код написан с использованием HAL, а не CMSIS.

sim2q
05.01.2026 07:36Аккуратно сделано, приятно посмотреть внутри.
А зачем у вас реле ещё и через оптрон управляется?
Частоту ШИМ нагрева жала уточните пожалуйста.Еще более интересным вариантом было бы вывести USB и применить небольшой bootloader для заливки прошивок по USB без программатора.
Очень хорошее дополнение по себе знаю. Когда кол-во поделок возрастает, то возня с подключением начинает доставать. Может вообще без проводов, BT ? Я просто не очень в теме как сейчас уже делают, исторически ещё на RS485 :)
ps имея принтер, мордочку я бы конечно потщательнее задизайнерил :)
Am0k-HABR Автор
05.01.2026 07:36По поводу второй платы - в дальнейших планах на ней плате поставить свой маломощный блок питания (вроде HiLink). Во-первых, кнопка включения питания тогда будет коммутировать маломощный БП, а не тот что сейчас. Это даст существенный прирост к времени ее жизни и позволит убрать NTC, который в данный с ней последовательно стоит, чтобы контакты кнопки не обгорали при включении и зарядке конденсаторов в высоковольтной части БП. А во вторых - полностью гальванически развязать платы друг от друга, сейчас, несмотря на эти оптроны, они связаны по земле. Если такой целью не задаваться, то, разумеется, проще и уместнее было бы выкинуть эти пары оптрон - полевик и коммутировать землю обмотки реле через NPN транзистор.
ШИМ сейчас стоит 25 Гц. С теми жалами что у меня (все сплошь китайцы до 1000 рублей) увеличение частоты прироста уже не дает. А вот если представить некое "идеальное" жало с полным совмещением термопары, нагревателя и точки отбора температуры, то частоту стоит поднять. Еще один момент - при частотах выше 30 Гц многие жала неприятно "свистят" (с такими то токами), конечно, они свистят и на 25 Гц, но это не так слышно (сильный завал в АЧХ уха :-) ). Частота, как и все, что можно покрутить и порегулировать, вынесена в отдельный конфигурационный хедер, поэтому ее можно поправлять в исходниках быстро и безболезненно.
Про bootloader я поздновато конечно понял, для конечного пользователя он особо не нужен, а вот если ты разработчик... Ко мне осознание пришло когда я открывал наверное в сотый раз крышку своего принтера, чтобы что то поправить в прошивке. Пришлось написать bootloader под плату в нем, чтобы обновляться с SD карты.

zartarn
05.01.2026 07:36За основу наверно можно было бы взять опесорсную прошивку от ts100, как минимум готовые основные фичи.

Am0k-HABR Автор
05.01.2026 07:36Прошивок на том же github в принципе хватает. И принципиальной разницы не так уж много - обычный PID регулятор + его "обвес" для управления и отображения.

Angrim17
05.01.2026 07:36Когда-то давно, когда станции на c245 были только оригинал, а китайские на t12 только появлялись в виде простейшей станции на 8 сегметниках, я пользовался luckey 702. Большой тяжелой, после кучи доработок, которые все-равно упирались в 900 жала. Только фен меня там и устраивал.
Решил я попробовать Т12 и был в шоке. Прямо новый шаг. Даже контроллера простейшего мне хватилтило. Только вот контроллеров фена не было готовых, станции готовые с Т12 и феном тоже, а хотелось совмещенного. Пришлось делать.
Под паяльник взял готовый покупной контроллер на 8-сегментнике.
Контролер фена собирал на двух stm8s003. Один отвечал за индикацию(такой же 8 сегментник как на паяльнике), второй логикой. Была у меня жменька, использовал что было.
Нагреватель управляется симмистором, вентилятор фена полевиком с шимом, чтобы избежать 220 на нагрветеле при пробитом симмисторе и выклюяенном фене(болезнь luckey 702) реле, которое снимает 220 когда не надо. А главное: 3 ячейки памяти с режимами. Каждый режим-это температура + скорость обдува. Каждый включается своей кнопкой. Управление таким же энкодером как на паяльнике.
При выклбчении фена отключаем нагреватель реле, вентилятор на максимум и ждем 50 градусов.
Сначала пытался реализовать PID, но мк мелким оказался, увидел у других что бывает достаточно простейшей логики "меньше заданной температуры - открываем симмистор, выше - закрываем". Стабильности для фена оказалось достаточно.
Потрачено много времени, повторять не буду, но работает до сих пор.
Добавил готовый step down dc/dc с ограничением тока, индикатор вольт-ампер, упаковал все в atx блока питания корпус, в качестве питания он же, переделанный на 24в. Получился комбайн из пальника-фена и недолабораторника, чего в принципе оказалось достаточно

Am0k-HABR Автор
05.01.2026 07:36Да, полноценный PID для фена не обязателен, он вполне и с простым пропорциональным регулятором работает. А вот для паяльника D составляющая нужна, именно она вносит наибольший вклад вначале интенсивного отбора тепла при касании жалом паяльника.

atd
05.01.2026 07:36О да! Моя история начиналась ещё с советских паялок, потом переход на 900-ю серию был просто революционным прорывом!
Потом так же, Т12 стала новой эрой по сравнению с 900, а потом — с т12 на с245 снова шаг в новую эру.
Жду не дождусь, что ещё нового придумают, и когда мы шагнём в эту новую эпоху :)
P.S.: фен я всё-же предпочитаю в виде отдельного устройства...

VM1989
05.01.2026 07:36По поводу HAL могу сказать, что это нормальная библиотека и пользоваться HAL - это нормально. В 99% случаев совершенно абсолютно нафиг не надо заниматься ерундой и писать на SPL, и уж тем более на ассемблере.
А вопросы производительности решаются правильным выбором микроконтроллера и умением работать с периферией. А не написанием какой-то нечитаемой дичи на ассемблере, которую сам автор уже через неделю не может прочитать.

iganiv
05.01.2026 07:36Тоже занимался похожим проектом. Даже, вроде, что-то получилось. Но я имел некоторый опыт разборки профессиональных станций от Ersa и Pace, из чего я сделал некоторые выводы (может, кому понадобится):
Они не используют импульсные источники питания. Только трансформаторы. Возможная причина - из-за входного фильтра многих ИИП. Там стоят две ёмкости с фазы и нуля на землю, и, если, вдруг, корпус ИИП нормально не заземлен, то эти ёмкости образуют емкостный делитель напряжения на 2, из-за которого человека постоянно трясёт 110 вольт. Я лично так сжег несколько очень дорогих приборов, воткнув их в домашнюю розетку. Но, наиболее вероятно, причина не только в безопасности и надежности, но и в пункте 2 (ниже). Если кто-то знает еще причины - поправьте.
Они не используют постоянное или импульсное напряжение питания нагревателя. В каких-то документах Ersa видел, что применение не переменного тока для питания керамического нагревателя сокращает срок его службы в несколько раз. Я мерил силовые провода нагревателя этих станций токовым пробником осциллографа - там действительно синус с фазовой регулировкой.
И вопрос к автору: как Вы решили проблему коэффициентов PID-регулятора во время первоначального запуска? Ведь коэффициенты, которые хорошо работают в рабочем режиме, дают огромный выброс температуры при холодном старте, у меня чуть ли не до 500 градусов доходило...

Am0k-HABR Автор
05.01.2026 07:36Вообще линейный блок питания на входе был бы к месту. Но масса, размеры и цена...
Применение полноценного синуса для коммутации это, конечно, хорошо. Пока цена не оригинальных жал не оправдывает такой оверхед. Буду смотреть, на Т12 станции за время около 5 лет ни один нагреватель не умер. Несколько жал облезли (в основном та часть, что прилегает к рабочей, со временем тоже стала лудиться), но выйти из строя не вышло ни одно. Надеюсь C245 так же окажутся живучими.
Холодный старт идет в режиме "предпрогрева" с уменьшенным коэффициентом P и отключенными I и D до достижения установленной дельты температур, затем начинает работать полноценный PID. Это позволило уменьшить "выбег" до 10-20 градусов, в зависимости от жала. В планах немного усложнить алгоритм, чтобы он в режиме предпрогрева динамически менял коэффициент P для достижения определенной скорости набора температуры (скажем, 50 ° С/сек), что позволит одинаково эффективно прогревать жала вне зависимости от их теплоемкости и даже типа.

iganiv
05.01.2026 07:36Да, собственно, это я и хотел услышать. Я тоже тогда к этому пришёл (к динамическим коэффициентам). Возможно, мне было немного сложнее, чем Вам, так как я использовал безинерционные нагреватели от Ersa на 150 ватт. В более медленной системе должно быть попроще. Что сказать - успехов Вам с проектом, к сожалению, не могу поставить плюсик, так как наполучал огурцов от местных минусаторов всего за один коммент. Так что моральный плюсик! Если, вдруг, надумаете делать на синусе - могу подсказать, как это реализовать на F103 только лишь на одном прерывании и железках. Я на это тоже около полугода потратил

zatim
05.01.2026 07:36Я когда делал pid на самодельном фене тоже с этим столкнулся. Но я еще проще поступил. Если разница с уставкой более скольки то там градусов, фен просто жарит на полную, без всякой логики и шим. Если меньше - там уже подхватывает pid, начинается диммирование и выход на уставку. Как то так.
А с нуля выйти на уставку только одним pid у меня тоже не вышло) я очень долго сидел, игрался с коэффициентами, пару раз даже получалось что то подобрать, но все не то.

iganiv
05.01.2026 07:36А сам фен вы готовый брали? Или сами делали? Я видел фен от Ersa - там внутри в роли нагревателя намотана пружина толстым проводом (около 1-1.5 мм диаметром). И питается он большим током и маленьким напряжением. Я очень впечатлился этой идеей, так как этот фен буквально вечный! Я крайне не люблю вообще все, что питается напрямую от 220 вольт - вентиляторы, нагреватели и тому подобное, так как это очень ненадежно. Вентиляторы приходится мотать проводом толщиной с волос, чтобы достичь нужного минимального сопротивления, с паяльными фенами также. В результате, тонкий нихром часто перегорает где-нибудь посередине…

zatim
05.01.2026 07:36Брал готовый. Он продается как сменная запчасть для какой то китайской станции. Там нагреватель на 220, а вентилятор на 24, если я правильно помню.

HardWrMan
05.01.2026 07:36И питается он большим током и маленьким напряжением. Я очень впечатлился этой идеей, так как этот фен буквально вечный!
Ага, ага... Паяльник ЭПСИ-65Вт/220В (ака "Момент") не даст соврать...


zhka
05.01.2026 07:36Для защиты от п.1 нужно заземлять корпус станции.

iganiv
05.01.2026 07:36Спасибо за совет, будем знать! А если серьезно - я за свою практику ни раз встречался с удлинителями без провода заземления внутри (хотя контакты заземления и в вилке, и в розетке есть), с заземлением в ВВ-установках, выполненным длинной спиралью из земляного провода (ну блоки-то из стоек вытаскивать удобнее!), или вообще с заземлением, отпиленным болгаркой на другой стороне шины (на предприятиях, где земля была ещё разведена шиной по всему зданию). То есть, вам никто не может гарантировать наличие реального заземления в здании. Мало того - в России испокон веков нормальное заземление не использовалось вообще нигде. Везде защитное зануление. Каждый раз, когда я прихожу на новое место работы, приходится во дворе закапывать этот треугольник в землю (мой основной профиль - микроизмерения всяких там пикоампер, нановольт и тому подобное). Ибо без настоящего заземления те же 7 или 8 разрядные вольтметры ловят помехи буквально отовсюду. А в нашем случае еще и шарахнуть может… нет, спасибо, я лучше трансформатор поставлю.

zatim
05.01.2026 07:36Не обязательно иметь заземление в здании для безопасной пайки. Главное - соединить земли паяльника, измериловки, питания, рабочего стола и прочих приборов в эквипотенциальную сеть. Ну и самому можно до кучи подключиться браслетом с этой сети. Этого будет достаточно чтобы не палить транзисторы.
zatim
Поражаюсь вашей настойчивости) у меня проекты если не доходят до логического завершения за неделю-две, максимум месяц, то отправляются в долгий ящик.
VT100
"Подержите мой коньяк". Около 5 лет. Хотя min. val. hardware было получено в течении пары недель - возникли вопросы с производительностью. Которые я время от времени пытаюсь разрешить. Пару раз в год, примерно.
HardWrMan
5 лет далеко не предел. Один из моих проектов только на 8 год сдвинулся с мёртвой точки и закончился на 11 году. Просто поражаешься, как быстро улетает время...