на главную
Карта сайта
English version
Вы читаете:

Второй паяльник

Разное
1 год назад

Второй паяльник (часть 2)


При работе во всех режимах может быть задействован автоматический переход в режим "сна", под которым подразумевается снижение температуры паяльника во время нахождения его на стойках подставки. Разрешение на использование этого режима и время задержки для перехода в режим сна, а также и значение, на которое должна быть снижена температура паяльника, задаются в параметрах. Также во всех режимах может быть задействована коррекция температуры в абсолютном значении, эта коррекция также задаётся при параметрировании.

Программа написана в Arduino IDE 1.8.19 для ESP32-WROOM с типовыми установками. Во избежание проблем при использовании программы рекомендуется обновить платформу ESP32 на новую [2]. Как было указано ранее, программа жёстко разбита на два блока - блока параметрирования (с использованием Wi-Fi) и блока управления нагревателем паяльника. Блок параметрирования создан по образу и подобию примеров из [3]. Для хранения всех параметров используется файловая система, и это единственное, что связывает блок параметрирования с блоком управления. Параметров, как и файлов, всего 18, запись каждого нового введённого значения должна подтверждаться в режиме параметрирова-ния. Все параметры хранятся в энергонезависимой памяти, которые считываются программой при запуске любого рабочего режима и используются в дальнейшем во всех расчётах.

Управление симистором синхронизировано с частотой питающей электросети 50 Гц. Это означает, что при переходе сетевого напряжения через ноль с помощью аппаратного прерывания происходит однократный запуск таймера на время, равное углу открывания симистора, а по его истечении запускается второе прерывание, которое устанавливает управляющий симистором уровень в лог. 1 на время, заданное перезапуском таймера, достаточное для надёжного открытия симистора. По истечении этого времени запускается третье прерывание, которое устанавливает управляющий симистором уровень в лог. 0.

В ESP32 используется Espressif IDF - программный таймер esp_timer.h, который управляется наследником некогда популярной для ESP8266 библиотеки Ticker.h, разработанной в 2014 г. Ivan Grokhotkov. К сожалению, автор Ticker.h для ESP32 не учёл в полной мере возможности ESP32 и ограничил разрешающую способность таймера в своей библиотеке 1 мс, проигнорировав, что разрешающая способность таймера ESP32 составляет 1 мкс [4]. Работать с миллисекундными отсчётами с диммером неудобно, так как на каждую полуволну сетевого напряжения придётся всего лишь десять отсчётов, поэтому автор немного скорректировал указанную библиотеку, повысив в ней разрешающую способность таймера до 10 мкс, т. е. теперь на каждую полуволну приходится 1000 отсчётов. Для того, чтобы не создавать путаницы в библиотеках пользователей доморощенной библиотекой, автор включил её файлы Ticker10.h и Ticker10.cpp в проект исходной программы. Тем не менее, если кому-то понадобится использовать их именно как библиотеку, ему ничто не помешает создать каталог Ticker10, поместить в него оба выше-упомянутых файла и перенести этот каталог в место хранения библиотек Arduino IDE на своём ПК.

При использованной организации управления есть опасность, связанная с нестабильностью питающей сети, погрешностью формирователя перехода через ноль и наличием в этой области помех. Чтобы избежать попадания управления в бесконечный цикл (когда аппаратное прерывание приходит во время исполнения программного прерывания 3), в программу введена зона безопасного угла открывания симистора, в данном случае 0-800 (0-8 мс). Поскольку длительность импульса открывания симистора выбрана как 100 (1 мс), то зона между 9 и 10 мс (10 мс - переход через ноль) оказывается нечувствительной, в этом случае при аппаратном прерывании запуска таймера вообще не происходит, вместо этого симистор остаётся закрытым. Для управления нагревом это не влечёт никаких последствий, так как в области, близкой к закрытому состоянию, симистор в схеме управления никогда не работает, потому что паяльник с заданной температурой, например 50 оС, никому не нужен.

В бесконечном цикле loop выполняются расчёт заданной температуры, считывание с помощью АЦП фактической температуры и расчёт угла открывания симистора, причём для каждого из рабочих режимов своя процедура.

В режиме ПИД автор использовал популярную в среде Arduino библиотеку ПИД [5], предоставив пользователю вводить значения коэффициентов К1, К2 и К3 самостоятельно.

