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

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

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

    Dmitrysh Гуру

    Такое происходит если термопара низа попадает в область облучения ВИ. Это не хороший вариант.
    А ПИД продолжает работать и следит чтобы температура не упала ниже уставки.
    На самом деле это совсем не сложно, но есть несколько спорных моментов. А именно. Если температура платы "просядет", а мы на фиксированной мощности, то получается что ВИ "молотить" надо по полной, т.к от НИ толку мало. С другой стороны, если температура платы наоборот "подпрыгнет" (допустим мощности задали больше, чем необходимо), тогда получим перегрев, что не есть хорошо для многих компонентов. Надо найти некий компромисс...
     
    SOLOway нравится это.
  2. SOLOway

    SOLOway Гуру

    @Leonid0071 создал тему по своему устройству на соседнем форуме, оставлю ссылку на его тему здесь, в принципе там вся информация, которой он поделился с нами здесь, но пусть будет маячок:
    http://monitor.espec.ws/section44/topic306168.html

    @Dmitrysh :) попробуем анализировать...
    Есть выдержка из известной статьи Ю.Сенькина "О важных моментах при изготовлении и о методике настройки самодельной инфракрасной паяльной станции": Резюме такое - нам ведь всё равно приходится станцию настраивать, поэтому на один пункт настроек больше... ИМХО ПИД верха гораздо сложнее настроить...
    Понятно. а его работа или отключение его как-то скажется негативно на скорости и точности работы алгоритма?
     

    Вложения:

    Последнее редактирование: 6 окт 2019
  3. Dmitrysh

    Dmitrysh Гуру

    Думаю что нет, не скажется.
     
    SOLOway нравится это.
  4. Leonid0071

    Leonid0071 Нерд

    Да я и отсюда никуда не пропал, в подтверждение 5 часть сравнений )))

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

    SOLOway Гуру

    С чего всё началось :)
    Dimitrios Karapatis = Lilium JSN

    http://liliumjsn.blogspot.com/2014/10/arduino-rework-station.html

    https://www.dropbox.com/s/km43re4lyer7n3v/Arduino Rework Station.rar?dl=0#

    https://www.instructables.com/id/Arduino-Rework-Station/#discuss

    @vector99 не становИтесь и вы блудным папой вашему проекту :) Заглядывайте, хоть изредка!
    @revolover Как ваше драгоценное? Как ваша рука? Поправляйтесь скорее и заглядывайте, как свободная минутка выдастся!
     
    Последнее редактирование: 6 окт 2019
  6. vector99

    vector99 Гик

    МногоУважаемый @SOLOway и остальные участники данного и соседнего форума, отслеживаю каждое сообщение на каждом форуме! Но так как я всего-лишь любитель радиоэлектроники, я профессионал в строительстве ( бетонщик, точнее лестничник) и в феврале этого года я сменил место работы, теперь дома бываю 4-6 дней в месяц, а в сельской местности они летят ну очень быстро! Прошу простить меня за неучаствие в развитии проэкта!
    Но теперь задам вопрос, если использовать алюминиевую плиту для нижнего нагревателя, для удержания 120-150 градусов на плате, какова должна быть температура плиты при 2-х сантиметрах от неё. Если есть возможность провести тэсты, а то дурные мысли покоя не дают!
     
    Последнее редактирование модератором: 2 янв 2022
  7. SOLOway

    SOLOway Гуру

    @vector99 за какие грехи вы меня так :) - я же сам признался в посте #1368:
    У меня есть плита 200*200 с прикрученным к ней U-образным ТЭНом на 1370 Вт от парогенератора, кажется.
    И есть платформа советского утюга на 1000 Вт с вмонтированной в неё термопарой. Могу провести опыты в выходные и, если получится, видео сделать.
    Утюги разные бывают, результаты тоже разные будут, можно пример посмотреть про один из утюгов:


    А вообще, на achi-подобных станциях от керамики до платы в холдере сантиметра 3 точно есть, и там для 100*С на плате устанавливают 270-240 на НИ. Хотя вспомнил - эти achi-подобные китайцы могут разные ТЭНы под стеклом иметь - тому подтверждение видео от Саши ITOinfoo: https://www.youtube.com/watch?annot...oudQnLITUMQ&src_vid=8dvmxxSf7nA&v=ODWI9zOoER8
     
    Последнее редактирование: 6 окт 2019
  8. SOLOway

    SOLOway Гуру

    Это много. У техноальянса два штатных комплекта стоек: 10 мм и 15 мм высотой. Я чаще всего вижу в работе 10 мм.
    В то же время, у Виталия из Павлограда низ станции - тоже 2 алюминиевые плиты (общей мощностью 1600 Вт). И его комплектные стойки высотой 15 мм.
     
    Последнее редактирование: 17 ноя 2018
  9. vector99

    vector99 Гик

    Мысль приходила такая, закрепить на алюминевой пластине 8 таких JYA01555-02-2.JPG
    элементов 12x7см. на 250 градусов.
    Таким образом получив столик 24х28 см фиксированой мощности.
    Вопрос заключается в том, хватит-ли этой температуры, даже если опустить плату до сантиметра!
     
  10. SOLOway

    SOLOway Гуру

    Вот снял я видео, посмотрел его... и нихрена на нём не видно значений на дисплеях и экране ПК :( .
    Попробую сделать фотки и собрать в файл с пояснениями.
    Пока выявил нехватку размера буфера для вывода графиков, исправил. Подробнее в посте #1619.
    Есть вопрос, вероятно к @Dmitrysh, т.к. рассматриваю скетч, в который им переписана библиотека PID. В постах #1741 и #1742 освещён вопрос длины переменных Setpoint1 и Setpoint2. @Dmitrysh укоротил их с doudle до byte. Я заметил, что задать в меню температуру НИ выше 250*С не выходит (там еще шаг 10*С), поэтому Setpoint2 сделал double и внес правки в подменю НИ, установив нижний предел для НИ = 80*С, а верхний предел = 350*С. Собственно, вопрос - не нужно ли что-то еще менять в скетче при такой замене.
    Тестовый бардак на фото.
    18-11-2018.jpg
     

    Вложения:

    Последнее редактирование: 6 окт 2019
  11. Dmitrysh

    Dmitrysh Гуру

    Это логично, зачем под маленькое число большая переменная.
    Все правильно, тип byte больше чем 255 не вмещает.
    А смысл? Смотрите, в EEPROM Setpoint2 и Setpoint1 записываются размером в 1 байт, а значит какое бы число вы туда не писали все равно больше чем 255 не запишется.
    Если надо большие температуры, то надо извращаться. Либо писать другими функциями запись в EEPROM, либо как я где-то уже советовал писать задание не с ноля а со смещением на 100 градусов(тогда максимум 350 получим), либо писать через 2 градуса(2, 4, 6, 8 ...и т.д. тогда максимум 500 или 600 если ещё со смещением) но температуру можно будет задать с шагом 2.
    Вот как-то так.
     
    SOLOway нравится это.
  12. SOLOway

    SOLOway Гуру

    @Dmitrysh , спасибо за разъяснение. Сейчас в подменю уставки НИ так:
    Код (C++):
        //устанавливаем температуру "Нижнего Нагревателя"
        case REFLOW_STATE_MENU_BOTTOM_HEAT:

          if (updateScreen) {
            lcd.setCursor(2, 2);
            lcd.print("Bottom Heat:      ");
            //updateScreen = true;
          }
          lcd.setCursor(14, 2);
          lcd.print(SP2);

          if (upSwitchState == HIGH && ( millis() - ms_button) > 200)
          {
            ms_button =  millis();
            Setpoint2 = Setpoint2 + 10;
            if (Setpoint2 >= 350)
            {
              Setpoint2 = 350;
            }
          }
          if (downSwitchState == HIGH && ( millis() - ms_button) > 200)
          {
            ms_button =  millis();
            Setpoint2 = Setpoint2 - 10;
            if (Setpoint2 <= 80)
            {
              Setpoint2 = 80;
            }
          }
          if (okSwitchState == HIGH && !button_state && ( millis() - ms_button) > 200)
          {
            ms_button =  millis();
            button_state = true;
          }
          if (okSwitchState == LOW && button_state && ( millis() - ms_button) > 200)
          {
            ms_button =  millis();
            button_state = false;
            updateScreen = true;
            reflowState = REFLOW_STATE_MENU_BOTTOM_PWR;
          }
          if (cancelSwitchState == HIGH && ( millis() - ms_button) > 50)
          {
            ms_button =  millis();
            updateScreen = true;
            reflowState = REFLOW_STATE_IDLE;
          }
          break;
    Вот тут и есть это самое смещение?:
    Код (C++):
            if (Setpoint2 <= 80)
            {
              Setpoint2 = 80;
    В данном случае 80 это и есть типа ноль? - сначала там было 100, но, поскольку предполагался НИ алюминиевая плита, на которой собирались разбирать дисплейные модули, нижний предел уставки поправил.
    Т.е. если там будет 100, то и в EEPROM влезет 350? (а сейчас при задании 350 реально запишется 330?)
    или надо еще какие-то условия прописать кроме этого?
     
    Последнее редактирование: 21 окт 2019
  13. Dmitrysh

    Dmitrysh Гуру

    Нет, это не смещение, это просто ограничение температуры снизу.
    Чтобы сделать смещение нужно(относительно скетча, что вы выложили ранее) вот эту строчку
    Код (C++):
     EEPROM.write((currentProfile - 1) * 29 + 1, Setpoint2);
    переписать вот так:
    Код (C++):
     EEPROM.write((currentProfile - 1) * 29 + 1, (Setpoint2-80) );
    В данном случае смещение 80, а максимальная температура 255+80=335.
    Setpoint2 в данном случае должна быть типа int.
    И ещё в функции void loadProfile() меняем
    Код (C++):
    Setpoint2 = EEPROM.read((currentProfile - 1) * 29 + 1);
    на
    Код (C++):
    Setpoint2 = 80 + EEPROM.read((currentProfile - 1) * 29 + 1);
    И не забывайте ограничить сверху относительно смещения, для вашего случая(80)
    Код (C++):
    if (upSwitchState == HIGH && ( millis() - ms_button) > 200)
          {
            ms_button =  millis();
            Setpoint2 = Setpoint2 + 10;
            if (Setpoint2 >= 330)
            {
              Setpoint2 = 330;
            }
          }
     
    Последнее редактирование: 19 ноя 2018
    SOLOway нравится это.
  14. Krupikus

    Krupikus Нерд

    Здравствуйте.

    Хочу сразу выразить искрению благодарность всем кто сделал и поддерживают данный проект.

    Собрал и я паяльную станцию под управлением Arduino.

    В качестве нагревателей использовал стандартную китайскую керамику 240 на 60 по 600 ват 4 штуки низ и 80 на 80 450 ват под верх. Управление Arduino mega 2560 датчики max6675, два твердо тельных реле. Детектор нуля схему приложу ниже. Термопары одна стандартная от мультиметра (картинка снизу), вторую заказал Omega K Тип термопара которая в железняком червачке с магнитом.

    Скетч revolover_Dmitrysh_V3-4_3 revolover_Dmitrysh_V3-4_3.ino страница 91. Остальные заработали но как не игрался ПИД не чего не происходило нагреватели жарили на 100. Немного переделал выше упомянутый скетч добавил поддержку работы с irsp_страница51.exe и переделал ошибку термопар. Теперь можно отключить и включить ее назад не перезапуская ардуино. Мне это нужно было сделать так как одна из термопар отпадала вовремя пайки писала errorи висла приходилось останавливать пайку это ка раз Omega и глючила (покажу на графике).

    Ну в общем все это дело я собрал запустил и взялся за настройку используя документацию (ПИД регулятор для нагрева(охлаждения) UPD » Мир электроники.pdf) и (ПИД-Настройка регулятора.pdf) из архива Yojiq.

    В общем второй день у меня толком и не выходит то недогрев и долгий выход на уровень то перелёт градусов на 10 бывает и 20. И как не старался после выхода на уровень график постепенно падает за минут где то на градусов 5.

    Примерные настройки + - или НИЗ (P:12 I:2 D:250) ВЕРХ (P:25 I:0 D:130)

    Пробивал и НИЗ (P:12 I:2 D:0) ВЕРХ (P:25 I:3 D:0) (этот вариант кажись давал лучший график)

    Снизу над нагревателями сетка расстояние до платы что сверху что снизу примерно 5 см. Но все как то не стабильно при каждом запуске по разному + - 10 градусов. А так же поднимаешь температуру низа или верха и все перегрев градусов на 10 – 20 или недогрев градуса на 5 и пытается долго его вытянуть.

    Есть пару вопросов к уважаемым гуру:

    1) Один из моментов который я пока так и не понял почему при компиляции скетча так много красных предупреждений. Это я что то не до делал или у всех так?


    C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM\src/EEPROM.h:43:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]


    operator const uint8_t() const { return **this; }


    C:\Users\*****\OneDrive\Документы\Arduino\libraries\UTFT\UTFT.cpp:1184:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]


    for (int i=0; i<sizeof(st); i++)


    C:\Users\*****\OneDrive\Документы\Arduino\libraries\UTFT\UTFT.cpp:96:24: warning: multi-character character constant [-Wmultichar]


    '>', '?', 'Рђ', 'Р‘', 'Р’', 'Р“', 'Р”', 'Р•', 'Р–', 'Р—',

    Ну и так далее.


    2) Еще хотел бы поинтересоваться с термопарами Omega не у кого не было глюков что они вовремя пайки отпадали с надписью error другие в этом же разъёме работают на ура?


    3) Может все мои проблемы из за того что я банально использую не тот скетч (revolover_Dmitrysh_V3-4_3 revolover_Dmitrysh_V3-4_3.ino страница 91)?



    4) Ну и самый главный вопрос у кого такие же китайские нагреватели поделитесь пожалуйста настройками ПИД или опытом настройки китайской керамики.

    Заранее спасибо!
     

    Вложения:

    Последнее редактирование: 21 ноя 2018
    SOLOway нравится это.
  15. Yojiq

    Yojiq Гик

    Krupikus - могу ответить только по настройке пида, попробуй самые малые значения 5-0-0 (5-1-1).
    к низу особо не придирайся его вылет не сделает ничего плохого, а вот с верхом +-3гр. вполне можно мириться.
    термопара из-за корпуса будет давать инерцию и магнит от температуры теряет свои свойства ...
     
    Последнее редактирование: 21 ноя 2018
  16. Krupikus

    Krupikus Нерд

    Yojiq - При таких настройках 5-0-0 (5-1-1) на заданный уровень оно выходит очень долго. График прикрепляю. Магнит там и не держал нормально я приделал на скобу.
     

    Вложения:

    Последнее редактирование: 21 ноя 2018
  17. SOLOway

    SOLOway Гуру

    @Krupikus
    При I=0; D=0 Вам удалось добиться для НИ какого графика?
    P.jpg
     
    Последнее редактирование: 6 окт 2019
  18. Krupikus

    Krupikus Нерд

    SOLOway - Добился то я 4 но у меня он как то не стабильно работает то превышает на 10 градусов то наоборот на пару градусов не доходит до заданной температуры на тех же настройках. И потом ровно не держит то есть график постепенно падает.
     

    Вложения:

  19. SOLOway

    SOLOway Гуру

    @Krupikus
    Скетч из поста #1506 c библиотекой ПИД из поста #1363 с выводом графиков в serial port plotter 1.2.0 пробовали? - он, ИМХО, корректнее - я недавно писАл, какие правочки повносить в него. Скетч, опробованный вами, я ещё не смотрел.
    Вопросы:
    1- какие либы пользуете? Старые вычистили?
    2- какая IDE?
    3-полный лог ошибок при компиляции выбранного вами скетча можете привести?
     
    Последнее редактирование: 6 окт 2019
  20. Krupikus

    Krupikus Нерд

    SOLOway - Спасибо сейчас по пробую.

    1) Перед заменой удалял старые либы. В архиве вложил которые использую. Если честно уже не помню с какого поста но из последних.
    2) Версия IDE 1.8.2
    3) Лог прикрепляю.
     

    Вложения:

    • log.txt
      Размер файла:
      109 КБ
      Просмотров:
      397
    Последнее редактирование: 21 ноя 2018
Статус темы:
Закрыта.