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

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

Статус темы:
Закрыта.
  1. Dmitrysh

    Dmitrysh Гуру

    в режиме пайки у нас время на передачу в ком-порт не хватает зачастую, не то что работать с синим зубом.
    Народ хочет автономность станции. Использовать планшет, это конечно хорошо, но связь по bluetooth не отличается надёжностью и быстротой.
     
    SOLOway нравится это.
  2. Sinad

    Sinad Нуб

    [QUOTE="в режиме пайки у нас время на передачу в ком-порт не хватает зачастую, не то что работать с синим зубом.
    [/QUOTE]
    Поподробнее здесь. Чего вам не хватает.
    П.с. задержка в 1 секунду вам погоду не сделает.
    А телефон у всех под рукой в 21 веке. Автономность при этом не падает
     
    Последнее редактирование: 29 апр 2020
  3. Dmitrysh

    Dmitrysh Гуру

    1 сек это очень много. У нас каждые 10мс прерывается программа для выдачи задания мощности на нагреватели и каждые 250мс происходит чтение температуры и пересчёт ПИД, а ещё обслуживание клавиатуры, дисплея, передача на ПЭВМ, иногда обработка энкодера, тач-скрина и RTC.
    Где взять эту секунду о которой вы говорите?
     
    SOLOway и hacjka нравится это.
  4. Sinad

    Sinad Нуб

    Жаль, что не получится...
     
  5. Dmitrysh

    Dmitrysh Гуру

    Жаль, что некому софт под андроид писать. А возможность организовать связь всегда найдётся
     
    SOLOway нравится это.
  6. SOLOway

    SOLOway Гуру

    Попробуем разобраться, зачем я просил @Dmitrysh расширить диапазон уставок НИ до 330°С. Мы можем использовать нижний излучатель станции в режиме самостоятельного термостола для разных целей (накатка шаров, работа феном сверху, сушка, разборка дисплейных модулей, оплавление паяльной пасты при монтаже плат с смд компонентами). Если НИ это плита, но оператор не может по каким-то причинам положить девайс прямо на неё, а фиксирует девайс в холдере (держателе для плат), то для достижения, скажем, 80°С на девайсе, плиту нужно разогреть до заметно большей температуры, т.к. воздух между излучающей поверхностью и прогреваемым девайсом скушает львиную долю тепла. Мои личные эксперименты с 1кВт платформой утюга показали, что при t° платформы 330°С (датчик на плите) плата на высоте 15мм не смогла прогреться выше ~150°С, пока я не покрасил платформу черной краской для мангалов. Когда вы используете уставку НИ выше, чем рекомендуют производители чипов, при этом датчик НИ у контроллеров из этой темы должен быть на верхней плоскости платы, получается, что желаете проводить монтаж/демонтаж только при помощи НИ! Если уставка 330°С, датчик сверху на плате, плата в 15мм над излучателем, то t° излучателя может оказаться ~500°С, что опасно переходом его в сравнительно коротковолновый диапазон. Когда у вас есть много профилей, можно сделать нужный для практически любых целей и использовать НИ и ВИ. Исключение - оплавление паяльной пасты при монтаже плат с смд компонентами, т.к. размер ВИ не позволит оплавить пасту по всей площади большой платы, либо группы плат, которые можно легко прогреть на НИ. . Раньше-то профилей было только 4… В общем, нужна ли уставка выше 255°С – вопрос открытый. Если нужна – будем разбираться, почему 1.3.х некорректно её отрабатывают.

     
    Последнее редактирование: 5 май 2020
  7. freebsdmax

    freebsdmax Нерд

    Проблема именно в коде пида дописанного в конце скетча, подставляю пид библиотеку и меняю строчки обработки пид и все начинает работать,
     
  8. Dmitrysh

    Dmitrysh Гуру

    Вот так попробуйте
     

    Вложения:

    Vitaliy и SOLOway нравится это.
  9. SOLOway

    SOLOway Гуру

    @Dmitrysh ;) Опередили, пока я операционку восстанавливал, подумал, что в ПИД для НИ у нас уставка передается в размерности byte и поэтому ПИД не понимает, чего надо оператору, задающему значения превышающие 255!
    Код (C++):
    byte Pid2(double temp, byte ust, byte kP, byte kI, byte kd)
    {
      byte out = 0;
      static float ed = 0;
      e2 = (ust - temp); //ошибка регулирования
      p2 =  (kP * e2); //П составляющая
      integra2 = (integra2 < i_min) ? i_min : (integra2 > i_max) ? i_max : integra2 + (kI * e2) / 1000; //И составляющая
      d2 = kd * (temp - ed) * 10; //Д составляющая
      ed = temp;
      out = (p2 + integra2 - d2 < 0) ? 0 : (p2 + integra2 - d2 > pwr_BOTTOM) ? pwr_BOTTOM : p2 + integra2 - d2;
      return out;
    }
    Вы заменили byte ust на int ust, это я первым делом посмотрел, но, возможно, ещё не все изменения, произведенные вами в этих скетчах, успел заметить :)
    UPD: Строки
    Код (C++):
    out = (p2 + integra2 + d2 < 0) ? 0 : (p2 + integra2 + d2 > pwr_TOP) ? pwr_BOTTOM : p2 + integra + d2;

    out = (p1 + integra + d1 < 0) ? 0 : (p1 + integra + d1 > pwr_TOP) ? pwr_TOP : p1 + integra + d1;
    тоже изменились
    Код (C++):
    out = (p2 + integra2 - d2 < 0) ? 0 : (p2 + integra2 - d2 > pwr_BOTTOM) ? pwr_BOTTOM : p2 + integra2 - d2;

    out = (p1 + integra - d1 < 0) ? 0 : (p1 + integra - d1 > pwr_TOP) ? pwr_TOP : p1 + integra - d1;
     
    Последнее редактирование: 2 июл 2020
    geleos27 нравится это.
  10. Sinad

    Sinad Нуб

    1. К чему каждые 10 мс давать задание нагревателю, если он этого не видит. Т.е. даже не успевает отработать. Это вам не квадрокоптер.
    2. Пусть читает контроллер температуру каждые 250 мс. Ему никто не мешает. Только время обмена данными.
    3. Дисплей, ПВМ убираем из программы
    4. У нас один из двух - нам не нужно сразу Клаву, энкодер. Только что то одно. В итоге цикл программы сокращается, и очень хорошо.

    Тормоз - время на передачу данных. График строит андроид.
    И постороение графика никак не будет влиять на задание пид-регулятора.
    Прошу прощения, может продолжим это направление. Возможно, есть кто разбирается в AndroidStudio или ещё где...

    И 1 сек я написал сгоряча. Не надо брать это в серьез. Там намного меньше
     
    Последнее редактирование: 30 апр 2020
  11. Dmitrysh

    Dmitrysh Гуру

    Ещё как успевает и всё видит. Так нужно для алгоритма Брезенхема. А у квадрокоптера, кстати, петля от 2кГц стартует, если я не ошибаюсь.
    Читает он 2 термопары и считает 2 ПИДа плюс периферия(клава энкодер часы экран ПЭВМ и др)
    Допускаем, что убрали всё лишнее и в итоге мы получаем около 200мс времени в окнах по 250мс.
    По ком порту 2-5 байт не так уж много времени, если честно.
    Ну это само собой разумеющееся условие.
    Я не против такого решения, не всем конечно это нужно, но я думаю лишним не будет.
    Если найдётся человек, который займётся приложением на андроид, я найду время для передачи данных.
     
  12. geleos27

    geleos27 Гик

    Нашел полезную программу для визуализации алгоритмов. Позволяет быстро построить блок-схему из кода. Называется Visustin.
    Magic.PNG
    Используете чтото аналогичное?
     
  13. Dmitrysh

    Dmitrysh Гуру

    Я не использую, помню что и где написано и как работает.
     
  14. zveros

    zveros Нерд

    Насколько существенна разница с детектором нуля и без? Постоил станцию без детектора, теперь задумался нужен он мне или нет :)
     
  15. SOLOway

    SOLOway Гуру

    5 деталек очень существенные траты? У коллеги детектор на огрызке картонки собран и эпоксидкой залит :)
     
  16. Dmitrysh

    Dmitrysh Гуру

    Однозначно трудно сказать на сколько существенно(несколько процентов), но работает точнее однозначно.
     
    zveros нравится это.
  17. StDV

    StDV Нерд

    Привет всем. Хочу спросить уважаемого Watashi, на сколько сложно переписать скетч под фазовое управление, для тех кто применяет галоген? Беда в том что, при старте, в такт, мигают лампы по всей квартире, да и у соседей тоже;). У меня стол 2 квт., просаживает сеть на 10-15 в. при этом 3-х квт. духовка не является проблемой для моей домашней сети. Дома, ладно - иногда можно, да и в гараже, но использовать такое оборудование в офисе, станет проблемой!
    Понятно, что фазовое управление вносит помехи в сеть, но с этим бороться можно используя EMI, да и дешевле чем кидать отдельную линию на станцию.
     
    Последнее редактирование: 3 май 2020
  18. Watashi

    Watashi Гуру

    Можно перенести код со скетча @Dmitrysh, но я не смогу проверить работоспособность, у меня нет детектора нуля и я использую SSR-40, а он в свою очередь не работает с фазовым управлением.
     
    StDV и SOLOway нравится это.
  19. StDV

    StDV Нерд

    Да, привязаться к началу фазы нужно. У меня есть детектор, и могу проверить, но я не могу перенести код! Не силён!:(
     
  20. Watashi

    Watashi Гуру

    Не уверен что вам поможет фазовое управление, кстати это можно проверить на скетче от @Dmitrysh, он раньше его выкладывал. попробуйте если поможет в вашей ситуации, тогда можно подумать о внедрении.
     
Статус темы:
Закрыта.