Термостабилизатор для паяльника на микроконтроллере


Как то на первом курсе стал я счастливым обладателем паяльника ЭПСН25/24 (с питанием ~24В). И ничего мне для счастья больше не надо было. Через лет пять я успешно сжег трансформаторный блок питания (коснулся жалом к включенному самодельному ионизатору – прострелила искра и пошел дым…) в связи с чем трансформаторный БП был заменен на импульсный.

Но вот прошло 16 лет, наткнулся я на статью [1], и захотелось мне приобрести паяльник с вечным жалом и керамическим нагревателем. Но вот беда: к родному ЭПСН было уже много самодельных насадок – выбросить жалко, да и все найденные конструкции в интернете были слишком уж громоздкие, не хотелось такой гроб на стол ставить (работать приходится по ночам на столе в спальне – жена явно будет против такой обновки…).  Ну и некоторые сомнения были по поводу удобства необгораемых жал. Поэтому решено было сделать паяльную станцию, да такую, что бы поместилась в существующий корпус блока питания паяльника 80х55х65мм(без штырей вилки), да еще что бы можно было подключить к ней и старенький ЭПСН.

Сказано – сделано. Приобрел я паяльник Lukey-REZISTRONIK (21$) с нагревателем HAKKO 1321 (24V 48Wt датчик резистивный – при 25С ~50Ом) и дополнительным жалом Xytronic 44-510604/JP ( 6$ клиновидное 1.6мм).


Паяльник Lukey-REZISTRONIK и доп. жало

А в старенький ЭПСН была встроена термопара от китайского мультиметра. Поэтому схема разрабатывалась с учетом поддержки как термопарного датчика так и резистивного.
И вот что получилось…

Принципиальная схема паяльной станции

Схема паяльной станции

Размер платы контроллера (без БП) при применении SMD элементов составил всего 43х33мм.

Общий алгоритм работы

При включении контроллер запускает АЦП и считывает уровень напряжения на входах PC0, PC1. Если на обоих напряжение близкое к напряжению питания – паяльников нет, на дисплее высвечивается «Err» – ошибка. Если на одном из входов напряжение становится менее 4,5В выбирается соответствующий тип паяльника: для входа РС0 – термопарный, для РС1 – резистивный; и начинается набор температуры до значения уставки. Для каждого паяльника хранится своя уставка температуры.  При нажатии клавиши «больше» или «меньше» значение уставки текущего паяльника высвечивается на экране в мигающем режиме и  далее увеличивается/уменьшается на 5С. В процессе набора температуры мигает точка последнего индикатора. Когда температура приближается к значению уставки, точка перестает мигать и для резистивного паяльника гаснет, а для термопарного горит постоянно – так можно определить какой паяльник определился программой.


Мощность паяльника регулируется с помощью ШИМ модуляции с помощью ключа VT1. При включении паяльника мощность первоначально набирается плавно – для сохранения нагревателя паяльника. При проверке паяльника Lukey-REZISTRONIK выяснилось, что при напряжении 24В он светится в темноте – мне его стало жалко, и заполнение ШИМ для резистивного паяльника было ограничено до 70%. Для термопарного заполнение ШИМ 100%. Тем не менее паяльник Lukey нагревается от 25°С до 250°С за 60сек.

Алгоритм регулирования мощности следующий: при приближении к заданной температуре менее чем на 10С мощность подводимая к паяльнику уменьшается на 10% на каждый град.С. Для того, что бы точно выйти на заданную температуру в программе вводится температура смещения Tsm, которая принудительно смещает уставку до +–10°С. Первоначально смещение равно +2°С. Если температура паяльника находится в диапазоне (Задан.темпер+Tsm)>=Тек.темпер. >= ( Задан.темпер +Tsm − 10°С), тогда происходит постепенная коррекция смещения Tsm: если Задан.темпер.>Тек.темпер., то смещение Tsm увеличивается на 0,1°С, если Задан.темпер.<Тек.темпер., то смещение Tsm уменьшается на 0,1°С. Таким образом температура достаточно точно выходит на заданную, и колебания не превышают +–1°С. Это фактически аналог пропорционально-интегрального регулятора.


Усилитель сигнала термопары собран на специализированной микросхеме AD8551 по классической схеме. Когда паяльник с термопарой отсутствует, резистор R36 подтягивает не инвертирующий вход к «+» питания, в связи с чем, на ее выходе появляется +5В. – контроллер определяет отсутствие датчика. К сожалению, на плате не хватило места для включения AD8551 по стандартной схеме из даташита – с компенсацией температуры холодного спая, поэтому температура холодного спая задана жестко – 23°С и в программе не учитывается ее изменение. Желающие увеличить точность измерения могут включить DA3 по рекомендуемой схеме.

Измерение температуры резистивного датчика производится с помощью делителя образованного резистором R26 и терморезистором паяльника.

Вид платы паяльной станции

Детали и монтаж

Все примененные детали, кроме DA2 и VT1 – SMD. При проверке индикатора HL1 KOOHI E30361LC8W (с общим катодом) оказалось, что даже при токе 2 мА на сегмент, яркость свечения была достаточно интенсивной. Это позволило обойтись без дополнительных транзисторов, подключив катоды непосредственно к портам контроллера, так как суммарный ток не превышал разрешенные даташитом 40мА на порт. При недостаточной интенсивности свечения возможно уменьшение гасящих резисторов до 560Ом. Индикатор HL1 подпаян к плате тонкими проводами МГТФ, после чего закреплен с обратной стороны к ней же термоклеем.


L1,C3,C5 служат для дополнительной фильтрации питания контроллера, их значения некритичны. С9, С3 – танталовые. VT1 – любой аналогичный с допустимым током не менее 5А и порогом открывания не более 2В. На DA2 необходимо установить небольшой радиатор, для VT1 радиатор не требуется. R33, С10, С11, С12 – служат для фильтрации помех в измерительных цепях: их значения некритичны. SA1, SA2 – микрокнопки без фиксации, запаяны с обратной стороны платы (со стороны индикатора).

Если у кого-то не предвидится паяльник с термопарой – можно смело удалить из схемы C10, R36, R33,C11, R31, R32, R34, R35, DA3, однако вход PC0 нужно будет подтянуть к +5В резистором 10кОм.
Прошивка микроконтроллера производилась с помощью обычного LPT программатора, состоящего из 4-х резисторов (в интернете находится без особого труда). Запрограммированные фьюзы: CKSEL3=CKSEL2=CKSEL0=SUT0=0 – галочки.