В меню настройки по Wi-Fi присутствуют параметры:

-заданная температура (оС). В этом и во всех последующих пунктах меню указаны значения без каких-либо ограничений. Автор предполагает, что лица, испытывающие потребность во втором паяльнике для работы с SMD, обладают достаточными знаниями, чтобы не вводить в качестве заданной температуры такие значения, как, например, 50000 оС или -133 оС;

-коррекция температуры (оС). Здесь указывают абсолютное значение отклонения от заданной температуры. Такой параметр есть практически во всех промышленных терморегуляторах;

-гистерезис. Здесь указывают абсолютное значение половины гистерезиса регулировки температуры. Например, значение 10 будет означать, что гистерезис составит ±10 оС. Этот параметр активен только в релейном режиме;

-режимы регулирования ZERO, DIMMER и PID. Здесь выбирают режим регулирования: релейный с переходом через ноль - ZERO, фазовый - DIMMER и ПИД-регулирование - PID. Выбор осуществляется путём ввода соответствующих цифр 1, 2 или 3;

- режим сна. Здесь устанавливается разрешение на автоматическое включение режима сна, 1 - разрешено, 0 - запрещено;

-время ухода в сон, секунды. При частом использовании второго паяльника нет смысла в использовании режима сна. Поэтому здесь устанавливается время задержки перехода в режим сна после того, как паяльник положили на поставку;

-снижение температуры во "сне", оС. Здесь устанавливается абсолютное значение, на которое снижается температура паяльника после перехода его в режим сна. Очевидно, что чем больше это значение, тем дольше требуется паяльнику времени для того, чтобы нагреть жало до рабочей температуры при выходе из этого режима. С другой стороны, слишком малое значение этого параметра не обеспечит предотвращение быстрого обгорания жала, для чего и предназначен в первую очередь этот режим;

-градуировочная температура 1 и 2, и "Сопротивление при градуировочной температуре 1 и 2". Эти четыре параметра будут рассмотрены ниже, в описании налаживания устройства;

-пропорциональный коэффициент ПИД, интегральный коэффициент ПИД и дифференциальный коэффициент ПИД/1000. Эти три параметра относятся только к режиму ПИД-регулирования. Его настройка в Arduino IDE прописана в применении её многочисленных библиотек. Следует обратить внимание на обозначение /1000. Оно связано с тем, что передача и приём дробных чисел в языке HTML связана с некоторыми трудностями, поэтому автор предпочёл при параметрировании вводить целые числа, умноженные на 1000, которые потом в режиме регулирования будут пересчитаны в дробные путём деления на 1000. Например, введённое целочисленное значение 1234 будет использовано в расчётах как значение с плавающей запятой 1,234. Вышесказанное относится ко всем параметрам, в обозначении единицы измерения которых указано/1000;

-коэффициент пересчёта кода напряжения в температуру/1000. Этот параметр будет рассмотрен ниже, в описании налаживания устройства;

-коэффициент усиления в режиме регулирования DIMMER/1000. Этот параметр определяет коэффициент обратной связи в фазовом режиме регулирования, проще говоря, он определяет, насколько должен измениться угол открывания симистора при возникновении ошибки регулирования на единицу её измерения. Автор в своём устройстве использовал значение этого параметра 2000, т. е. 2 при расчётах.

Чертёж печатной платы показан на рис. 5, она изготовлена из одностороннего фольгированного стеклотекстолита толщиной 1 мм.

Чертёж печатной платы устройства

Рис. 5. Чертёж печатной платы устройства

 

