ИК паяльная станция на Arduino Mega 2560. Доработка скетча "ARS_v2_Lilium_JSN"

Тема в разделе "Глядите, что я сделал", создана пользователем Jalnin, 2 ноя 2012.

  1. Dmitrysh

    Dmitrysh Гик

    Я думаю, все таки, плавный пуск актуальней для высокоинерционных нагревателей. Лампы они малоинерционные и с рампой ПИД не сильно-то их разгоняет, по крайней мере по тестовым прогонам у меня больше 61% мощности(и то это при увеличении задания рывок небольшой) ПИД не выдавал. А старт вообще с 10-13% происходит без рывка.
    А вот для инерционных нагревателей получается, что мощность мы подвели, а роста температуры нет, ещё добавили - роста температуры нет, дали максимум - температура растёт медленно, но с каждой секундой всё быстрее и быстрее. Сбросили мощность, а температура по инерции растёт, дошли до нуля мощности - растёт, через некоторое время начинает замедляться рост и останавливается, а дальше по кругу - больше, больше, максимум, ноль и т.д.
    Так вот чтобы мы не попадали на такие колебания, как мне кажется, плавный запуск должен помочь. Но надо пробовать.
    Я вообще планировал преднагрев делать, допустим 3-5сек на мощности 2-5%, а потом цикл пайки. Дело в том, что когда стартуешь с холодными лампами, первый импульс на лампы вызывает некое низкочастотное гудение, как трансформатор сварочный, а потом всё как по маслу - тихо и спокойно. Я так понимаю это из-за низкого сопротивления ламп во время старта и я думаю для симисторов это не очень хорошо.
     
    SOLOway нравится это.
  2. SOLOway

    SOLOway Гик

    @Dmitrysh По керамике - может помните, я в теме пару-тройку раз о серийных станциях расписывал, у которых низ керамика. Они, преимущественно, начинают отрабатывать профиль только после достижения низом температуры 50-70*С. Тогда ПИД не шарахается как вы рассказали. Причем управление в этих станциях устроено по-разному, количество датчиков, каналов измерения, способы предварительного разогрева керамики - разнятся.
    Ещё на rom.by обкатали предварительный подразогрев низа ДО старта основного профиля - и те, кто "по-мощности" и те, кто на ОВЕН ТРМ-151 и те, кто на LDZ и те, кто на китайских пид-регуляторах. Когда ПИД-регуляторы использовались не имеющие возможность греть по профилю, народ применял настраиваемые алармы, имеющиеся в таких регуляторах, подключая к ним реле времени для временного отключения нагрева (типа "полка"), например.
    И Виталий из Павлограда операторам станций его производства с плитами на низу, строго рекомендует на 30-60 сек перед стартом профиля включить низ от встроенного механического термостата, дабы плиты слегка разогрелись.
     
    Последнее редактирование: 6 окт 2019
  3. SOLOway

    SOLOway Гик

    Угу! С языка сняли!
     
  4. StDV

    StDV Нерд

    Привет всем. Кто-нибудь ткните в реальную схему подключения.
     
  5. Yojiq

    Yojiq Гик

  6. StDV

    StDV Нерд

    Еще вопрос. Можно вывести на какой - нибудь пин ардуино, активный уровень на весь период пайки плюс секунд 40-60?
     
  7. Watashi

    Watashi Гик

    Пины включения реле активны на время пайки. +40-60 сек - добавить то можно, а зачем?
     
  8. StDV

    StDV Нерд

    Пины управления реле - придется интегрировать выход. На сколько я понял управление - диммер.
    Кулер силового блока включать.
     
  9. Нафаня

    Нафаня Нерд

  10. SOLOway

    SOLOway Гик

    @Нафаня Пара вопросов к вам по конструктиву: а) т.к. разъёмов R7s я у вас в конструкции не обнаружил, вопрос чем вы паяли провода к лампам; б) внешне термостолик выглядит несколько растянутым в длину, вопрос каковы размеры рабочей поверхности; в) т.к. стекло, вероятно, находится под алюминиевыми уголками, температура всего блока будет весьма высока при работе (алюминий хорошо отбирает тепло), вопрос какие меры вы предусмотрели для исключения ожогов. Спасибо.
    Ваши фотки прикрепил. Просьба к вам - когда выкладываете скетч, пожалуйста, приложите используемые библиотеки, т.к. не все версии совместимы и скетч просто может не компилироваться, а кроме того в этом скетче библиотека CyberLib.h правленая в части жестко назначенного номера пина для буззера и у тех, кто буззер на другой пин повесит, будет ли он пищать - фиг знает :)
    0224137.jpg 3198102.jpg 3920066.jpg 5441116.jpg
     
    Последнее редактирование: 6 окт 2019
  11. Dmitrysh

    Dmitrysh Гик

    На другом пине не будет, в стандартной CyberLib пин пищалки - 11, в правленной похоже должен быть 5-ый.
     
    SOLOway нравится это.
  12. Нафаня

    Нафаня Нерд

  13. SOLOway

    SOLOway Гик

    Код (C++):
    //***************Beep от 50 до 2000Гц****************
    void beep(uint16_t dur, uint16_t frq)
    {
      //dur=(1000/frq)*dur;  //расчет длительности бипа
      uint16_t per=500000/frq; //длит. полупер в мкс
      dur=dur/(per/250)*2;
      for(uint16_t i=0; i<dur; i++)
      {
        D5_High;
        delay_us(per);
        D5_Low;
        delay_us(per);
      }
    }
     
    У @SNMar4enko D5, кто захочет буззер на другой пин повесить - в файле CyberLib.cpp замените D5 на желаемый. Оригинальная либа тут: https://github.com/pythonista/CyberLib
    @Нафаня Я чуть поправил вам скетч - теперь в проге Heater отображается название профиля с 1 по 4. На будущее приложил более новую версию этой проги с синхронизацией старта графиков от нуля времени при запуске профиля, но её подключить не смог. И т.к. у вас профилей 14, то прога не воспроизводит имена профилей с 5 по 14.
     

    Вложения:

    Последнее редактирование: 6 окт 2019
  14. and-payalnik

    and-payalnik Нерд

    Всем привет. Наконец снова могу уделить время проекту.
    Есть вопрос: в скетче
    PC_revolver_Dmitrysh_v4_w3.zip
    #2374
    http://forum.amperka.ru/threads/%D0%98%D0%9A-%D0%BF%D0%B0%D1%8F%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D1%8F-%D0%BD%D0%B0-arduino-mega-2560-%D0%94%D0%BE%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D1%81%D0%BA%D0%B5%D1%82%D1%87%D0%B0-ars_v2_lilium_jsn.10176/page-119#post-216523
    есть некоторая проблема. Если использовать как есть, то вроде как работает, но верх не корректно включается.
    Меняю tc1 на tc2,
    "if (tc2 >= SP2-2 && !TopStart) TopStart = true; //если температура низа вышла на уставку включаем верхний нагреватель"
    и низ отрабатывает до включения верха , а потом отключается, верх отрабатывает на отлично. Как указать, чтобы низ не отключался?
     
  15. SOLOway

    SOLOway Гик

    Для начала пришлите фото расположения датчиков.
    Совсем недавно обсудили - так делать не надо!
     
  16. Watashi

    Watashi Гик

    Попробуйте добавить в строку №1435 bottomTemp = profile.Setpoint2;

    Если температура с датчика низа больше чем установленная для низа, то низ работать не будет. может у вас датчик низа расположен близко к верхнему нагревателю.
     
  17. SOLOway

    SOLOway Гик

    Вот интересная мысль у тракториста:
     
    Dmitrysh нравится это.
  18. Dmitrysh

    Dmitrysh Гик

    Перезалил скетч из поста #2367, были небольшие косяки, которые в нормальном режиме работы не вылазили.
     
  19. Dmitrysh

    Dmitrysh Гик

    Как именно не корректно?
    Не надо менять, проверено, работает хорошо и без этого.
    А почему вы решили, что низ отключается? Напишите поподробнее, с цифрами температур и заданий.
    Дело в том, что низ никогда не отключается просто так. Он работает до окончания выполнения профиля.
     
  20. Dmitrysh

    Dmitrysh Гик

    Хотелось бы спросить у vector99 зачем изначально планировался вот этот участок кода:
    Код (C++):
    if (temperatureStep[editStep] <= 99)
            {
             myGLCD.printNumI(temperatureStep[editStep],180, 160);
            }
            if (temperatureStep[editStep] <= 9)
            {
             myGLCD.printNumI(temperatureStep[editStep],180, 160);
            }