Разъем на паяльнике заменен на металлический микрофонный 6-и полюсный – родной PS/2 не внушал доверия. К выводам 1-2 разъема подпаян нагреватель паяльника, а к выводам 3-4 и 5-4 термодатчики (соответственно для терморезистора и термопары). Плата, с предварительно закрепленным на ней индикатором, закреплена в корпусе с помощью термоклея.

Схема обратноходового импульсного блока питания была взята из какого-то журнала, и была собрана на основе 561ЛА7 в качестве задающего генератора с регулируемой скважностью импульсов через цепь обратной связи. Однако, к сожалению, с  годами схема была утеряна, и найти ее пока не удалось. Рекомендую собрать БП на специализированных микросхемах серии TopSwitch или Viper, например, по схеме [4]. Неоднократно собирал БП с этими микросхемами и ни разу не было проблем – запускались сразу.


На передней панели корпуса были сделаны отверстия под кнопки и дисплей. Рисунок панели был распечатан на прозрачной пленке для лазерных принтеров в зеркальном отображении, после чего на рисунок был наклеен двухсторонний белый скотч (белый!! иначе рисунка видно не будет) со стороны тонера  – кроме окна под индикатор. После этого полученный сэндвич обрезают по периметру рисунка и аккуратно наклеивают на корпус – что бы совпали отверстия и кнопки. С внутренней стороны отверстий под кнопки были уложены небольшие кружки из пленки – что бы толкатели кнопок не прилипали к скотчу. Проще всего если кнопки приклеить к передней панели термоклеем – тогда не нужно точно фиксировать плату с кнопками.

Фото паяльной станции

Настройка паяльной станции

Калибровку измерения температуры можно произвести в «железе», а можно программно. Для калибровки в «железе» канала измерения температуры термопары необходимо подогнать коэффициент усиления AD8551 подбором резисторов R34, R35. Для калибровки канала измерения температуры резистивного датчика необходимо подобрать R26.

Для программной калибровки нужно подобрать коэффициенты в строках 80..83:
Для резистивного датчика: const_rt0 – значение полученное АЦП контроллера при температуре датчика 0гр.С(т.е. смещение характеристики); const_drt – приращение количества шагов АЦП при изменении температуры в 100град.С (т.е. наклон характеристики).


Для термопары: const_THA0 – температура умноженная на 10 холодного спая термопары; const_THA — приращение количества шагов АЦП при изменении температуры в 100град.С.
Hex-коды прошивки контроллера, исходный проект на Си (для CodeVisionAVR V2.04.4a), схема и разводка платы (PCAD2006) прилагаются к статье.

P.S. Пользуюсь паяльной станцией и паяльником Lukey уже полгода и теперь берусь за ЭПСН только в случае крайней необходимости. Полностью согласен с автором [1], что жало идущее в комплекте с паяльником полностью бестолковое и годится только для коррекции пайки многовыводных SMD элементов. Паять им очень неудобно, и смачивается припоем оно плохо. Кроме этого олово на нем поднимается по острию вверх, а не остается на конце, чем создает дополнительные неудобства. А вот приобретенное клиновидное 1,6мм. жало очень удобное – им легко паять как SMD элементы, так и мощные транзисторы в корпусах типа ТО-220. После чистки о губку (кстати очень быстро и удобно) лудится оно мгновенно – подносишь припой и он сам растекается по кончику жала. Если посмотреть на фотографию жала – видно, что кончик жала покрыт чем-то вроде серебра, поэтому и лудится оно легко.

Литература

  1. DI HALT. Трактат о паяльниках. http://easyelectronics.ru/traktat-o-payalnikax.html
  2. Д. Мальцев. Термостабилизатор паяльника на микроконтроллере. Радио №2/2010
  3. Pavel V. Цифровая паяльная станция своими руками. http://www.radiokot.ru/lab/controller/10/
  4. Доработка паяльника от паяльных станций Lukey. http://www.mirmasterov.com/dorabotka-payalnika-payalki-lukey-702.html

Изменения в прошивке (от 02.02.2013):
1. Добавлено шесть кнопок памяти: выводы PD0,PD1,PB2,PB3,PB4,PB5.
2. Добавлен режим корректировки, с вводом поправочного коэффициента температуры.
3. Увеличена максимально задаваемая температура до 400С.
4. Увеличена максимальная мощность паяльника до 90%.
5. Улучшен переходной процесс при выходе на заданную температуру.
6. Добавлена возможность паять при отрицательных температурах.

Скачать прошивку, проект в CodeVisionAVR, печатные платы в P-CAD вы можете ниже

Список радиоэлементов




Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DA1 МК AVR 8-бит 1 Поиск в Амперо В блокнот
DA2 Линейный регулятор 1 Поиск в Амперо В блокнот
DA3 АЦП AD8551 1 Поиск в Амперо В блокнот
VT1 MOSFET-транзистор 1 Поиск в Амперо В блокнот
С3, С9 Электролитический конденсатор 100 мкФ 2 Поиск в Амперо В блокнот
С4-С8, С10-С12 Конденсатор 100 нФ 8 Поиск в Амперо В блокнот
R3 Резистор 1 Поиск в Амперо В блокнот
R17-R24, R31, R32 Резистор 10 Поиск в Амперо В блокнот
R25 Резистор 1 Поиск в Амперо В блокнот
R26 Резистор 1 Поиск в Амперо В блокнот
R33 Резистор 1 Поиск в Амперо В блокнот
R34 Резистор 1 Поиск в Амперо В блокнот
R35 Резистор 1 Поиск в Амперо В блокнот
R36 Резистор 1 Поиск в Амперо В блокнот
HL1 Индикатор E30361LCBW 1 Поиск в Амперо В блокнот
L1 Катушка индуктивности 33 мкГн 1 Поиск в Амперо В блокнот
SA1, SA2 Кнопка 2 Поиск в Амперо В блокнот
Х1-Х5 Разъем 1 Поиск в Амперо В блокнот
Х6 — Х7 Разъем 1 Поиск в Амперо В блокнот
XS1 Разъем 1 Поиск в Амперо В блокнот
Добавить все

Скачать список элементов (PDF)

Источник: cxem.net

Пять способов получения нужной температуры паяльника

Многие знают, что для получения качественной пайка при монтаже радиодеталей необходимо, чтобы температура жала паяльника соответствовала рабочей температуре припоя. У разных марок припоя она отличается. Если жало паяльника перегрето, припой будет окисляться и пайка получится недостаточно прочной. Кроме того, в этом случае жало паяльника быстро обгорает и припой вообще перестает на нем держаться. Качественная пайка имеет зеркальный блеск после остывания, и получить ее можно только при определенной температуре. Так, для наиболее распространенной марки припоя ПОС-61 температура пайки 190…260 °С. Рекомендуемая температура пайки микросхем 235±5 °С при продолжительности не более 2 с.

При покупке простейшего дешевого паяльника на сетевое напряжение 220 В, как правило, выясняется, что он перегревается и плохо паяет. Устранить эту проблему можно четырьмя путями.

Способ 1-й. Если паяльник имеет жало в виде стержня, который фиксируется на корпусе с помощью винта (рис. 5.7), то, регулируя длину погружения стержня в нагреватель, можно легко плавно изменить температуру. Но такую конструкцию крепления жала имеют не все паяльники, и этот метод может оказаться неприемлемым.

Способ 2-й. Можно воспользоваться ЛАТРом или трансформатором с большим числом отводом. В этом случае температура регулируется изменением подаваемого на обмотку нагревателя напряжения.

Способ 3-й. Последовательно с нагревателем паяльника включается добавочный резистор (реостат). При этом мощность резистора должна быть такой же, как и у паяльника, а номинал сопротивления подбираем для получения нуж ной температуры. Такой добавочный резистор имеет большие габариты и греется, что неудобно.

Способ 4-й. Электронный регулятор, рис. 5.8, позволяет плавно менять (переменным резистором R2) температуру нагревателя в широких пределах. Устройство имеет бестрансформаторное питание и малые габариты, что позволяет разместить его в подставке под паяльник. Схема не критична к типам деталей, и ее настройка заключается в подборе номинала резистора R4 (при нулевом значении R2) для получения максимального напряжения на нагревателе. Подключаемый паяльник может иметь мощность от 15 до 300 Вт, а при замене диодов VD1 …VD4 на больший ток — до 1000 Вт.

5-8.jpg

Рис. 5.7. Конструкция паяльника с перемещаемым жалом

5-9.jpg

Рис. 5.8. Схема регулятора температуры

В случае, если паяльник рассчитан на более низкое номинальное напряжение питания (48 или 36 В), потребуется снижающий напряжение трансформатор, а на схему электронного регулятора может подаваться пониженное напряжение. В этом случае для сохранения ее работоспособности потребуется пропорционально входному напряжению уменьшить номинал резистора R1.

5-10.jpg

Рис. 5.9. Электрическая схема термостабилизатора

Способ 5-й. Позволяет автоматически поддерживать заданную температуру паяльника с точностью 1°С и используется для монтажа радиоэлементов микроэлектроники, очень критичных к перегреву. В этом случае потребуется приобрести паяльник с уже установленной внутри термопарой.

Схема термостабилизатора, рис. 5.9, выполнена на одной сдвоенной микросхеме DA1 (140УД20А) и симметричном тиристоре (симисторе) VS1. На элементе DA1.1 собран дифференциальный усилитель сигнала с термопары, а на DA1.2 — интегратор, который управляет работой генератора импульсов на одно переходном транзисторе VT1. Импульсы через разделительный трансформатор Т1 поступают на управление коммутатором VS1.

Использование в схеме интегратора, вместо обычно часто применяемого компаратора, позволяет обеспечить мягкую характеристику изменения мощности в нагревателе при выходе на режим термостабилизации. Это осуществляется за счет изменения времени заряда конденсатора С10, от которого зависит частота генератора, а значит, и начальный угол открывания симистора. Пока напряжение с выхода DA1/12 не превысит пороговое значение (на DA1/6), установленное резисторами, связанными с переключателем SA2, на выходе микросхемы DA1/10 будет напряжение +12 В, что обеспечит работу генератора (VT1) на максимальной частоте — симистор будет полностью открыт.

Для питания устройства потребуется трансформатор с двумя дополнительными обмотками по 18 В или одна, но с отводом в середине. Мощность трансформатора должна соответствовать мощности паяльника (электрическая схема блока управления потребляет ток не более 15 мА).

Импульсный трансформатор Т2 имеет такие же параметры, как и в схеме на рис. 4.10. Остальные детали могут применяться любого типа. Микросхему DA1 можно заменить двумя из серии 140УД7, но при этом может снизиться точность поддержания температуры.

При настройке термостабилизатора для полного открывания симистора может потребоваться поменять местами выводы на одной из обмоток импульсного трансформатора Т2 (важна фазировка управляющего импульса). Подстроечными резисторами, отмеченными «*», устанавливается необходимая температура при соответствующем положении переключателя SA1. Более точно нужную температуру можно установить при помощи резистора R15.

Чуть не забыл указать еще один способ, который может являться дополнением или разновидностью третьего. Вместо добавочного гасящего резистора можно использовать не полярный конденсатор из серии МБМ. Он обладает емкостным сопротивлением на частоте 50 Гц: Хс=1/314С. Чем больше номинал емкости, тем меньше ее сопротивление.

 

Источник: lib.qrz.ru

Термостабилизатор для паяльника

категория

Электроника в быту

материалы в категории

М. КОЗЛОВ, г. Набережные Челны, Татарстан
Радио, 2002 год, № 8

Автор этой статьи предлагает очень интересную идею — использовать в качестве термодатчика системы стабилизации температуры жала электропаяльника его нагревательную обмотку. Реализация идеи позволяет термостабилизировать паяльник без его переделки. Устройство можно использовать для стабилизации температуры и других нагревательных приборов.

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

Если же нет возможности или желания делать паяльник с термодатчиком, можно воспользоваться простым способом, не требующим какой-либо доработки готового паяльника. Идея заключается в том, что датчиком температуры служит нагревательный элемент паяльника.

Известно, что электрическое сопротивление чистых металлов прямо пропорционально абсолютной температуре, поэтому, измеряя сопротивление, можно судить о температуре. Хотя сопротивление проводников, применяемых для нагревательных элементов, зависит от температуры меньше, такой подход применим и здесь. В рассматриваемом случае удобно измерять температуру нагревательного элемента по потребляемому им току.

