Паяльник на stm32 своими руками
Что является одним из самых важных инструментов в наборе инженера, работа которого связана с электроникой. Это то, что вы, вероятно, любите и ненавидите, – паяльник. Вам необязательно быть инженером, чтобы он вам вдруг понадобился: достаточно быть просто умельцем, которые ремонтирует что-либо у себя дома.
Для базовых применений хорошо справляется и обычный паяльник, который вы включаете в розетку; но для более деликатной работы, такой как ремонт и сборка электронных схем, вам понадобится паяльная станция. Регулирование температуры имеет решающее значение, так как не сжигает компоненты, особенно микросхемы. Кроме того, вам также может потребоваться, чтобы она была достаточно мощной, чтобы поддерживать определенную температуру, когда вы будете что-то припаивать к большому земляному полигону.
В данной статье мы рассмотрим, как можно собрать собственную паяльную станцию.
Разработка
Когда я разрабатывал эту паяльную станцию, для меня были важны несколько ключевых свойств:
- переносимость – это достигается за счет использования импульсного источника питания, вместо обычного трансформатора и выпрямительного моста;
- простой дизайн – мне не нужны LCD дисплеи, лишние светодиоды и кнопки. Мне нужен был просто светодиодный семисегментный индикатор, чтобы показывать установленную и текущую температуру. Мне также нужна была простая ручка для выбора температуры (потенциометр) без потенциометра для точной подстройки, так как это легко сделать с помощью программного обеспечения;
- универсальность – я использовал стандартную 5-контактную штепсельную вилку (какой-то тип DIN), чтобы она была совместима с паяльниками Hakko и их аналогами.
Как это работает
Прежде всего, давайте поговорим о ПИД (пропорционально-интегрально-дифференцирующих, PID) регуляторах. Чтобы прояснить всё сразу, давайте рассмотрим наш частный случай с паяльной станцией. Система постоянно отслеживает ошибку, которая является разницей между заданной точкой (в нашем случае, необходимой нам температурой) и нашей текущей температурой. Он подстраивает выход микроконтроллера, который управляет нагревателем с помощью ШИМ, исходя из следующей формулы:
\[u(t)=K_p e(t) + K_i \int_0^t e(\tau)d\tau + K_d \]
Как можно увидеть, есть три параметра Kp, Ki и Kd. Параметр Kp пропорционален ошибке в настоящее время. Параметр Ki учитывает ошибки, которые накопились с течением времени. Параметр Kd является предсказанием будущей ошибки. В нашем случае мы для адаптивной настройки мы используем PID библиотеку Бретта Борегарда (Brett Beauregard), которая имеет два набора параметров: агрессивный и консервативный. Когда текущая температура далека от заданного значения, контроллер использует агрессивные параметры; в противном случае, он использует консервативные параметры. Это позволяет нам получить малое время нагрева, сохраняя при этом точность.
Температура считывается с помощью термопары, встроенной в паяльник. Мы усиливаем напряжение, создаваемое термопарой, примерно в 120 раз с помощью операционного усилителя. Выход операционного усилителя подключается к выводу ADC0 микроконтроллера, который превращает напряжение в значения от 0 до 1023.
Заданное значение устанавливается с помощью потенциометра, который используется в качестве делителя напряжения. Он подключен к выводу ADC1 контроллера ATmega8. Диапазон 0–5 вольт (выход потенциометра) преобразуется в значения 0–1023 с помощью АЦП, а затем в значения 0–350 градусов Цельсия с помощью функции " map ".
Список комплектующих
Это список компонентов, экспортированный из KiCad. Кроме того, вам понадобятся:
- клон паяльника Hakko, самого популярного в китайских онлайн магазинах (с термопарой, а не с термистором);
- источник питания 24 В, 2 А (я рекомендую использовать импульсный, но вы можете использовать трансформатор с выпрямительным мостом);
- потенциометр 10 кОм;
- электрическая штепсельная вилка авиационного типа с 5 контактами;
- электрический разъем, устанавливаемый на заднюю панель для подачи питания 220 В;
- печатная плата;
- выключатель питания;
- штырьковые разъемы 2,54 мм;
- много проводов;
- разъемы Dupont;
- корпус (я напечатал его на 3D принтере);
- один тройной семисегментный светодиодный индикатор;
- программатор AVR ISP (для этого вы можете использовать Arduino).
Конечно, вы можете легко заменить светодиодный индикатор LCD дисплеем или использовать кнопки, вместо потенциометра, ведь это ваша паяльная станция. Я изложил свой вариант дизайна, но вы можете по-своему.
Инструкции по сборке
Схема блока управления паяльной станцией
Во-первых, вы должны изготовить печатную плату. Используйте тот способ, который предпочитаете; я рекомендую перенос рисунка платы тонером лазерного принтера, поскольку это самый простой способ. Кроме того, печатная плата у меня удлинена, потому что я хотел, чтобы она совпадала по размеру с источником питания, и я мог бы установить ее на него. Не стесняйтесь изменять плату, вы можете скачать файлы проекта и отредактировать их с помощью KiCad. После того, как изготовите печатную плату, припаяйте к ней все компоненты.
Обязательно установите выключатель между источником питания и разъемом питания. Используйте относительно толстые провода для соединений источника питания с печатной платой и выходного разъема со стоком MOSFET транзистора (точка H на плате) и земли на печатной плате. Для подключения потенциометра подключите 1-ый контакт к линии +5В, 2-ой – к точке POT, и 3-ий – к земле. Обратите внимание, что я использую светодиодный индикатор с общим анодом, что может отличаться от того, что у вас. Вам придется немного изменить код, но все инструкции в коде программы прокомментированы. Подключите выводы E1–E3 к общим анодам/катодам, а выводы a–dp к соответствующим выводам вашего индикатора. Для более подробной информации смотрите техническое описание на него. И наконец, установите выходной разъем паяльной станции и припаяйте к нему все соединения. Вам должна помочь картинка, приведенная выше, со схемой и цоколевкой разъема.
Теперь начинается интересное, загрузка кода. Для этого вам понадобится PID библиотека (ссылка на GitHub).
Если у вас нет программатора, то можете использовать Arduino. Подключите свою плату Arduino (Uno/Nano) к компьютеру, перейдите в меню Файл -> Примеры -> ArduioISP и загрузите его. Затем перейдите в Инструменты -> Программатор -> Arduino as ISP . Подключите свою плату к плате Arduino, скачайте скетч, а затем выберите Скетч -> Загрузить через программатор .
Вот и всё. Теперь вы можете наслаждаться работой паяльной станцией, собранной собственными руками.
Калибровка
А нет, еще не всё. Теперь нам нужно откалибровать ее. Так как нагреватели и термопары в паяльниках могут различаться, особенно если вы используете неоригинальный паяльник Hakko, нам нужно откалибровать паяльную станцию.
Во-первых, нам нужен цифровой мультиметр с термопарой для измерения температуры жала паяльника. После того, как вы измерили температуру, вам необходимо изменить значение по умолчанию " 510 " в строке кода map(Input, 0, 510, 25, 350) , используя следующую формулу:
где TempRead – это температура, которая отображается на вашем цифровом термометре, а TempSet – это температура, которую вы установили на паяльной станции. Это всего лишь приблизительная настройка, но ее должно хватить, ведь вам не нужна при пайке предельная точность. Я использовал градусы Цельсия, но вы можете изменить их в коде на Фаренгейты.
Печать корпуса на 3D принтере (необязательно)
Я разработал и напечатал корпус, в который можно было бы установить импульсный источник питания и печатную плату, чтобы всё выглядело аккуратно. К сожалению, для использования этого корпуса вам необходимо будет найти точно такой же тип источника питания. Если у вас есть подходящий источник, и вы хотите напечатать корпус, или если вы хотите изменить его под свои требования, то можете скачать приложенные файлы. Я печатал с заполнением 20% и толщиной слоя 0,3. Вы можете использовать более высокий уровень заполнения и меньшую высоту слоя, если у вас есть время и терпение.
Заключение
Вот и всё! Надеюсь статья оказалась полезной. Ниже приведены все необходимые материалы.
MaksytL
Здравствуйте. Делаю паяльную станцию на жалах T12 под управлением atmega328p запраграмированной в среде Arduino. Схема готова, собрана на макетной плате (сейчас уже собранна печатная плата с JLCPCB), все работает.
Но сейчас подключен дисплей LCD 1602_i2c. А хотелось бы подключить oled_i2c 0.96".
Проблема в том что код писал не я, что смог под себя подправил, но вот переделать код работы дисплея не могу, Arduino IDE дает ошибку компиляции для платы atmega328p. Не могли бы вы мне помочь? Весь код написан на классах и разделен на несколько частей. Отдельно часть отвечающая за логику работы паяльника и энкодера. И отдельно файлы дисплей.h и дисплей.cpp
Паяльная станция очень удачная, работает на ПИД алгоритме и ШИМ высокочастотный генерирует для питания жала, имеется библиотека жал, что бы каждое можно было каллибровать отдельно и записывать в память.
В общем требуется помощь знающего человека!
По факту сейчас все работает, но нужно перевести проект с дисплея LCD 1602_i2c на oled_i2c 0.96" - это и есть задача для решения.
Если интересно и готовы помочь, то скину вам схему и исходники. Так же если есть предложения по коду или работе проекта с радостью выслушаю их, так же обсудим вопрос цены.
Связываться со мной через личку форума, в дальнейшем возможно по Skype, WhatsApp, Email, VK и т.д.
До этого все время паял таким паяльником, с понижающим блоком, без регулятора и естественно без встроенного термо-датчика:
Для будущей своей паяльной станции, прикупил уже современный паяльник со встроенным термо-датчиком (термопарой) BAKU907 24V 50W. В принципе подойдёт любой паяльник, какой Вам нравится, с термо-датчиком и напряжением питания 24 вольта.
И пошла потихоньку работа. Распечатал печатку для ЛУТ на глянцевой бумаге, перенёс на плату, протравил.
Сделал также рисунок для обратной стороны платы, под расположение деталей. Так легче паять, ну и выглядит красиво.
Плату делал размером 145х50 мм, под покупной пластиковый корпус, который уже был приобретён ранее. Впаял пока детали, какие были на тот момент в наличии.
R1 = 10 кОм
R2 = 1,0 МОм
R3 = 10 кОм
R4 = 1,5 кОм (подбирается)
R5 = 47 кОм потенциометр
R6 =120 кОм
R7 = 680 Ом
R8 = 390 Ом
R9 = 390 Ом
R10 = 470 Ом
R11 = 39 Ом
R12 =1 кОм
R13 = 300 Ом (подбирается)
C1 = 100нФ полиэстр
C2 = 4,7 нф керамика, полиэстр
C3 = 10 нФ полиэстр
C4 = 22 пф керамика
C5 = 22 пф керамика
C6 = 100нФ полиэстр
C7 = 100uF/25V электролитический
C8 = 100uF/16V электролитический
C9 = 100нФ полиэстр
С10 = 100нФ полиэстр
С11 = 100нФ полиэстр
С12 = 100нФ полиэстр
Т1 = симистор ВТ139-600
IC1 = ATMega8L
IC2 = отпрон МОС3060
IC3 = стабилизатор на 5 v 7805
IC4 = LM358P опер. усилитель
Cr1 = кварц 4 мГц
BUZER = сигнализатор МСМ-1206А
D1 = светодиод красный
D2 = светодиод зелёный
Br1 = мост на 1 А.
Для компактности плату сделал так, что Mega8 и LM358 будут располагаться за дисплеем (во многих своих поделках использую такой метод – удобно).
Плата, как уже говорил, имеет размер по длине 145мм, под готовый пластиковый корпус. Но это на всякий случай, т.к пока ещё не было силового трансформатора и в основном от него зависело, каким будет окончательный вариант корпуса. Или это будет корпус БП от компьютера, если трансформатор не влезет в пластиковый корпус, или если влезет, то готовый пластиковый покупной. По этому поводу заказал через интернет трансформатор ТОР 50Вт 24В 2А (они мотают на заказ).
После того, как трансформатор оказался дома, сразу стал ясен окончательный вариант корпуса для паяльной станции. По габаритам вполне должен был влезть в пластик. Примерил его в пластиковый корпус – по высоте подходит, даже есть небольшой запас.
Как уже говорил, что когда разрабатывал плату, то в первую очередь, конечно, учитывал размеры пластикового корпуса, поэтому плата в него подошла без проблем, только пришлось подрезать немного углы.
Переднюю панель для паяльной станции, как и в других своих поделках, сделал из акрила (оргстекла) 2мм. По оригинальной заглушке сделал свою. Пленку до окончания работы не снимаю, чтоб лишний раз не поцарапать.
Контроллер прошил, плату собрал. Пробные подключения готовой платы (пока без паяльника) прошли успешно.
ВНИМАНИЕ! Перед подключением своего LCD изучите даташит на него!! Особенно выводы 1 и 2!". Плата разводилась под LCD Winstar WH1602D. Даже у этого производителя у дисплеев между B и D есть разница.
На схеме индикатор, на вывод 1 которого подаётся +5V, а вывод 2 - общий!
Ваш индикатор может отличаться цоколёвкой этих выводов (1- общий; 2 - +питания).
Подошло время для подключения самого паяльника и тут облом – разъём. Изначально в паяльнике был установлен такой разъём.
Пошёл в магазин за разъёмом. В магазинах у нас в городе ответной части не нашел. Поэтому в станции гнездо оставил, какое было, а на паяльнике разъём перепаял на наш советский от магнитофонов (СГ-5 вроде, или СР-5). Идеально подходит.
Теперь упаковываем всё в корпус, крепим окончательно трансформатор, переднюю панель, делаем все соединения.
Наша конструкция приобретает законченный вид. Получилась не большой, на столе займёт не много места. Ну и финальные фото.
Как работает станция, можно посмотреть это видео, которое я скинул на Ютюб.
Если будут какие нибудь вопросы по сборке, наладке - задавайте их ЗДЕСЬ, по возможности постараюсь ответить.
1. Определить где у паяльника нагреватель, а где термопара. Померить омметром сопротивление на выводах, там где сопротивление меньше, там и будет термопара (нагреватель обычно имеет сопротивление выше термопары, у термопары сопротивление единицы Ом). У термопары соблюсти полярность при подключении.
2. Если сопротивление у измеренных выводов практически не отличается (мощный керамический нагреватель), то определить термопару и её полярность ,можно следующим способом;
- нагреть паяльник, отключить его и цифровым мультиметром на самом малом диапазоне (200 милливольт) замерить напряжение на выводах паяльника. На выводах термопары будет напряжение несколько милливольт, полярность подключения будет видна на мультиметре.
3. Если на всех выводах паяльника измеренное сопротивление (попарно) больше 5-10-ти Ом (и более) на двух парных выводах (нагреватель и искомая термопара), то возможно у паяльника вместо термопары стоит терморезистор. Определить его можно с помощью омметра, для этого измеряем сопротивления на выводах, запоминаем, затем нагреваем паяльник. Снова измеряем сопротивление. Там где величина показаний изменится (от запомненного), там и будет терморезистор.
Ниже на рисунке показана распиновка разъёма "Соломоновского" паяльника
А такой вопрос. Там же термопара в параллель с нагревателем? Как организовали асинхронную работу? Я так понимаю снятие показаний с термопары происходит после отключения питания нагревателя?
Igor K
Очень интересно как Вы реализовали обратную связь с термопары? В этом жале какой тип термопары? Через какой ОУ подключили, как компенсировали?
iStar Com
Уважаемый! Прикрепите схему и скетч к данному видео. Не надо устраивать "попрош@йку".
Анатолий Ливада
Прошло 2 года , проект пошел в коммерцию ? Или прошивка все так же великая тайна ?
TPAXTPbEK
Руслан Железняк
какой вольтаж? это очень долгий разогрев, теряется смысл Т12 паяльника.
Huong Thanh
You can share code
Сергей Аноним
Прошивку, печатку,схему для повторения можно ?
Хочется увидеть, какую Имеем технологию изготовления платы.
Alexander Urezchenko
Подскажите, применяется ли ПИД - алгоритм для поддержания температуры? Спасибо.
Дмитрий Косачёв
Если будет возможность и время, расскажите пожалуйста как работают жала T12, и как снимать температуру с датчика.
Cult Of Sogga
Слишком круто для паяника???
Artem Artemov
Сенсей, научи программировать STM32) Не бесплатно!
Aqua Comp
всё реализовано хорошо, хотелось-бы не только смотреть но и повторить т.к. задумал себе что-то похожее и сейчас в поиске, хотелось-бы рабочие исходники имхо EASY разводка, скетч и если не трудно то плату развести для ДИП процессора :), проект классный
den v
интересует кабель который идет от платы к паяльнику.. он пятижильный, как называется и где продается? Спасибо.
iMechanic DIYconnect
Братишка не в службу а в дружбу сделай сравнение с китайцами ,долго выходит на рабочий режим ,он у вас откалиброван?
Назар Лапатшо
Привет а че у тебя за проволока на паяльнике?И чем ты замеряешь температуру - терпомары не заметил?
Serj Balabay
Осталось реализовать функционал китайского контролера на STM32.
Память для трёх точечной калибровки жал (без внешнего EEPROM), датчик покоя, менюшки. В общем ещё много работы.
Читайте также: