Ик паяльная станция на 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 МБ
      Просмотров:
      87
    • P1010063.JPG
      P1010063.JPG
      Размер файла:
      1,1 МБ
      Просмотров:
      83
    • 168b_cxema_v.2.png
      168b_cxema_v.2.png
      Размер файла:
      1,2 МБ
      Просмотров:
      86
    Последнее редактирование модератором: 8 июн 2026
    SOLOway нравится это.
  6. 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 нравится это.
  7. iDocMobile

    iDocMobile Нуб

    Ребят Столкнулся с проблемой в V10_2 Не работает вторая термопара НИЗ что я только уже не делал не завоодится было такое у кого ?

    Код (C++):
     
    //#define SetAltPin // Раскомментировать, если используются АЛЬТЕРНАТИВНЫЕ пины для подключения
    после все ок
    //назначаем пины усилителя термопары MAX6675 "ВЕРХНЕГО" нагревателя clk=sck cs=cs do=so
    #define thermoCLK 14 //=sck
    #define thermoCS_T 15 //=cs
    #define thermoDO 16 //=so
    //назначаем пины усилителя термопары MAX6675 "НИЖНЕГО" нагревателя clk=sck cs=cs do=so
    #define thermoCLK2 17 //=sck
    #define thermoCS_B 18 //=cs
    #define thermoDO2 19 //=so
    но вот тут было назначение 17 пина вместо 18

    Код (C++):

    //назначаем пины усилителя термопары MAX6675 "НИЖНЕГО" нагревателя clk=sck cs=cs do=so
    #define thermoCS_B 17 //=cs
    //
    #define thermoCLK 14 //=sck
    #define thermoDO 16 //=so
    //--------------------------------------
    #define thermoCLK2 thermoCLK
    #define thermoDO2 thermoDO
    #endif
     
    Последнее редактирование модератором: 8 июн 2026
  8. iDocMobile

    iDocMobile Нуб

    Если пины назначить от верха
    Код (C++):

    //назначаем пины усилителя термопары MAX6675 "ВЕРХНЕГО" нагревателя clk=sck cs=cs do=so
    #define thermoCLK A8 //=sck
    #define thermoCS_T A9 //=cs
    #define thermoDO A10 //=so
    Все работает но если назначить на нижней все отваливается и 000

    ==================================================================
    Код (C++):

    //назначаем пины усилителя термопары MAX6675 "ВЕРХНЕГО" нагревателя   clk=sck cs=cs do=so
      #define thermoCLK A8    //=sck
      #define thermoCS_T A9   //=cs
      #define thermoDO A10     //=so
      //назначаем пины усилителя термопары MAX6675 "НИЖНЕГО" нагревателя clk=sck cs=cs do=so
      #define thermoCLK2 A8  //=sck
      #define thermoCS_B A11   //=cs
      #define thermoDO2 A10    //=so
    Решилось таким методом и изменение еще нескольких параметров
     
    Последнее редактирование модератором: 8 июн 2026
  9. SOLOway

    SOLOway Гуру

    Логики не прослеживаю, однока, возможно, звёзды так сошлись и в скетч заползла ошибочка задвоения назначений пина.
    Рад, что сумели разобраться. Скетч для проверки всех пинов NANO тут в темах я выкладывал где-то, под mega2560 не делал. Однако, есть обходной манёвр, например, залить скетч проверки двух max6675, указав при этом один из вариантов подключения, представленных в проекте @Watashi . Как минимум, такой тест позволил-бы выяснить, все ли заданные пины у вас на плате работают корректно.
     
    Последнее редактирование: 8 июн 2026
  10. SOLOway

    SOLOway Гуру

  11. Tarafara

    Tarafara Нерд

    Всем привет пытаюсь повторить проект на ESP32, но даже демку не получается запустить. Плату дисплей выложу фото, кто нибудь сможет помочь разобраться? дисплей ili9488 SPI без тачскрина. ESP32S3.png дисплей.png все что на дисплее.png
     

    Вложения:

  12. Tarafara

    Tarafara Нерд

    Пины дисплея как токо не ставил, последний раз выложу, но изображение тоже((((((.
     

    Вложения:

    • User_Setup.h
      Размер файла:
      15,7 КБ
      Просмотров:
      13
  13. SOLOway

    SOLOway Гуру

    Примеры из библиотеки пробовали запустить? Могу ошибаться, с библиотекой какие-то действия делать надо, что-то в ней поменять.
    Я-бы постарался помочь, но такого модуля и дисплея у меня нет, как у вас на фото.
     
  14. Tarafara

    Tarafara Нерд

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

    даже запускал пример с ютуба. все изображение опять внизу в прямоугольнике.
    вот что на дисплее с видео на фото не знаю видно или нет, там есть слово Some и прямоугольник, но все в принципе как на видео только не там где нужно. что демо пример все в нижнем прямоугольнике.
     

    Вложения:

    Последнее редактирование модератором: 27 июн 2026
  15. SOLOway

    SOLOway Гуру

    Мне всё же кажется, что в библиотеке дело. Есть читалка для дисплеев, которая показывает какой в дисплее контроллер. Попробуйте найти, где-то в постах @Watashi есть код. Может там и не ili9488 на самом деле - китайцы затейники.
    Вот код, который мне Алиса ИИ выдала, не проверял.
    Код (C++):

    #include <SPI.h>

    // Пины подключения дисплея
    #define TFT_CS 10   // Chip Select
    #define TFT_RST 9   // Reset
    #define TFT_DC 8   // Data/Command

    void setup() {
      Serial.begin(9600);
      while (!Serial) {} // Подождите пока монитор порта откроется

      Serial.println("Initializing...");

      // Инициализируем SPI для дисплея
      SPI.begin(TFT_CS, TFT_DC);

      // Читаем два байта из специального адреса (часто 0x00) — это и есть ID контроллера
      uint16_t id = SPI.readWordBE(0); // BE означает Big Endian

      Serial.print("ID found: 0x");
      Serial.println(id, HEX);

      // Здесь можно добавить логику, чтобы сопоставить ID с названием контроллера
      // Например: if (id == 0x9325) Serial.println("Это контроллер ILI9325");

      // Очищаем экран и выводим результат
      Serial.println("Filling the screen...");
      SPI.transfer(0); // Заставляем контроллер прочитать данные
      delay(1000);
      SPI.writeByte(0);
      SPI.transfer(0);
      Serial.println("Done filling");
    }

    void loop() {
      // Основной код здесь будет работать после определения контроллера
    }
     
     
    Последнее редактирование: 27 июн 2026
  16. SOLOway

    SOLOway Гуру

    Этот код Алиса ИИ предложила, я вам написал, что его не проверял - банально - не на чем. И про то, что среди постов @Watashi есть читалка ID дисплейных контроллеров написал. Попробуйте с Алисой, или с гигачатом разобрать ошибки компиляции, я бы так поступил, тут сами видите отвечающих не сильно много...Ознакомьтесь с прикрепленными файлами, у меня для выбранной платы новый код хотя-бы скомпилировался.
     

    Вложения:

    Последнее редактирование: 29 июн 2026
  17. Tarafara

    Tarafara Нерд

    Всем здравствуйте. В общем мои догадки были верны, неисправен дисплей, другой подключил все ок. Гад китаец из за него столько времени и нервов потрачено. бровка.png
    Возникла далее проблема. Залил скетч паялки, на экране появилась калибровка дисплея, но хоть тыкай хоть нет не перемещается курсор, что то нужно добавлять в проект паяльной станции? калибровка.png соединил тач вот так.
    Дисплей Тачскрин
    SDI(MOSI)- T_DIN
    SDO(MISO)- T_DO
    SCK- T_CLK
    T_CS- к esp32
     
    Последнее редактирование модератором: 30 июн 2026
  18. SOLOway

    SOLOway Гуру

    @Watashi в ответ на подобные вопросы писал, что существует пара типов тачскринов, которые работают в его проекте, для каждого типа есть настройка, после настройки уже только выполняется калибровка.
    Кроме того, существует, как минимум один тип тачскрина, с которым его проект не работает, или работает некорректно.
    Обычно, я прошу тех, кто какой-то проект повторяет, законспектировать себе всё по теме с ним связанное и делать пометки, что помогло, и что не помогло. Вы видели такие конспекты в наших темах? - и я не видел... Много людей повтороили проект @Watashi , но ни один из них не переписал, не дополнил документ по настройке.
     
  19. Tarafara

    Tarafara Нерд

    С ТАЧСКРИНОМ РАЗОБРАЛСЯ!!! помог пример калькулятора. Но теперь после калибровки происходит вот такое дело. дисплей моргает белым изображения нет. К сожалению не знаю как прикрепить видео. Примеры из библиотеки работают.
     
    Последнее редактирование: 30 июн 2026
  20. SOLOway

    SOLOway Гуру

    Работа с дисплеем и работа с тачскрином - это две отдельные подпрограммы с независимыми библиотеками. До калибровки тачскрина ведь этот дисплей работал... Сравните ту версию скетча с этой, возможно что-то перехлестнулось в используемых пинах?