К достоинствам предлагаемого метода стабилизации температуры можно отнести простоту реализации, более быстрое разогревание паяльника (по сравнению с регулятором мощности) и достаточную для радиолюбительской практики стабильность температуры жала. Недостаток — необходимость индивидуальной подстройки под мощность конкретного паяльника.

Принципиальная схема термостабилизатора, реализующего указанную выше идею, изображена на рис. 1.

Термостабилизатор для паяльника

Регулирование температуры нагревателя происходит в результате изменения числа подаваемых на него полупериодов сетевого напряжения. Выходной узел устройства, который обеспечивает включение тринистора в моменты перехода сетевого напряжения через нуль, построен по рекомендациям статьи А. Леонтьева и С. Лукаша «Выходной узел регулятора мощности» в «Радио», 1993, № 4, с. 40,41. Температуру стабилизации задают резистором R4. Она может быть установлена в пределах примерно 20…100% от максимальной. Устройство рассчитано на совместную работу с паяльником мощностью 30 Вт на напряжение питания 220 В. Об использовании термостабилизатора с нагрузкой другой мощности сказано ниже.

Рассмотрение работы термостабилизатора начнем с момента, когда тринис-тор VS1 открыт. Временные диаграммы, отражающие работу устройства, показаны на рис. 2. Выпрямленное диодами VD1 —VD4 напряжение сети создает пульсирующий ток через нагревательный элемент Rн паяльника и резисторы R1 и R2. Значение этого тока определяет в основном сопротивление Rн, так как оно значительно больше, чем R1+R2. При этом напряжение на неинвертирующем входе ОУ DA1 имеет амплитуду около 3 В.

Термостабилизатор для паяльника на микроконтроллере

Компаратор, выполненный на операционном усилителе DA1, сравнивает это напряжение с напряжением, снимаемым с движка переменного резистора R4. На выходе компаратор формирует прямоугольные импульсы, длительность которых зависит от того, насколько напряжение на резисторах R1 и R2 превышает напряжение, снимаемое с движка резистора R4.

По мере разогревания паяльника ток через его нагреватель уменьшается, следовательно, уменьшается падение напряжения на резисторах R1 и R2 и импульсы на выходе компаратора становятся короче. Компаратор DA1 управляет работой транзистора VT1. Стабилитрон VD6 необходим для закрывания транзистора на время низкого уровня на выходе компаратора.

Когда транзистор VT1 закрыт, конденсатор СЗ заряжается через резисторы R11 и R12. Напряжение высокого уровня на выходе компаратора открывает транзистор VT1, и конденсатор СЗ разряжается через резистор R12. Таким образом, напряжение на этом конденсаторе зависит от скважности импульсов на выходе компаратора. До тех пор, пока напряжение на конденсаторе меньше порога переключения элемента DD1.3, разрешена работа выходного узла.

В моменты, когда сетевое напряжение близко к нулю, элемент DD1.3 формирует прямоугольные импульсы. Дифференцирующая цепь C4R14 и элемент DD1.4 укорачивают эти импульсы, а эмиттерный повторитель на транзисторе VT2 усиливает их по току. В начале полупериода сетевого напряжения они открывают тринистор VS1.

По мере увеличения температуры паяльника уменьшается амплитуда напряжения на резисторах R1 и R2 и в некоторый момент длительности импульсов на выходе компаратора станет недостаточно для разрядки конденсатора до порога переключения логического элемента DD1.3. В результате выходной узел отключит паяльник.

В таком состоянии устройство могло бы находиться неограниченно долго. Но для контроля температуры необходимо протекание тока через нагревательный элемент, поэтому в термостабилизатор введен генератор на элементах DD1.1 и DD1.2. Он формирует импульсы длительностью около 0,1…0,2 с и частотой примерно 1 Гц.

Импульсы с выхода генератора через резистор R10 поступают на базу транзистора VT1 и открывают его, конденсатор СЗ разряжается и выходной узел подает напряжение на паяльник. Если за время паузы паяльник успел хоть немного остыть, то после спада импульса генератора не будет происходить отключения паяльника до тех пор, пока температура жала не поднимется до заданной.

В устройстве использованы постоянные резисторы МЛТ, подстроечный R2 — СП5-14, переменный R4 — СП2-2-0,5. Конденсаторы С1, СЗ, С4 — из серии КМ, оксидный С2 — К50-35. Микросхема К561ЛЕ5 заменима на К1561ЛЕ5. Можно использовать и К564ЛЕ5, но потребуется коррекция печатной платы. Компаратор можно собрать на ОУ К544УД1, К544УД2 с любым буквенным индексом. Вместо КС133А подойдет любой стабилитрон на напряжение стабилизации 3,3…5,6 В. Транзисторы — любые из серий КТ315, КТ342, КТ3102.

Термостабилизатор собран на печатной плате из фольгированного стеклотекстолита толщиной 1 мм. Чертеж платы показан на рис. 3. Плату устанавливают в прочную коробку из изоляционного материала. На переднюю панель выводят ручку переменного резистора R4 и гнезда Х1. Пластиковая ручка резистора R4 должна быть механически и электрически прочной. Следует помнить, что все детали устройства находятся под напряжением сети.

Термостабилизатор для паяльника на микроконтроллере

Для налаживания удобно использовать светодиодный индикатор, схема которого показана на рис. 4. Индикатор включают последовательно с паяльником.

Движок резистора R2 устанавливают в крайнее левое по схеме положение, а движок резистора R4 — в нижнее, что соответствует заданию максимальной температуры нагревателя. Включают термостабилизатор, при этом светодиод индикатора должен уверенно светить. При отсутствии свечения необходимо подобрать резистор R5 меньшего сопротивления. Через некоторое время, когда паяльник разогреется до максимальной температуры, перемещают движок резистора R2 вправо по схеме до тех пор, пока светодиод не начнет мигать. Если этого не удалось добиться, следует увеличить сопротивление резистора R5 и повторить описанную процедуру.

Термостабилизатор для паяльника на микроконтроллере

После установки максимальной температуры дают паяльнику остыть и проверяют нижний предел регулирования резистором R4. Для удобства пользования шкалу регулятора можно проградуировать.

