trust already work Универсальная печь радиолюбителя » Портал инженера

Универсальная печь радиолюбителя

Автор - molchec.

Не для кого не секрет, что прогрессом в нашем мире движет лень: надоело ходить пешком - придумали автомобиль, надоело бегать к телевизору переключать каналы - придумали пульт ДУ и т.д. Так нам надоело часами сидеть с пинцетом и паяльником в канифольном тумане, и было задумано сделать печку для пайки SMD деталей. Почему Универсальная ? Потому, что делать один режим для меня как то несерьёзно и поэтому решено было сделать 4 программируемых режима, об этом будет описано ниже.
Схема БУ

Схема БП

Несколько слов по деталям: зуммер мы использовали со встроенным генератором, включающий его транзистор любой ключевой n-p-n структуры можно и КТ315, главное чтоб ток коллектора был больше рабочего тока зуммера. В данном случае стоит SMD вариант, при большом токе зуммера возможно придётся поставить ограничивающий резистор в цепь базы. Значение сопротивления R2 и R3 БУ определяется применяемыми светодиодами. Контроллер atmega8 обязательно в TQFP корпусе т.к. в DIP нет вывода АЦП ADC7. Кварц «часовой» тоже в принципе любой, я выдернул из старых китайских часов. Что качается схемы коммутации здесь тоже имеются вариации, так я не стал заморачиваться и поставил ТТ SHARP S202S01, тогда R1 БП ставится сопротивлением 680 Ом. OK1, R2, R3 и T1 при этом естественно исключаются. Приводимый вариант с симистором тоже работает и замечаний не вызывало. Потребляемый устройством ток порядка 120 мА, с этим учётом и выбирается трансформатор и диоды, основными потребителями являются зуммер (~30 мА) и подсветка (~80мА). Аналоговую и цифровую земли необходимо соединить в одной точке. R13 БУ желательно с как можно меньшим ТКС. Силовую часть рекомендую собрать на отдельной плате, поэтому собственно они схемно разнесены. Провода до датчика экранированы и соединены с аналоговой землёй в одной точке. Корпус печки тоже необходимо соединить с общим проводом, желательно в том же месте где соединяется аналоговая и цифровые земли. Если честно как рациональнее соединить «земли» наверняка я не знаю и соединял как подсказала интуиция. В целом устройство работает стабильно, лишь изредка появляются мгновенные всплески температуры, вызванные непонятными наводками. Нам они особо не мешали, но при желании можно программно организовать программный фильтр.
{banner_rca-news-1-1}
Ну вот добрались до самого сладкого, это код. Его как обычно вы найдёте в конце статьи вместе с прошивкой. Для навигации между меню я использовал метки. Поскольку в знакогенераторе дисплея нет знака градуса его я нарисовал в памяти CGRAM, так же как и стрелку навигации. Для управления дисплеем я использую свою библиотеку которая позволяет без заморочек выводить русские символы, при желании её можно безболезненно тиснуть, не забыв при этом меня поблагодорить. Для включения/отключения мигающего курсора используется соответствующие макросы. Всё по возможности комментировано прямо в тексте программы, поэтому остановлюсь подробно лишь на системе меню.

Навигация по меню осуществляется кнопками UP, DOWN, ENTER и STOP.

При включении появляется главное меню

Метка menu0
Установки – редактирование режимов.
Режимы – выбор режима запуска.
Запуск контроля осуществляется только из этого меню, сделано это нарочно для исключения критических ситуаций. Если режим не выбран то контроль не будет запущен и отобразится предупреждение

При выборе пункта Установки переходим в меню выбора режима для редактирования

Метка menu01

{banner_rca-news-1-2}
Выбор режима осуществляется клавишами LEFT, RIGHT и ENTER, при этом мерцающий курсор сигнализирует о выборе.
Далее попадаем в меню редактирования режима

Метка menu010
Навигация между знакоместами осуществляется клавишами LEFT, RIGHT, значения устанавливается клавишами UP, DOWN. Tx – температура в градусах, tx – время минуты : секунды. После установки значений необходимо нажать ENTER, при этом высветится кратковременное сообщение в случае успешной записи. Таким образом устанавливаются все три подрежима. В случае если необходимо выйти из установки необходимо нажать клавишу STOP, при этом изменения текущего подрежима не сохраняются. После установки последнего подрежима переходим в главное меню (метка menu0). Данные режимов сохраняются в памяти EEPROM в виде массива.

При выборе в главном меню пункта Режимы, переходим в меню выбора режима аналогичному menu01

Метка menu02
После выбора режима отображается меню просмотра его подрежимов, которое практически идентично menu010, но без курсора его метка menu020. Для активации просматриваемого режима необходимо просмотреть все подрежимы, в случае преждевременного выхода (нажатии кнопки STOP) РЕЖИМ НЕ АКТИВИРУЕТСЯ!!! Сделано это намерено. Почему? Потому что я вредный, а вообще это опять же дополнительная защита для рассеянных, таких как я.