Налаживание устройства. Использование терморезистора в качестве термодатчика для паяльника имеет преимущество перед термопарой в том, что его применение не требует усилителей сигнала. 12-разрядному АЦП ESP32 вполне хватает разрешающей способности для получения измерений с достаточной точностью. В то же время термопара для применения в паяльнике имеет гораздо более весомое преимущество, а именно - она не требует настроек при использовании МК, поскольку характеристики термопар известны, а число их типов ограничено. Проблема нелинейности характеристики термопары легко решается размещением в памяти МК стандартной градуировочной таблицы применённой термопары, на этом налаживание термодатчика на основе термопары фактически и заканчивается. Так же легко можно учесть температуру холодного спая, благо давно опробованных схемных решений в Интернете более чем достаточно. А вот с терморезистором измерения вызывают серьёзные затруднения. И если нелинейность характеристики терморезистора не так уж и велика в интервале рабочих температур паяльника 250...350 оС, её можно считать практически линейной, то проблема снятия зависимости сопротивления от температуры терморезистора для радиолюбителя затруднительна, ведь для этого нужен лабораторный термостат. Использование образцового паяльника в качестве такого термостата не решает проблему, так как температура термодатчика и температура жала - это далеко не одно и то же. Но всё обстоит гораздо хуже, и если бы автор даже и располагал лабораторным термостатом, результаты измерений оказались бы для читателей бесполезны, так как изготовители нагревателей никак не стандартизируют свои изделия в принципе. Это означает, что параметры терморезисторов (да и нагревателей тоже!), продаваемых на Али-экспресс, различны.

Типовым решением в таких случаях является установка комплекта подстроечных элементов в устройство, который позволит настроить каждое конкретное устройство под установленный термодатчик. Но в устройстве автор предлагает иное решение - все настройки производить не аппаратно, а программно, т. е. путём их ввода в память МК с помощью смартфона. И в первую очередь это касается пересчёта кода напряжения в температуру. Коэффициент этого пересчёта учитывает сразу несколько факторов, а именно:

-отсутствие какого-либо стандарта на характеристики терморезисторов в нагревателях для паяльников, продаваемых на Али-экспресс;

-погрешность напряжения 1,24 В, стабилизируемого микросхемой DA1 и использованного для сдвига уровня;

- погрешности сопротивлений резисторов в цепи терморезистора.

Прежде чем включать устройство в сеть, нужно определить коэффициенты а и b в характеристике терморезистора, описываемой формулой

R = аt + b,

где R - сопротивление терморезистора, а t - его температура. При этом признаётся, что реальная характеристика не будет соответствовать прямой из-за нелинейностей, но также очевидно, что в интервале температур 250....350 оС линейность вполне удовлетворительная. Важно, что уравнение прямой необходимо не столько для юстировки самой температуры, сколько для обеспечения требуемого интервала задания температур. Для определения коэффициентов а и b достаточно задать две точки этой прямой. Было решено ограничиться для этого простейшим методом, а именно - измерить термопарой мультиметра температуру жала не включённого в сеть паяльника, а также сопротивление терморезистора этим же мультиметром в режиме омметра. Поскольку реальные погрешности измерений обычного мультиметра сравнительно большие, было решено ограничиться округлением до целых измеренных значений, а именно: при температуре 26 оС сопротивление термодатчика приобретённого автором нагревателя - 25 Ом. Эти значения и будут двумя параметрами в настройках "Градуировочная температура 1" и "Сопротивление при градуировочной температуре 1". После этого нагреватель паяльника подключается в сеть 230 В напрямую, и после того, как обнаружилось прекращение роста измеренной термопарой температуры жала, измеряются его температура и сопротивление терморезистора. В результате этих измерений автор получил следующие значения: градуировочная температура 2-500 оС и сопротивление при градуировочной температуре 2-105 Ом. В случае применения нагревателя большой мощности (у автора нагреватель мощностью 90 Вт), чтобы избежать повреждения покрытия металлического кожуха паяльника из-за его перегрева, можно включить нагреватель паяльника в сеть 230 В не напрямую, а, например, через диод.

После измерения вышеуказанных параметров, не подключая к устройству паяльник и не устанавливая на плату адаптер с ESP32, подключают устройство в сеть 230 В и проверяют выходное напряжение источника питания на LNK306, и в случае необходимости подстраивают его с помощью подборки резисторов R9 или R10. При подборе надо иметь в виду, что меньшее напряжение предпочтительнее. Например, если при одном резисторе выходное напряжение составило 5,05 В, а при другом 4,85 В, то значение 4,85 В предпочтительнее. Это связано с тем, что чем меньше это напряжение, тем меньше нагрузка на защитные диоды МК ESP32.