Сопротивление резисторов R1 и R2 должно быть таким, чтобы напряжение на неинвертирующем входе OY DA1 находилось в пределах 2,5…3,5 В. Сопротивление резисторов R4 и R5 выбирают так, чтобы напряжение на движке резистора R4 можно было изменять от значения, соответствующего падению напряжения на резисторах R1 и R2 при холодном паяльнике до падения напряжения на этих резисторах при разогретом.

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

Источник: radio-uchebnik.ru

Источник: thestroika.com

Всем привет! Начну я с небольшой предыстории. Как-то ранее я работал над проектом «Автомат подачи звонка» для своего учебного заведения. В последний момент, когда работа шла к завершению, я проводил калибровку устройства и исправлял косяки. В конце концов один из косяков мне спалил микросхему на программаторе. Было конечно немного обидно, программатор у меня всего один был, а проект нужно было быстрее заканчивать.

В тот момент у меня была запасная SMD микросхема для программатора, но паяльником её фиг отпаяешь. И я начал задумываться над приобретением паяльной станции с термо-феном. Залез в интернет магазин, увидел цены на паяльные станции, и приофигел… Самая убогая и дешёвая станция на тот момент стоила около 2800грн (более 80-100$). А хорошие, фирменные — еще дороже! И с того момента я решил заняться следующим проектом о создании своей паяльной станции с полного «Нуля».

Для своего проекта за основу был взят микроконтроллер семейства AVRATMega8A. Почему чисто «Атмегу», а не Arduino? Сама «мега» очень дешёвая (1$), а ArduinoNanoи Uno значительно подороже будет, да и программирование на МК начинал с «Меги».

Ладно, довольно истории. Перейдём к делу!

Для создании паяльной станции мне первым делом нужен был сам Паяльник, Термофен, Корпус и так далее:

  • Паяльник я приобрёл самый простой YIHUA – 907A (6$) в котором есть керамический нагреватель и термопара для контроля температуры;

3572754800.jpg

  • Паяльный фен той же фирмыYIHUA(17$)во встроенной турбиной;

2471728032.jpg

  • Был приобретён «Корпус N11AWЧёрный» (2$);
  • ЖК дисплей WH1602 для отображения показателей температури статуса (2$);
  • МК ATMega8A (1$);
  • Пара микро тумблеров (0,43$);
  • Энкодер со встроенной тактовой кнопкой – от куда-то отковырял;
  • Операционный усилитель LM358N (0,2$);
  • Две оптопары: PC818 иMOC3063 (0,21 + 0,47);
  • И остальная различная расыпуха, которая у меня завалялась.

И в сумме станция обошлась мне примерно 30$, что в разы дешевле.

Паяльник и фен имеют следующие характеристики:

  • Паяльник: Напряжение питания 24В, мощность 50Вт;
  • Паяльный Фен: Спираль 220В, Турбина 24В, Мощность 700Вт, Температура до 480℃;

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

Принципиальная схема Паяльной Станции

795964702.jpg

Источники питания станции

В качестве источника паяльника для паяльника был взят понижающий трансформатор (220В-22В) на 60Вт.

А для схемы управления был взят отдельный источник питания:-зарядное устройство от смартфона. Данный источник питания был немного доработан и теперь он выдаёт 9В. Далее, с помощью понижающего стабилизатора напряжения ЕН7805, мы понижаем напряжение до 5В и подаем его на схему управления.

Управление и контроль

img4.png

Для управления температурой Паяльника и Фена нам в первую очередь нужно снимать данные с датчиков температур, и в этом нам поможет операционный усилитель LM358. Т.к. ЭДС у термопарыTCK очень мало (несколько милливольт), то операционный усилитель снимает эту ЭДС с термопары и увеличивает её в сотни раз для восприятия АЦП микроконтроллераATMega8.

Так же меняя сопротивление подстроечным резистором R7 иR11можно изменять коэффициент усиления ОС, что в свою очередь, можно легко калибровать температуру паяльника.

Так как зависимость напряжения на оптопаре от температуры паяльника u=f(t)– примерно линейная, то калибровку можно осуществить очень просто: ставим жала паяльника на термопару мультиметра, выставляем мультиметр в режим «Измерение температуры», выставляем на станции температуру в 350℃, ждём пару минут пока паяльник нагреется, начинаем сравнивать температуру на мультиметре и установленную температуру и если показания температуры отличаются друг от друга  – начинаем изменять коэффициент усиления на ОС (резистором R7 и R11) в большую или в меньшую сторону.

Далее Нам нужно управлять нагревательным элементом Паяльника и Фена.

Паяльником мы будем управлять силовым полевым транзистором VT2 IRFZ44 и оптопарой U3 PC818 (для создания гальванической развязки). Питание на паяльник подаётся с трансформатора мощностью 60Вт, через диодный мостVD1 на 4А и фильтрующий конденсатор на C4=1000мкФ и C5=100нФ.

Так как на фен подаётся переменное напряжение 220В то управлять Феном будем Симистором VS1 BT138-600 и оптопарой U2 MOС3063.

Обязательно нужно установить Снаббер!!! Состоящий из резистораR20 220 Ом/2Вт и керамического конденсатора C16 на 220нФ/250В. Снаббер предотвратит ложные открывания симистора BT138-600.

В этой же цепи управления установлены светодиоды HL1 и HL2, сигнализирующие о работы Паяльника или Паяльного Фена. Когда светодиод постоянно горит, то происходит нагрев, а если они моргают, то происходит подержание заданной температуры.

Принцип стабилизации температуры

Хочу обратить внимание на способ регулировки температуры Паяльника и Фена. Изначально хотел осуществить ПИД регулировку (Пропорциональны Интегральный Дифференциальный регулятор), но понял, что это слишком сложно и не рентабельно, и я остановился просто на Пропорциональном регулировании с помощью ШИМ-модуляции.

Суть регулирования такова: При включении паяльника будет подана максимальная мощность на паяльник, при приближении к заданной температуре мощность начинает пропорционально понижаться, и при минимальной разнице между текущей и заданной температурой – подаваемая мощность на паяльник или фен держится на минимуме. Таким образом мы удерживаем заданную температуру и устраняем инерцию перегрева.

Коэффициент пропорциональности можно задать в программном коде. По умолчанию установлено «#define K_TERM_SOLDER 20»

«#define K_TERM_FEN 25»

Разработка печаткой платы и внешнего вида станция

Для Паяльной Станции была разработана небольшая печатная плата в программе Sprint-Layout и изготовлена технологией «ЛУТ».

