Ик паяльная станция на arduino mega 2560. доработка скетча "ars_v2_lilium_jsn" | ч. 2

Тема в разделе "Глядите, что я сделал", создана пользователем NikitOS, 20 сен 2020.

  1. umla

    umla Нерд

    Привет! Спасибо за ваш ответ и помощь! К сожалению, я не знал, что форум заброшен. В любом случае, спасибо комментаторам, авторам сайта и, конечно же, вам за то, что вы читаете и знакомитесь с такими замечательными проектами и полезной информацией! К сожалению, у меня нет Telegram, потому что я не смог зарегистрироваться из-за отсутствия смартфона. В любом случае, я буду пробовать настройки PID, пока не добьюсь успеха. Извините за неудобства! Желаю вам всего наилучшего! С уважением.
     
    SOLOway нравится это.
  2. SOLOway

    SOLOway Гуру

    Многим предпоследнее сообщение показалось одним из последних гвоздей в гроб темы...
    Я Вас разочарую :).
    На днях, автор собственного проекта, @Watashi , поделился в нашей группе в мессенджере телеграм новостью о том, что по просьбе одного человека он внёс некоторые изменения в крайнюю версию своего проекта.
    Его проект внесён под номером 2 вот в этом заглавном посте.
    Для тех, кому этот проект интересен, кто его повторяет, привожу авторскую выдержку из описания новшеств:
    "Доработка версии Svs_V10_02 Все параметры во вкладке ОБЩИЕ (кроме 2 пункта - ЗАГРУЗКА ПРОФИЛЯ) теперь являются частью текущего профиля. Всего профилей 10. Начальная настройка профилей в файле ProfDate.c, после настройки, компиляции и загрузки в устройство, надо загрузить в память EEPROM через пункт меню ОБЩИЕ - ЗАГРУЗКА ПРОФИЛЯ - ВСЕХ (или по одному). Название профиля меняется в файле ConstProgm.h (ConstProgmEN.h тут английский вариант).".

    Для всех, кто заинтересовался этим проектом, НАСТОЯТЕЛЬНО рекомендую отказаться от использования излучателей, обладающих высокой степенью инерции, таких, как керамические нагреватели, алюминиевые плиты, любые нагреватели, поверх которых установлена стеклокерамика.
    Эти особенности нигде не оговариваются, но опыт значительного количества людей, повторивших этот проект СТОИТ того, чтобы на него ориентироваться.
    Я ещё здесь, пока я здесь, темы живут. Больше никого из желающих давать обратную связь по проектам тут давно нет. Вы можете восполнить этот пробел. В наших проектах есть много чего, что можно и важно доработать, хотя большинство из них адекватно работают, если знаешь их нюансы.
     
    umla нравится это.
  3. umla

    umla Нерд

    Спасибо! Я попробую и новую. Текущая работает, но иногда останавливается из-за ошибки, даже во время нижнего нагрева. "АВАРИЯ! СТОП ПРОФИЛЬЯ" К сожалению, я пока не разобрался, по каким критериям может указывать на ошибку, если она отсутствует. Я не могу понять условия из кода. Я полный дилетант в этой области.
     
  4. SOLOway

    SOLOway Гуру

    Вероятно, у вас включен в меню пункт "ЗАЩИТА НИЗА" (возможно, в меню есть ещё режим "защита верха", я не утверждаю).
    Самое сложное в вашей станции - настройки коэффициентов P.I.D. - Проект создан для излучателей с низким значением инерции использованных в качестве нижнего подогревателя плат. По этой причине время профиля ограничено. Автор сделал так, чтобы весь профиль мог уместиться на дисплее.
    Для керамических излучателей нужно использовать малую скорость роста температуры, 0,2-0,4°С в секунду, чтобы избежать вылета температуры за пределы значения, заданного в профиле. После вылета будет провал, неизбежный при такой большой инерции, и, как следствие, снова будет перерегулирование. А прошивка не поддерживает долгое время разогрева нижнего подогревателя, и время всего профиля там ограничено...
    Участники в группе в телеграм, повторившие проект @Watashi , и сумевшие настроить подогреватель керамический, все равно сделали ещё один подогреватель из галогеновых ламп и настроили станции уже без труда.
    Жаль, что толковые люди не берутся внести некоторые изменения в проект, для того, чтобы он работал лучше с керамическими излучателями.
    Сейчас есть только один проеект, специально разработанный для работы с нагревателями из керамики и алюминиевыми плитами - это проект с тремя датчиками, но там нет графиков на дисплее, тачскрина и энкодера.
     
    umla нравится это.
  5. umla

    umla Нерд

    Большое спасибо за ваш комментарий! Я давно экспериментирую с различными схемами. Я уже собрал несколько проектов, но все они всё ещё находятся на стадии тестирования. К сожалению, я не очень хорошо разбираюсь в ПИД-регуляторах и программировании, что является для меня большим недостатком. С проектом Watashi, с китайской нижней керамикой, я получил довольно точные результаты при P = 10, I = 1, D = 50 0,4 c/s, минимальная мощность: 10%, что соответствует графику. Верхний нагреватель я ещё не пробовал подробно, но результаты обнадеживают. (Я также сделал копию контроллера, который вы опубликовали, его можно увидеть на фотографиях. У меня также есть нижний нагреватель, сделанный из решетки с Rex C100, который я хочу попробовать.)
    Как вы думаете, какова роль опции «BOTTOM PROTECTION», которая была включена в меню?
    Спасибо за ответы на мои вопросы!
     

    Вложения:

    • P1010062.JPG
      P1010062.JPG
      Размер файла:
      1,2 МБ
      Просмотров:
      16
    • P1010063.JPG
      P1010063.JPG
      Размер файла:
      1,1 МБ
      Просмотров:
      17
    • 168b_cxema_v.2.png
      168b_cxema_v.2.png
      Размер файла:
      1,2 МБ
      Просмотров:
      16
    SOLOway нравится это.
  6. umla

    umla Нерд

    Этот форум уникален во всем мире для тех, кто интересуется данной темой. Спасибо всем, кто наполнил его полезным контентом!
     
  7. SOLOway

    SOLOway Гуру

    Среди файлов в проекте @Watashi есть файл Gvard.h. Это код, отвечающий за работу интересующей вас функции:

    Код (C++):
    byte Tb0, Tb1, Tb2, Tb3, Tb4, Tb5;
    byte Ob0, Ob1, Ob2, Ob3, Ob4, Ob5;
               
    bool Gvard_If() {            
        if (Input2 < 50) return (false);  // если температура низа меньше 50 гр защита не работает
        Tb5=Tb4; Tb4=Tb3; Tb3=Tb2; Tb2=Tb1; Tb1=Tb0;
        Tb0 = Input2;
        Ob5=Ob4; Ob4=Ob3; Ob3=Ob2; Ob2=Ob1; Ob1=Ob0;
        Ob0 = Output2;
        if (Tb5>=Tb4 && Tb4>=Tb3 && Tb3>=Tb2 && Tb2>=Tb1 && Tb1>=Tb0 &&
             Ob5<=Ob4 && Ob4<=Ob3 && Ob3<=Ob2 && Ob2<=Ob1 && Ob1<=Ob0 && Ob0==bottomMaxPwr) {
           return (true);
           }
         return (false);
    }
    Этот код обнаруживает ситуацию, когда система обладает настолько большой тепловой массой, что даже полное отключение нагревателя не останавливает рост температуры немедленно. Алгоритм предотвращает перегрев ("overshoot"), блокируя исполнение профиля.
     

    Вложения:

    umla нравится это.
  8. umla

    umla Нерд

    спасибо