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

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

  1. SOLOway

    SOLOway Гуру

    ...Шкаф с небольшую цисцерну... Мощные ТЭНы снизу и сверху (Раньше вместо ТЭНов была сеть трубопроводов с перегретым паром)... Панель в пропеллерами у задней стены шкафа... Сетка из перфорированных трубок перед панелью пропеллеров, следы ржавчины на трубках... Одинокая стойка слева, в метре от шкафа, похожа на пульт ручного управления светофорами, - всего 3 большие кнопки и 4х-битный 7-сегментный дисплей... Какой-то разъем под кнопками... Игорь немного "навеселе" - это не алкоголь, это от запаха растворителей и лаков, в цехе всегда стойкий запах этого. Игорь тут недавно, его работа - подключить коробочку с ярким экраном к разъему на стойке и загрузить одну из программ в стойку, а дальше оператор (он же грузчик и извозчик) выберет профиль под текущую загруженную в шкаф кассету с заготовками и запустит эту махину в работу...
    … А не маловато 250Вт для верха? Игорь отрицательно качает в ответ головой – он занят креплением кварцевой панели к импровизированному позиционеру из остатков разбитых принтеров… Большая микроволновка времен СССР, в верхней крышке которой вырезано просмотровое окно закрытое стеклом на герметике, скрипит, скрежещет под натиском Игоря…

    Проба позиционера – кварцевая панель ездит влево и вправо, взад и вперёд… Вертикальный ход и поворот только в ручном режиме… Игорь не перфекционист…

    После кружки раскрепостителя Игорь воодушевлённо рассказывает про своего франкенштейна… На место тарелки печки вкорячил ТЭН от духовки на 1800Вт, скобками притянул его к дюралевой плите 5мм по размеру ТЭНа – просто совпали размеры печки, ТЭНа и плиты – ничего не считал… Кварцевую панель нашел разбитой, починил… REX-C100 рулит плитой, контроль температуры в камере – внешний термометр для духовки, тестер с термопарой – для наблюдением за температурой в месте пайки при работе верха, вентилятор на месте магнетрона, кварцевая панель, внутренний свет, позиционер – пока всё вручную с кнопок, ручек и джойстика… Термопару тестера крепит каптоновой лентой… Говорит, что идея Watashi с паучком – его обрекла на всё это рукоблудие :) Хочет ПЛК, как на работе…
     
    Dmitrysh, hacjka, Watashi и ещё 1-му нравится это.
  2. prusony

    prusony Нерд

    Обидно было читать. ) Код написать для Ардуины не смогу, но залить чей-то код - легко.
    Спросить хотел, делаю низ на кварцевых трубках с нихромом, трубок много рядом почти без зазора. Допустим и трубки и нихром я сделал идеально, т.е. трубки абсолютно одинаковые, намотал спиральки с одинаковыми Омами, они расположены идеально - вобщем всё идеально. Но не будет ли середина панели грется сильней краёв ? Думаю будет обязательно, но какая будет "дельта" между центром и краями ? Или не заморачиваться?
    Поясню - самая крайняя трубка греет себя и соседку, следующая трубка себя и двух соседок, и т. д..... средние две трубки самые халявщицы.

    Дополню. Тюбы на проект низа "ТермоБро." Там весь процесс, в нескольких сериях, ссылка на первую:


    Здесь термограмма:



    Еще одна рассуждалка. Снизу кварц-трубок нужен отражатель. А что если трубки уложить в плиту из теплоизолирующего материала, как в видео номер 3 , проекта ТермоБро? Отражатель не нужен,во-вторых имеем замечательную теплоизоляцию....
    Хотелось бы от гуру критики рассуждалок...
     
    Последнее редактирование: 7 июн 2020
  3. Dmitrysh

    Dmitrysh Гуру

    Для высокоинерционных нагревателей Ki очень маленький, поэтому и интеграл набегает небольшой.
    В "производство" пошёл такой вариант
    Код (C++):
    byte Pid1(double temp, double ust, byte kP, byte kI, byte kd)
    {
      byte out = 0;
      static float ed = 0;
      e1 = (ust - temp); //ошибка регулирования
      p1 =  (kP * e1) / 10.0; //П составляющая
      integra = (integra < i_min) ? i_min : (integra > i_max) ? i_max : integra + (kI * e1) / 100.0; //И составляющая
      d1 = kd / 100.0 * (temp - ed); //Д составляющая
      ed = temp;
      out = (p1 + integra - d1 < 0) ? 0 : (p1 + integra - d1 > profile.pwr_TOP) ? profile.pwr_TOP : p1 + integra - d1;
      if (Output1>=100 && e1>0 &&integra>0) integra -= e1;
      return out;
    }
     
     
  4. geleos27

    geleos27 Гик

    Огромное спасибо за ответ! Я так понимаю это вариант с "Integral back calculation"

    Первый вопрос: Если profile.pwr_TOP меньше 100. Тогда Output1 всегда будет меньше 100 и отмена прибавления интеграла не сработает, хотя должна, т.к. у нас задача не считать интеграл если мы уже на максимальной мощности.
    По идее должно быть
    Код (C++):
     if (Output1>= profile.pwr_TOP && e1>0 &&integra>0) integra -= e1;
    Второй вопрос: Почему "integra -= e1" а не "e1*kI" ? при kI < 100 интегральная составляющая начнет убывать сразу как мы упремся в максимальный Output1. Чего вроде как быть не должно, т.к. к моменту выхода на уставку "ust - temp == 0" у нас большая часть мощности должна поддерживаться интегральной составляющей.

    Третий вопрос: т.к. в данном варианте ПИД значение интеграла не может быть отрицательным, осознанно отброшена вторая проверка если integra и e1 < 0 ?
     
    Dmitrysh нравится это.
  5. Dmitrysh

    Dmitrysh Гуру

    Да, вы правильно заметили, что при ограничении мощности "фокус" не работает. Так было задумано изначально, потому как писалось под низкоинерционный галоген(который у меня есть), а на галогене ограничение мощности используется очень редко(если правильно настроен ПИД). К сожалению не имею возможности проверять код на керамике или кварце, поэтому стараюсь писать так чтобы, так сказать, не навредить другому функционалу, отличному от моего. Как я писал раньше этот "фокус" мало применим к высокоинерционным системам, потому как они отличаются малыми значениями Ki и малым интегралом соответственно. А вообще ограничение мощности сверху или снизу ведёт к уменьшению "разрешения" по мощности, это надо помнить. Но в общем вы правы, должно быть вот так:
    Код (C++):
    if (Output1>= profile.pwr_TOP && e1>0 &&integra>0) integra -= e1;
    Я писал раньше что это извращение над извращением. Мне хотелось чтобы интеграл убывал быстрее чем е1*Ki. Интегральный коэффициент имеет малые значения, поэтому и одна "порция" e1*Ki имеет малое значение, а хотелось отбросить побольше. Поэтому, чтобы не усложнять код, отбрасываем просто ошибку. В таком подходе есть один "косяк". Если система совсем "лёгкая"(очень неинерционная), то происходит как бы "отскок" на максимальном значении мощности, некие колебания вблизи 100%(это теоретическое исследование). Но в реальной системе такого не происходит, по крайней мере я не заметил.
    В идеале мы вообще не должны упираться в максимальный Output никогда. Я писал раньше, что классический ПИД для паяльной станции совсем не подходит. Задача классического ПИД-регулятора нагреть объект до заданной температуры за минимальное время и с минимальными затратами. У нас задача несколько иная, а именно нагреть объект с заданной скоростью. А как это сделать правильно никто толком не знает. Задача усложняется наличием различных конфигураций оборудования. Поэтому приходится экспериментировать, создавая алгоритмы, которые более-менее справляются с заданными задачами.
    А касаемо интеграла для высокоинерционных нагревателей нужно отметить, что за время нагрева от комнатной температуры до сколь нибудь ПИДу заметного проходит большое время и значительное накопление интеграла, поэтому его "подрезать" самое то что нужно, чтобы при выходе на уставку значительные значения интегрального звена не приводили к перелётам. В данном случае, правильно сделать преднагрев, а потом уже подключить ПИД. Я бы давно так сделал, но мне неначем проверить полученный результат. Пробовал на утюге, вроде как работает, но утюг свободен, когда жены нет дома :).
    Как бы да, минимализм, нам нужно экономить процессорное время. Интеграл не может быть меньше нуля, а зачем проверять ошибку? Ошибка может быть меньше нуля при перелёте, это не мешает работе.
     
  6. Sema

    Sema Нерд

    Всем доброго!
    Как бы отвлекся немного!)
    После попыток настроить верх,кварц! Решил пересобрать его.
    На оправку 6 мм намотал нихром,( весь остаток! )
    Получилось около 670ват
    Вырезал новый поддон( старый был с отверстиями, чтобы легче было гнуть!)
    DF3542EB-AE19-4E02-BF6A-26A36E97D57A.jpeg 422992DC-C213-44EC-B76C-245FEDF457A1.jpeg
    При тестовом заходе на 20%мощьности, верх нагрелся до 465гр растояние до чипа 35мм чип до 221гр, и поплыл!
    Но случилась обида!
    F0C6557F-5C4E-42EF-A06E-1EEEFCC4952F.jpeg
    Хз, может это от того, что я эту(возможно ее) трубку мучал горелкой и водой?)в поисках истинны(кварц, или нет!)
    Нарезал на импровизированном резаке новую трубку! Надеюсь нееб...повторитьсят! )))
    F2B899B0-99CE-46DE-BD0B-FC39CA545411.jpeg FAEC7167-7036-4F64-AD72-7F52B11C2E97.jpeg
     
  7. hacjka

    hacjka Нерд

    кварц трубки очень легко режутся китайскими алмазными дисками для дремеля.
     
  8. Sema

    Sema Нерд

    Надфиль тоже алмазный) и безопаснее!)
     
    SOLOway нравится это.
  9. LessNICCKoff

    LessNICCKoff Нерд

    Извините за оффтоп.
    Схема питается ИБП от видеокамеры 12В.. Питание заводилось через Vin. Питание на maxx6675 питалось от внутреннего источника 5В. ардуино.
    Случайно коротнул 12В. Короче от броска вылетел внутренний стабилизатор который по входу максиму 15В. и утащил за собой всё.
    Вопрос: кто нибудь занет как защитить? Как вариант поставить крен5 у которой 40В входное.
     
  10. hacjka

    hacjka Нерд

    я питание делал таким образом- трансформатор на 11 вольт.
    питание идет идет на 7809 кренку,а с нее уже на 7805 кренку( не забываем конденсаторы 0.1 до и после стабилизатора)
    и подаю прямо на 5в на Ардуино,и на МАХы,енкодер,кнопки и так далее питаются с 7805 .
    стабилмтроны не ставил.
    Вам проще подобрать блок питания меньше чем 12в....самое то будет около 7-8вольт.
     
    LessNICCKoff, SOLOway и Sema нравится это.
  11. prusony

    prusony Нерд

    Схему по питанию можно сапрессором защитить , он же Suppressor. Тут вот продробней:
    https://go-radio.ru/supressor.html

    Он, в случае превышение его порога, берёт удар на себя в импульсе может сожрать большой ток до нескольких десятков Ампер, за это время защитит схему и успеет пережечь предохранитель.
     
    Последнее редактирование: 7 июн 2020
    LessNICCKoff нравится это.
  12. LessNICCKoff

    LessNICCKoff Нерд

    Наверное супрессор поставлю. Питание буду кренками разводить по узлам.
     
  13. Dmitrysh

    Dmitrysh Гуру

    Как вариант поставить китайский DC-DC и настроить его на 8 вольт, а далее на Vin ардуины.
     
    SOLOway нравится это.
  14. hacjka

    hacjka Нерд

    а мешать не будут помехи от дс-дс для ардуинки?))))(пульсации)
     
  15. Wzor

    Wzor Нерд

    Я вообще так и делаю! DC-DC китайский и блок питания от струйного принтера купленного в месте с принтером за 100 руб. Отлично все работает!
     
  16. SOLOway

    SOLOway Гуру

    Семь раз отмерить, один раз отрезать :) Ибо и незаряженное ружьё раз, да и выстрелит...
    Коллега супрессором пытался защитить проц на синтезаторе трансивера - получил "индейское национальное жилище - фигвам"© - допуски у супрессоров (кстати, раньше для защиты входов телеков ставили стабилитроны)...
    Про популярные DC-DC и как их готовить - очень рекомендую почитать:
    http://www.rom.by/comment/400407
    P.S.: UPD 08/06/2020 Составил архивчик из файлов для скетча из поста #4122
    Здесь крепиться не захотел архив (3.6Mb), поэтому ссылаюсь на тему, в которой @SNMar4enko его активно ранее пилил:
    P.S.2: Пусть тут будет схема arduino Mega2560 + CH340G по версии RobotDYn
    Arduino-Mega-2560-CH340G-Принципиальная-схема.png
     
    Последнее редактирование: 8 июн 2020
    hacjka и Dmitrysh нравится это.
  17. Dmitrysh

    Dmitrysh Гуру

    Связка импульсный DC-DC + линейный стабилизатор это очень хорошая пара(линейный стоит на плате ардуино). У меня была проблема на квадрокоптере - сильные помехи от импульсного стабилизатора на видеопередатчик. Установив линейный стабилизатор после импульсного проблема ушла навсегда. Не лишним будет поставить колечко из феррита или порошкового железа по линии питания от DC-DC до линейного.
     
    hacjka нравится это.
  18. Sema

    Sema Нерд

    442C81EF-630E-4F19-B68B-D29B9FBE502E.jpeg
    Почистил все, чтобы трубки болтались! И залил по новой!)
     
  19. prusony

    prusony Нерд

    Иногда ремонтирую "мозги" от авто - там как правило сапрес стоИт - и как правило - при переполюсовке или , когда генератор даёт сколько сможет, сапрессор успешно пережигает дорожку, и защищает схему, просто делаешь перемычку и поехало... Может коллега выбрал не ту напругу....
     
  20. Sema

    Sema Нерд

    Не стоит питать ардуину и периферию от от ее стабилизатора на 5 в 100ма максимум!
    Я запитывал от трансформатора 18 в через 7805 или подобный стаб( более мощьный) на радиатор!
    В добавок обрезал + от юсб!
    Не стоит питать схему ибп! Пожелейте ваши ноуты и компы)