132492898.png

К сожалению я не чего не лудил, боялся что дорожки перегреются и они отлепятся от текстолита

1725117792.jpg

Первым делом пропаял перемычки и SMD-резисторы, а потом всё остальное. В конце концов получилось как-то так:

1538464976.jpg3655568129.jpg

Я остался доволен результатом!!!

Далее я занялся корпусом. Заказал себе небольшой чёрный корпус и начал ломать голову над лицевой панелью станции. И после одной неудачной попытки, наконец-то смой проделать ровные отверстия, вставить органы управления и закрепить их. Получалось как-то так, просто и лаконично.

3833832113.jpg2391923994.jpg484276601.jpg

Следом на заднюю панель были установлены разъём для шнура, выключатель, предохранитель

3018978474.jpg

В корпус разместил трансформатор для паяльника, сбоку от него источник питания для схемы управления и посередине радиатор с транзисторомVT1(КТ819), который управляет турбиной на фене. Радиатор желательно ставить побольше чем у меня!!! Ибо транзистор сильно греется из-за падения напряжения не нём.

4098985594.jpg3375474634.jpg

Собрав всё в кучу, станция приобрела вот такой внутренний вид:

2064743386.jpg1181831786.jpg30484666.jpg

И внешний вид:

1018233098.jpg2269469204.jpg

Из обрезка текстолита были изготовлены подставки для паяльника и фена.

3202455259.jpg2206318443.jpg

Конечный Вид Станции

134590388.jpg895845892.jpg

Прошивка

Прошивка для микроконтроллера разрабатывалась с полного «Нуля» в программной среде «AVRStudio 5.0»на языке “С++”. Прошивалось программатором AVR USB ASPв программе «Khazama AVR Programmer».

В фьюзах меняем только частоту процессора на 2 МГц, всё остальное по – умолчанию:

2029703355.png603519143.png2446861495.png

Прошивка и исходный код можно в конце статьи

Примечания

  1. Транзистор VT1 Установить на хороший теплоотвод.
  2. Диод VD2, в цепи высокого напряжения, пропуская полупериод и уменьшает подаваемую мощность на Фена в 2 раза. Если нужно, чтобы Фен работал в полную мощность – вместо диода устанавливаем перемычку.
  3. В подставку для фена установлен неодимовый магнит. Когда фен кладётся на подставку, то срабатывает геркон и фен начинает остывать до 80℃. Как только снимается с подставки, он начинает нагреваться до ранее установленной температурой.
  4. При выключении фена турбина продолжает работать до тех пор пока фен не остынет до 80℃.
  5. Когда паяльник или фен не подключены к станции, то высвечивается надпись: «SolderERROR» или «HotAirERROR».
  6. Ножки микроконтроллераATMega8A: 2,3,6,23 – не используются.
  7. Переменный резисторR1 в цепи ЖК дисплея – настраивает контрастность экрана.
  8. Ножки ЖК дисплея: 7,8,9,10 – весят в воздухе.

Вывод: Очень доволен аппаратом! Прошло уже пол месяца как я его собрал, и всё работает на ура!!! В дальнейшем планирую немного его доработать, а именно внедрить в неё простой лабораторный блок питания (1,3-30В) ток 3А и выводить показания напряжения и тока на ЖК-дисплей. Специально для этого приобрёл DC-DC понижающий преобразователь.

3236241604.jpg

Скачать прошивку, исходный код а также плату можно тут

Конструкцию Разработал и Реализовал Нагирич Владислав

Источник: vip-cxema.org

