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

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

  1. Tarafara

    Tarafara Нерд

    В том то и дело что когда я закомментировал тачскрин в ASetting.h калибровка на дисплее не появлялась, но дисплей вел себя точно так же как сейчас. В данный момент не подключен только модуль времени, но я не думаю что из за него не будет картинки. На меге 2560 когда его не подключаешь просто не идут часы, так как мега 2560 ждет от него ответа.
    нашел кое что, теперь только стартовый экран далее не идет(((((. начальный экран.png
    Есть предупреждения при компиляции но что не понятно.
    Что делать дальше больше не знаю, мысли закончились.

    Друзья, после общения с другими участниками, я принял решение перейти на сборку контроллера по проекту @geleos27 с тремя термопарами, на принципах, схожих с примененными в популярных коммерческих станциях ик-650. Я выбрал версию этого проекта, который любезно портировал на ESP32 участник @_Alf_
     
    Последнее редактирование модератором: 9 июл 2026
  2. SOLOway

    SOLOway Гуру

    Хороший выбор, поделитесь, обязательно результатами с нами - без обратной связи от повторивших, о наших проектах может складываться впечатление о их неполноценности... По выбранному вами сейчас проекту практически нет медиа информации, хотя повторили его и используют уже много мастеров..
     
  3. hacjka

    hacjka Гик

    Привет всем
    назрело желание переделать паялку
    что имеем
    3.95дисплей
    плата esp32
    низ плита алюминиевая,верх кварц на трубках
    хотелось сделать на 3 термопарах
    вижу есть скетч на есп32 но там в описании пишет чтоб без дисплея
    вот ето интересует,какой вибрать

    еще хотелось б,чтоб можно на лету менять температуру низа....тоесть если не хватает,кнопкой добавил и жариш дальше.
     
    Последнее редактирование: 6 авг 2026
  4. iDocMobile

    iDocMobile Нуб

    ред. модератор: речь идет о проекте @Watashi , пункт №6 в заглавном сообщении темы - "6. MEGA2560 + TFT 3.5" 480x320 + Touchscreen + encoder + 2*MAX6675 + ZCC & no ZCC + PC(опция)".

    Ох, сколько боли мне стоила настройка этой прошивки! Более-менее всё удалось настроить, но до первых запусков я ещё даже не дошёл.
    Сейчас, вроде бы, всё работает нормально, кроме одного — кнопки не работают вообще, и энкодер HW-040 тоже.
    Если включить:
    Код (C++):

    #define SetEncoder
     
    то курсор начинает самопроизвольно бегать по меню и переключать все пункты. Если отключить SetEncoder, то всё становится нормально.
    У меня установлен тачскрин, его я настроил, и он работает без проблем.
    Вопрос: в версии 10.3 должны ли одновременно работать тачскрин, энкодер и кнопки? Или можно использовать только что-то одно?
    Потому что у меня сейчас ни энкодер, ни кнопки вообще не работают, а работает только тачскрин.
    Если кто-нибудь сталкивался с подобной проблемой или знает, как её решить, пожалуйста, подскажите.
    Если есть возможность помочь более подробно, буду благодарен. Можно связаться со мной в Telegram: @texnorems.
    Всем заранее спасибо!
     
    Последнее редактирование модератором: 9 авг 2026
    hacjka нравится это.
  5. iDocMobile

    iDocMobile Нуб

    Было очень тяжело настроить термопары, но мне это удалось. В итоге я перенёс их на пины, которые изначально были предназначены для энкодера.
    Код (C++):

    #define thermoCLK  A8     // SCK
    #define thermoCS_T A9     // CS верхней термопары
    #define thermoDO   A10    // SO

    // Нижняя термопара MAX6675
    #define thermoCLK2 A8     // SCK
    #define thermoCS_B A11    // CS нижней термопары
    #define thermoDO2  A10    // SO
    Линии [B]SO[/B] и [B]SCK[/B] я объединил, а [B]CS[/B] оставил раздельным для каждой термопары. В таком варианте обе термопары работают нормально. При использовании схемы, как в оригинальной прошивке, одна из термопар вообще не работала.

    Энкодер был настроен следующим образом:

    #define BTN_OK A9
    #define Enc_Clk A8
    #define Enc_DT A10
    #define ROTARYSTEPS 1
     
    Затем я попытался перенести энкодер на пины A12, A13 и A14, но результата это не дало. Начинается самопроизвольное переключение пунктов меню. Для проверки я полностью отключал термопары, отсоединял их от линий, отключал тачскрин и всё остальное, что могло влиять на работу, но проблема оставалась. Кнопки и энкодер при этом практически не работают.

    Иногда энкодер начинает реагировать, но сразу появляются ложные срабатывания: происходят самопроизвольные нажатия, меню начинает хаотично переключаться и «прыгать». Подключение выполнялось строго по схеме из прошивки. Также пробовал менять пины — результат одинаковый.

    Может быть, кто-нибудь сталкивался с такой проблемой? Есть ли решение данного вопроса?
     
    Последнее редактирование модератором: 9 авг 2026
  6. iDocMobile

    iDocMobile Нуб

    Нашёл одну из причин некорректной работы энкодера и кнопки.

    В библиотеке Cl_do_btn_long конструктор выглядел так:
    Код (C++):

    Cl_do_btn_long::Cl_do_btn_long(byte _pin) {

      /* Setup the input pins
      pinMode(pin, INPUT);
      digitalWrite(pin, HIGH);   // turn on pullup resistor
      */


      pin = _pin;
    }
     
    Весь код инициализации пина был закомментирован. В результате вход кнопки не переводился в режим входа с подтяжкой и оставался в неопределённом состоянии ("висел в воздухе"). Из-за этого библиотека могла постоянно фиксировать ложные нажатия кнопки OK, что приводило к самопроизвольному открытию меню и хаотичной работе интерфейса.

    Исправил конструктор следующим образом:
    Код (C++):

    Cl_do_btn_long::Cl_do_btn_long(byte _pin) {
       pin = _pin;
       pinMode(pin, INPUT_PULLUP);
    }
     
    После этого:

    • кнопка OK начала работать корректно;
    • исчезли самопроизвольные нажатия и открытие меню;
    • энкодер начал реагировать правильно.
    Осталась только одна проблема: при вращении энкодера меню перескакивает через один пункт. Скорее всего, это уже связано с настройками библиотеки RotaryEncoder (I_Type, ROTARYSTEPS) или особенностями самого энкодера, а не с обработкой кнопки.

    Сейчас Пины Энкодера
    Код (C++):

    // ------------ Энкодер --------------------------------
    #define BTN_OK 4                 // Кнопка энкодера
    #define Enc_Clk 2
    #define Enc_DT 3
    #define ROTARYSTEPS 1
     
    В обшем, теперь можно подключать всё и находить следуюшие Баги.. если они будут конечно
     
    Последнее редактирование модератором: 9 авг 2026
  7. Latro

    Latro Нуб

    Добрый день.
    Наткнулся на ролики о ИК станции по проекту @Watashi в вашем обсуждении. Начал собирать, дошел до заливки скетча на mega2560 и столкнулся с проблемой: на дисплее просто белый экран при этом дисплей живой (загружал на него стандартные примеры из библиотеки UTFT) в чем может быть ошибка. Дисплей 3,5" 480х320.
    дисплей
     

    Вложения:

    Последнее редактирование модератором: 9 авг 2026
  8. Sergo10

    Sergo10 Нерд

    По симптомам 2560 не может определить драйвер на вашем дисплее или разрядность не та(8или 16).
     
    Последнее редактирование модератором: 9 авг 2026
  9. SOLOway

    SOLOway Гуру

    Вы не указали, смотрели ли вы видео про библиотеку UTFT от уважаемого @Watashi .
    Кроме того, не уточнили, какую именно библиотеку UTFT вы использовали, какие настройки самой библиотеки делали (об этом в видео подробно).
    На фото шилда дисплея отсутствует явное указание названия контроллера (драйвера) дисплея, тут метод перебора придётся использовать.

    @hacjka На гитхабе в описании указан TFT дисплей SPI 3.5".
    Гитхаб.
     
    Последнее редактирование: 9 авг 2026
    Sergo10 и hacjka нравится это.
  10. hacjka

    hacjka Гик

    что то не могу найти схему.куда и что подключать
     
  11. SOLOway

    SOLOway Гуру

    Прописано тут.
    Кто картинкой сделает и здесь опубликует - тому лучи добра и моральную поддержку.
     
  12. Sergo10

    Sergo10 Нерд

    Прочитал мануалы по разным esp32 и у них есть ограничения по использованию выводов, а то и запретов на использование (если версия N16R8 - то ограничения увеличиваются из-за использования выводов под быструю память). Так, что общего рисунка с подключениями не получится - так как зависит от версии esp32 и памяти. Это, что я понял из манулов по ним. Гуру может меня поправят!
     
    SOLOway и hacjka нравится это.
  13. Sergo10

    Sergo10 Нерд

    Добрый день. Эти строки не работают но их можно сделать рабочими, если убрать слеши спереди.
    А эти строки в файле User_Setup.h = работают!
    #define ILI9488_DRIVER
    #define TFT_MISO 37
    #define TFT_MOSI 35
    #define TFT_SCLK 36
    #define TFT_CS 40 // Chip select control pin
    #define TFT_DC 38 // Data Command control pin
    #define TFT_RST 39 // Reset pin

    Разные куски кода относятся или к avr
    #if defined(__AVR__)

    Или к esp8266/esp32
    #elif defined(ESP8266) || defined(ESP32)
    Ещё раз повторюсь - для своей esp32 =надо внимательно читать мануал и особенно * разлел пинов * !
     
    Последнее редактирование: 11 авг 2026
    SOLOway и hacjka нравится это.
  14. SOLOway

    SOLOway Гуру

    Подтверждаю и поддерживаю.
    В отличие от итальянцев из Arduino, китайцы развели "зоопарк" своих плат на контроллерах от Espressif - похожие с виду платы с одним названием, но разных производителей, имеют разную распиновку, которая не всегда предоставляется продавцами.

    Итого: Для каждой конкретной платы ESP32 файл BSetting.h будет выглядеть индивидуально. Это добавляет сложности для повторяющих проект, но настоящих энтузиастов сподвигнет разобраться и поделиться опытом с участниками наших тем.

    Кроме того, никто не изъявил пока желания помочь создать файлы с описанием проектов, с комментированием кода, ответами на частые вопросы.
    В закрепе файлы, которые нужно редактировать под вашу конкретную плату. Правьте, выкладывайте удачные конфиги здесь в своих сообщениях.

    p.s.: Речь о проекте 15. @_Alf_ перевел проект @geleos27 на платформу ESP32 здесь.
     

    Вложения:

    hacjka нравится это.
  15. Sergo10

    Sergo10 Нерд

    По рисунку подключения (знакомая основа) - для n16r8 подключения к 35по37выводы - есть большие вопросы (если в наименование есть R8 - это означает, что на плате установлена быстрая восьмибитная память — Octal PSRAM. выводы GPIO 35, 36 и 37 - Нельзя использовать! . Они для высокоскоростной внутренней связи с этим чипом памяти) . Вы можете использовать GPIO 35, 36 и 37 как обычные пины только в одном случае: если вы полностью отключите PSRAM в настройках среды разработки ( Arduino IDE выбрать Tools -> PSRAM -> Disabled). Однако тогда ваша плата потеряет свои главные 8 МБ оперативной памяти и превратится в обычную N16 без расширенной памяти. И по 0 выводу есть вопрос-я бы перевел на 3 вывод (для резистивной 5кеу клавы). Ниже схема подключения не для R8.
     

    Вложения:

    • ESP32N16.jpg
      ESP32N16.jpg
      Размер файла:
      56,8 КБ
      Просмотров:
      13
    Последнее редактирование: 14 авг 2026
    hacjka нравится это.
  16. SOLOway

    SOLOway Гуру

    Я перевёл рисунок ваш в форму, удобную для редактирования, прикрепил этот файл для понимания, что надо делать. Слепое копирование - ну.... Посмеёмся вместе над такими :).
     
    Sergo10 нравится это.
  17. AndersonKZ

    AndersonKZ Нерд

    здравствйте на версии v10_1 @Watashi с экраном было все норм но на версии 10_2 вот так, нету v1 чтобы откатится помогите пожалуййста, дайте версию в 1 у меня экран ILI9486
    или помогите на версии 2 экран настроить

     

    Вложения:

    Последнее редактирование: 15 авг 2026
  18. AndersonKZ

    AndersonKZ Нерд

    Код (C++):

      LCD_RST - 41
      LCD_CS - 40
      LCD_RS - 38
      LCD_WR - 39
      LCD_RD - +5в

      LCD_D0 - 37
      LCD_D1 - 36
      LCD_D2 - 35
      LCD_D3 - 34
      LCD_D4 - 33
      LCD_D5 - 32
      LCD_D6 - 31
      LCD_D7 - 30


     "C:\Users\WatashiPC\Documents\Arduino\libraries\UTFT_Rus_W1\hardware\avr\HW_AVR_defines.h"
     строки привести к такому виду

    // #define USE_UNO_SHIELD_ON_MEGA 1
       #define USE_8BIT_ON_MEGA 1        // use 8 bit bas
    // #define USE_8BIT_ON_MEGA 0        // use 16 bit bas


    Вызов такой: UTFT myGLCD(CTE40, 38, 39, 40, 41);

    В файле C:\Users\SergSV\Documents\Arduino\libraries\UTFT_Rus_W1\memorysaver.h
    необходимо ЗАКОММЕНТИРОВАТЬ строку с названием вашего контроллера дисплея
    с ILI9486

     в файле C:\Users\WatashiPC\Documents\Arduino\libraries\UTFT_Rus_W1\UTFT.cpp

     105 строка: поставить 8 на 28 место

    byte    dtm[] = {16, 16, 16, 8, 8, 16, 8, SERIAL_4PIN, 16, SERIAL_5PIN,    // 00-09
                        SERIAL_5PIN, 16, 16, 16, 8, 16, LATCHED_16, 16, 8, 8,    // 10-19
                        16, 8, 16, 8, SERIAL_5PIN, SERIAL_5PIN, SERIAL_4PIN, 16, 8, 16,    // 20-29
                        SERIAL_5PIN, SERIAL_5PIN,16,16,16};
     
     
    Последнее редактирование модератором: 15 авг 2026
  19. AndersonKZ

    AndersonKZ Нерд

    Всё, разобрался!!

    вызов:
    Код (C++):

    UTFT myGLCD(ILI9486, 38, 39, 40, 41);
    // #define DISABLE_ILI9486 1    // ILI9486    (16bit)
    #define USE_8BIT_ON_MEGA 0        // use 16 bit bas
     
    при этом конфиге все завелось, я просто начал подбирать в ручную разные вариации
     
    Последнее редактирование модератором: 15 авг 2026
    SOLOway нравится это.
  20. SOLOway

    SOLOway Гуру

    Версия от 26 мая 2026 года?
     
    Последнее редактирование: 15 авг 2026