Затем проверяют стабилизированное напряжение 3,3 В и, если всё нормально, отключают устройство от сети, устанавливают в него адаптер с ESP32 и опять подключают к сети. Паяльник к устройству пока не подключают. Отсутствие паяльника воспринимается датчиком как отсутствие паяльника на подставке, поэтому должен загореться или замигать светодиод синего свечения. После чего ждут на смартфоне появления сети Second solder, подключаются к ней (однократно подтверждая отсутствие в этой сети доступа в Интернет), заходят в любой браузер и набирают адрес 192.168.4.1 (для удобства этот адрес можно внести в закладки или адресную книгу). Вводят параметры в произвольном порядке, при этом коэффициент усиления в режиме DIMMER устанавливают 2000, а коэффициент пересчёта кода напряжения в температуру - 1000.

Отключают устройство от сети, подключают к нему паяльник, устанавливают его на стойки подставки и подключают к сети 230 В. Устройство сразу должно перейти в рабочий режим (установленного в параметрах типа), что отобразится включением светодиода красного свечения, означающего, что идёт нагрев. Мигание этого светодиода означает, что температура термодатчика (но не жала!) достигла заданной в параметрах температуры. Измеряют термопарой мультиметра температуру жала и, дождавшись, когда показания станут стабильными, запоминают это значение. Это измерение желательно вести в области рабочих температур, например, около 300 оС при нулевой коррекции и запрете в параметрах режима "сна". Измерение можно вести как в режиме ZERO, так и в режиме DIMMER, при этом должна быть заметна более высокая точность поддержания температуры в режиме DIMMER. После проведения измерения фактической температуры жала сравнивают её значение с заданной в параметрах и корректируют значение коэффициента пересчёта кода напряжения в температуру, не забывая, что в параметрах оно указано в тысячах. Этот параметр, как и коэффициент усиления в режиме DIMMER, намеренно выведен автором в конец списка параметров, так как фактически это одноразовые установки, требующие вмешательства только при смене нагревателя, а значит, и термодатчика.

Программирование ESP32 осуществляется в среде Arduino IDE, его можно вести как отдельно, производя подключение внешнего источника питания напряжением 3,3 В и сигналов Tx и Rx USB-Serial конвертера к адаптеру, так и непосредственно при установленном в устройство адаптере с питанием от устройства. В последнем случае имеем в виду, что в процессе загрузки прошивки вывод IO33 МК ESP32 находится в высокоимпедансном состоянии, а это значит, что паяльник будет подключён к сети 230 В. Поскольку продолжительность загрузки мала, паяльнику это ничем не грозит, но вот обжечься можно, особенно, если прошивка осуществляется многократно. Алгоритм производства прошивки прост - дождавшись сообщения на экране ПК о работе линковщика, нажимают на обе кнопки адаптера ESP32 и, дождавшись информации о запуске процесса прошивки, сначала отпускают кнопку RESET, а затем кнопку IO0.

Внешний вид паяльника на подставке представлен на рис. 6, а внешний вид платы устройства со снятой крышкой подставки - на рис. 7.

Внешний вид паяльника на подставке

Рис. 6. Внешний вид паяльника на подставке

 

Внешний вид платы устройства со снятой крышкой подставки

Рис. 7. Внешний вид платы устройства со снятой крышкой подставки

 

Автор выражает искреннюю признательность Алексею Жолтикову [6] за квалифицированные консультации, касающиеся работы с таймерами ESP32.

Чертёж печатной платы находится здесь.

Литератрура

1.Подставка для паяльника Технохим. - URL: https://www.grantauto.ru/catalog/ instrument/payalnyy/vspomogatelnyy_ instrument/podstavka_dlya_payalnika_ tehnohim.html (08.12.22).

2.Installing using Arduino IDE. - URL: https://docs.espressif.com/projects/arduin o-esp32/en/latest/installing.html# installing-using-boards-manager (08.12.22).

3.160 + ESP32 Projects. - URL: https:// randomnerdtutorials.com/projects-esp32/ (08.12.22).

4.Arduino-esp32/libraries/Ticker/src/ Ticker.h. - URL: https://github.com/ espressif/arduino-esp32/blob/master/ libraries/Ticker/src/Ticker.h (08.12.22).

5.PID. - URL: https://www.arduino.cc/ reference/en/libraries/pid/ (08.12.22).

6.Alexey Zholtikov. - URL: https:// github.com/aZholtikov (08.12.22).

Автор: Ю. Булычев, г. Омск


Рекомендуем к данному материалу ...