#include <avr/io.h> #include <avr/interrupt.h> #include <avr/eeprom.h>  unsigned char display_on, registr, butt1,butt2,butt3, butt3s, zamer,rezhim,mode,param,params, edit, redit, blink, wait2, wait3, wait5, wait6, wait7, rdisp, encoder_r, encoder_l, right, left, prewmode; unsigned char ind[4],tempvar, tempmem; float measureint, voltage_ADC,tmp; unsigned int stop_h, stop_m, pwm_d, measure, pmeasure; int pwm,tempch; //unsigned int voltage_ADC; unsigned char param1[10];  unsigned char param1eeprom[10] EEMEM; uint16_t tempset,measure; uint16_t tem EEMEM; unsigned char pwm_m[455] EEMEM;  ISR (TIMER0_OVF_vect) { 		 if(display_on==1)  			 { 				 PORTB |= (1 << PB6); PORTD |= (1 << PD7); PORTD |= (1 << PD3); PORTC |= (1 << PC2); 				 				 PORTB &=~ (1 << PB0); //1 				 PORTC &=~ (1 << PC1); //2 				 PORTD &=~ (1 << PD4); //3 				 PORTD &=~ (1 << PD2); //4 				 PORTD &=~ (1 << PD5); //5 				 PORTB &=~ (1 << PB7); //6 				 PORTD &=~ (1 << PD6); //7 			 } 			  		 if(display_on==37) 			 { 				 				if(ind[registr]==0 || ind[registr]==6 || ind[registr]==9) {display_on=display_on+20;} //6 сегментов 					if(ind[registr]==2 || ind[registr]==3 || ind[registr]==5 || ind[registr]=='P') {display_on=display_on+25;} //5 сегментов 					 if(ind[registr]==4 || ind[registr]=='g') {display_on=display_on+35;} //4 сегмента	 						if(ind[registr]==7) {display_on=display_on+40;} // 3 сегмента 						 if(ind[registr]==1) {display_on=display_on+45;} //2 сегмента 							 if(ind[registr]=='-') {display_on=display_on+50;} //2 сегмента 				 				  				 if(registr==0) { PORTB &=~ (1 << PB6);} 				 if(registr==1) { PORTD &=~ (1 << PD3);} 				 if(registr==2) { PORTC &=~ (1 << PC2);} 				 if(registr==3) { PORTD &=~ (1 << PD7);} 								 					 if (ind[registr]==0) {PORTB |= (1 << PB0);PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTD |= (1 << PD5);PORTB |= (1 << PB7);}//0 					 if (ind[registr]==1) {PORTD |= (1 << PD2);PORTD |= (1 << PD5);}//1 					 if (ind[registr]==2) {PORTB |= (1 << PB0);PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTB |= (1 << PB7); PORTD |= (1 << PD6);}//2 					 if (ind[registr]==3) {PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTD |= (1 << PD5);PORTB |= (1 << PB7); PORTD |= (1 << PD6);}//3 					 if (ind[registr]==4) {PORTC |= (1 << PC1);PORTD |= (1 << PD2);PORTD |= (1 << PD5);PORTD |= (1 << PD6);}//4 					 if (ind[registr]==5) {PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD5);PORTB |= (1 << PB7); PORTD |= (1 << PD6);}//5 					 if (ind[registr]==6) {PORTB |= (1 << PB0);PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD5);PORTB |= (1 << PB7); PORTD |= (1 << PD6);}//6 					 if (ind[registr]==7) {PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTD |= (1 << PD5);}//7 					 if (ind[registr]==8) {PORTB |= (1 << PB0);PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTD |= (1 << PD5);PORTB |= (1 << PB7); PORTD |= (1 << PD6);}//8 					 if (ind[registr]==9) {PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTD |= (1 << PD5);PORTB |= (1 << PB7); PORTD |= (1 << PD6);}//9 					 if (ind[registr]=='P') {PORTB |= (1 << PB0);PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD2);PORTD |= (1 << PD6);}//P 					 if (ind[registr]=='g') {PORTC |= (1 << PC1);PORTD |= (1 << PD4);PORTD |= (1 << PD2); PORTD |= (1 << PD6);}//g	 					 if (ind[registr]=='-') {PORTD |= (1 << PD6);}//-  					 if (ind[registr]=='F') {PORTB |= (1 << PB0);PORTC |= (1 << PC1);PORTD |= (1 << PD4); PORTD |= (1 << PD6);}//F 					 if (ind[registr]=='n') {PORTB |= (1 << PB0);PORTD |= (1 << PD5); PORTD |= (1 << PD6);}//n	  						  				 registr++; 				 if (registr>3){registr=0;} 			 } 			  			 display_on++; 			 if (display_on>100){display_on=1;blink++; if(blink>250){blink=0;} ADCSR |= (1<<ADSC);} 				 if(blink==250){wait2++; if(wait2>250){wait2=0;}} 				 if(wait2==250){wait3++; if(wait3>250){wait3=251;}; butt3s++; if(butt3s>250){butt3s=251;}; wait5++;wait6++;}	  				 if(wait3==3 && mode==1){mode=0;} 					 if(wait5==20){wait5=0;} 						 if(wait5==51){wait5=0;} 							 if(wait5==50){wait6++; if(wait6==250){wait6=0;};if(wait6==param1[3]){rezhim=0;}} 				  }  void init_pwm (void) { 	TCCR1A|=(1<<COM1A0); 	TCCR1A|=(1<<COM1A1); 	TCCR1B|=(1<<CS10); 	//TCCR1A|=(1<<WGM10); 	TCCR1A|=(1<<WGM11);  	//TCCR1B|=(1<<WGM12); 	TCCR1B|=(1<<WGM13); 		 	//Установка начальных значений счетчиков 	OCR1A=27000; 	//OCR1B=10000; //Выключен 0 от 200/170 до 250/215 	ICR1=27000; }  ISR (ADC_vect)//прерывание по завершению преобразования АЦП { 	voltage_ADC = voltage_ADC+ADCW;//считываем значение АЦ преобразования 	if (zamer==100)  	 { 	 measureint=voltage_ADC/zamer; 	 measure=measureint*param1[2]/100; 	  	 if(rezhim==1) 	 {  	 if(mode==0) 		 { 			if(param1[0]>0) {ind[0]=measure/100;ind[1]=measure%100/10;ind[2]=measure%10;ind[3]='g';} 			if(param1[0]==0)  			 { 				 if(tempset<100){ind[0]=-1;} else {ind[0]=tempset/100;} 					 if(tempset<10) {ind[1]=-1;} else {ind[1]=tempset%100/10;} 						 ind[2]=tempset%10;ind[3]='g'; 				} 	 } 		 if(mode==1) 		 {  			 if(blink<170) 			 {if(tempset<100){ind[0]=-1;} else {ind[0]=tempset/100;} 			 if(tempset<10) {ind[1]=-1;} else {ind[1]=tempset%100/10;} 			 ind[2]=tempset%10;ind[3]='g'; 			 } 				 if(blink>170){ind[0]=-1;ind[1]=-1;ind[2]=-1;ind[3]=-1;} 			} 	 } 	  	 	  	 if(tempmem==0) 	 { 	 if(wait5==10)//5=10 секунд 	 { 		 if(tempch==0 && tempset==measure && eeprom_read_byte(&pwm_m[tempset])!=pwm) 		 {eeprom_write_byte(&pwm_m[tempset],pwm); tempmem=1; ind[0]='g';ind[1]='g';ind[2]='g';} 									 					  				 if(tempset!=measure)  		 { 			 pwm_d=tempset-measure; 			 pwm=pwm+pwm_d; 		 } 		 wait5=0;tempch=0; 		 } 		 		 if(pmeasure<measure && tempset<measure) //температура больше установленно и наблюдается рост 			 { 				pwm_d=measure-tempset; tempch++; 				pwm=pwm-pwm_d; 				pmeasure=measure; 			 } 			  			 if(pmeasure>measure && tempset>measure) //температура меньше установленно и наблюдается снижение 			 { 				pwm_d=tempset-measure; tempch++; 				pwm=pwm+pwm_d*measure/100;  				pmeasure=measure; 			 }	 			 	  		 } 		 		  		 if(wait5==10 && tempmem==1)//5=10 секунд 		 {  					 			 if(tempset<measure){pwm=pwm-1;} 			 if(tempset>measure){pwm=pwm+1;} 			 if(tempset==measure && eeprom_read_byte(&pwm_m[tempset])>pwm && eeprom_read_byte(&pwm_m[tempset])-pwm>5){eeprom_write_byte(&pwm_m[tempset],pwm);} 			 if(tempset==measure && eeprom_read_byte(&pwm_m[tempset])>pwm && eeprom_read_byte(&pwm_m[tempset])-pwm>5){eeprom_write_byte(&pwm_m[tempset],pwm);}	  			 wait5=0; 			 if(tempset==measure && tempmem==1 && (int)(voltage_ADC*param1[2]/100)%zamer<50){tmp=tmp-10;} 			 if(tempset==measure && tempmem==1 && (int)(voltage_ADC*param1[2]/100)%zamer>50){tmp=tmp+10;} 							  		 }	 			  		if(pwm>250){pwm=250;} if(pwm<0){pwm=0;} 		if(tempset-10>measure && tempmem==1){OCR1A=0;wait5=0;wait6=0;} else {OCR1A=27000+tmp-pwm*108;}  	 voltage_ADC=0;zamer=0;		 	} 	zamer++;  		 	if (rezhim!=1) {OCR1A=27000;}  		if (measure>480) {OCR1A=27000;rezhim=0;OCR1A=27000;} 	 	 	//ADCSR |= (1<<ADSC);//запускаем очередное преобразование }   //Основная программа int main(void) {  TIMSK |= (1 << TOIE0); // Разрешаем прерывание по переполнению Т2 TCCR0|=(0<<CS02)|(1<<CS00); init_pwm(); //Инициализация ШИМ каналов   //ads ADMUX|= (1<<REFS0); //ВНУТРЕННЕЕ ОПОРНОЕ ADCSRA |= (1<<ADEN) | (1<<ADSC) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); sei(); // Глобально разрешаем прерывания  PORTB=0b00000000; PORTC=0b00101000; PORTD=0b00000001;//Включаем подтягивающий резистор DDRB=0b11111111; DDRC=0b11010110; DDRD=0b11111110; 			  butt1=0;butt2=0;butt3=0;rezhim=0;mode=0;params=0;edit=0;redit=0;blink=0;tempmem=0;tempch=0; encoder_l=40; encoder_r=0; right=0; left=0;butt3s=0;wait3=0;wait2=0;mode=0;prewmode=0;pwm_d=0;  tempset = eeprom_read_word(&tem); if(tempset>500){tempset=100;}	 param1[0] = eeprom_read_byte(¶m1eeprom[0]); if(param1[0]>1){param1[1]=1;} param1[1] = eeprom_read_byte(¶m1eeprom[1]); if(param1[1]>10){param1[1]=5;}	 param1[2] = eeprom_read_byte(¶m1eeprom[2]); if(param1[2]>250){param1[2]=75;} param1[3] = eeprom_read_byte(¶m1eeprom[3]); if(param1[3]>250){param1[3]=10;} 	 pwm=eeprom_read_byte(&pwm_m[tempset]); if (pwm<255){tempmem=1;}  while (1) //Вечный цикл { if(tempset<100){tempset=100;}	if(tempset>450){tempset=450;} 	 //кнопка энкодера if ((PINC&(1<<PC5))==0x00){butt1++; if(butt1>200){butt1=201;}} else {butt1=0;}  if(butt1==200 && rezhim==0){butt3s=0; rezhim=1; butt1=201;}  if(butt1==200 && rezhim==1){butt3s=0; rezhim=0; butt1=201;}  if(butt1==200) {butt3s=0;} 	 	if (butt1==201 && butt3s==2 && rezhim!=2){rezhim=2;butt3s=10;} 	if (butt1==201 && butt3s==2 && rezhim==2){rezhim=0;butt3s=10;}	   //Поворот энкодера	 if ((PIND&(1<<PD0))==0x00){butt2++; if(butt2>encoder_l){butt2=encoder_l+1;}} else {butt2=0;} if ((PINC&(1<<PC3))==0x00){butt3++; if(butt3>encoder_l){butt3=encoder_l+1;}} else {butt3=0;}  if(right==1 || left==1){right=0; left=0;} if(encoder_r==0)   { 	 if(butt2==encoder_l+1 && butt3==encoder_l) {encoder_r=encoder_l*5;mode=1;wait3=0;right=1;} 	 if(butt3==encoder_l+1 && butt2==encoder_l) {encoder_r=encoder_l*5;mode=1;wait3=0;left=1;}  } if(encoder_r==0){encoder_r=1;} encoder_r--;  if(mode!=prewmode){prewmode=mode; eeprom_write_word(&tem, tempset);}   if(rezhim==0) { 	if(blink<170){ind[0]=-1; ind[1]=-1; ind[2]=-1; ind[3]=-1;} 	if(blink>170){ind[0]='-'; ind[1]='-'; ind[2]='-'; ind[3]='-';} }  if(rezhim==1)  { 	 if(right==1) {tempset=tempset+param1[1];pwm=eeprom_read_byte(&pwm_m[tempset]); if (pwm<255){tempmem=1;tmp=0;}else{tempmem=0;pwm=1;tmp=0;} }  	 if(left==1){tempset=tempset-param1[1];pwm=eeprom_read_byte(&pwm_m[tempset]); if (pwm<255){tempmem=1;tmp=0;}else{tempmem=0;pwm=1;tmp=0;} }  }    if(rezhim==2)  { 	if(butt1==200){if(edit==0){edit=1;tempvar=-1;} else {edit=0; eeprom_write_byte(¶m1eeprom[params], param1[params]);} } 	 	if(edit==0) 	 { 		 ind[0]='P'; ind[1]=params; ind[2]=-1; ind[3]=-1; 		 if(right==1){params++;}; if(left==1){params--;} 			 if(params<0){params=0;}; if(params>3){params=3;} 	 } 	 	if(edit==1) 	{ 	 if(blink==1 || tempvar!=param1[params]) 		 { 			 		 if(param1[params]<100){ind[0]=-1;} else {ind[0]=param1[params]/100;} 		 if(param1[params]<10) {ind[1]=-1;} else {ind[1]=param1[params]%100/10;} 		 ind[2]=param1[params]%10; 	 } 	 if(blink>170){ind[0]=-1;ind[1]=-1;ind[2]=-1;ind[3]=-1;} 		tempvar=param1[params]; 		if(right==1){param1[params]++;};if(left==1){param1[params]--;} 			if(param1[params]<0){param1[params]=0;} if(param1[params]>250){param1[params]=1;} 		if(params==0) {if(param1[params]<0){param1[params]=0;} if(param1[params]>1){param1[params]=1;}}	 			if(params==1) {if(param1[params]<1){param1[params]=1;} if(param1[params]>50){param1[params]=50;}}	 				if(params==2) {if(param1[params]<0){param1[params]=0;} if(param1[params]>250){param1[params]=250;}}	 					if(params==3) {if(param1[params]<0){param1[params]=0;} if(param1[params]>250){param1[params]=250;}}	  } 	   }     } //loop } //main  

<spoiler />

Источник: habr.com


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.