Теперь немного о логике работы. При запуске контроля запускается первый подрежим, отсчёт времени (асинхронный режим Т2) начинается при равенстве текущей и установленной температуры, при этом загорается светодиод LedTime. Светодиод LedTerm сигнализирует о работе нагревательного элемента. По окончании времени подрежима система переходит в следующий подрежим, переменная i при этом сбрасывается и отсчёт также начинается только при достижении заданной температуры. В случае если время режима установить 00:00, то независимо от температуры система прекращает контроль: сначала пищит зуммер, а затем появляется главное меню. Окончание контроля происходит также и при окончании последнего подрежима.
{banner_rca-news-1-3}
Пример программирования режима для пайки.
Пусть нам необходимо нагреть плату до 130 °С, продержать 30 сек, затем довести до 230 °С и отключить.
T0 = 130 °
t0 = 00:30
T1 = 230 °
t1 = 00:01
T2 = *Цензура* °
t2 = 00:00

Ну вот думаю что и как программировать разобрались приступаем к запуску.

Перед запуском отображается меню подтверждения запуска выбранного режима

Для продолжения необходимо нажать кнопку START, для выхода STOP.

И наконец меню контроля

В левом верхнем углу отображается текущая температура.
В правом верхнем углу заданная температура.
В нижнем левом углу время до окончания цикла. В нижнем правом углу: текущий цикл / режим работы.

Теперь подробнее о режимах работы их я заложил три.
0 – режим «Ожидание», в этот режим система переходит в начале каждого цикла, при этом система ожидает когда текущая температура temp сравняется с заданной температурой tempR[j]. Таймер остановлен.
1 – режим «Пауза», в этот режим система переходит только из режима 2 «Контроль» при нажатии и отпускании кнопки STOP, при этом нагревательный элемент отключается, таймер останавливается и система ожидает нажатия кнопки START или STOP, в случае нажатия кнопки STOP происходит переход в главное меню.
2 – режим «Контроль», в этот режим система входит из режима 0 «Ожидание» при достижении заданной температуры или при нажатии кнопки START в режиме 1 «Пауза», при этом запускается таймер и система управляет нагревателем в зависимости от текущей температуры.

Из режима «Пауза» в режим «Контроль» система переходит независимо от текущей температуры.

В заключении о fuse bits изначально мега тактируется от внутреннего RC генератора поэтому SUT, CKSEL не трогаем. Необходимо только включить BOD, BODEN=0 и отключить стирание EEPROM по команде «стирание кристалла», EESAVE=0, хотя и не обязательно у меня и так работало.

P.S. Помимо основного своего назначения статья полезна тем что здесь можно поглядеть вариант диалогового меню, использование асинхронного режима счётчика, запись в EEPROM массивом, тиснуть проверенную временем библиотечку для работы с ЖК и «рисования» своих символов. А главное посмотреть как это всё вместе уживается и работает не мешая друг другу.

Фото:

 

Файлы:
Платы в формате SL5                   Вы не можете скачивать файлы с нашего сервера
Прошивка для МК с исходником      Вы не можете скачивать файлы с нашего сервера

 

 

 

Источник: https://radiokot.ru/



Обсудить на форуме

Комментарии

Добавить комментарий
    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent

    Микросхема ШИМ-контроллера FSP3528 и субмодуль управления системным блоком питания на ее основе

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

    Простейшая схема интерфейса 1-Wire – UART

    Протокол 1-Wire обычно используется для общения с различными датчиками температуры, например, DS18S20. Также он применяется и в датчиках заряда аккумулятора и в некоторых светодиодных драйверах. 

    Устройство генератора

    Генератор это основной источник электрической энергии на автомобиле, который служит для подзаряда аккумуляторной батареи и питания всех потребителей при работе двигателя. На автомобиль "Ока" устанавливают генератор типа 37.3701 - это трёхфазный

    Опыт ремонта LCD-матрицы. Дефект - нарушена цветопередача

    Диагноз «неисправность матрицы» звучит как приговор для LCD-дисплея. Ремонт матрицы не предусмотрен ни одними фирменными регламентами. И многие сервисные специалисты даже не пытаются что-либо предпринимать в ситуации, когда дефект матрицы очевиден и

    Устройство универсальной LED подсветки LCD экрана ноутбука CA-166, особенности, установка и адаптация

    Активно развивающейся светодиодная отрасль, не могла не повлиять и на отрасль LCD дисплеев, сейчас уже не имеет значения, это экран телефона, планшета, ноутбука, монитора или телевизора. Светодиодная или иначе говоря LED подсветка матриц практически