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

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

  1. MasterDums

    MasterDums Нерд

    3 для изменения размера нижнего подогрева одно для верхнего излучателя. В скетче @Watashi в меню есть функция РАЗМЕР НИЗА от 1 до 3 .То есть если у вас нижний подогрев, например, на лампах 3 секции по 3 лампы, то можно изменять его размер. Например, при 1 в настройках будет работать только одна секция, при 2 будут работать две, при 3 будут греть все три.
    Demonis_Image 2021-02-06 at 23.41.58.jpeg
    Demonis_Image 2021-02-06 at 23.43.08.jpeg
    Тогда блок реле вам не нужен.
     
    Последнее редактирование модератором: 13 фев 2022
  2. JagerLipton

    JagerLipton Гик

    Продолжение банкета.

     
    Последнее редактирование модератором: 13 фев 2022
    Wzor, Crimfell, geleos27 и 3 другим нравится это.
  3. tik-tak

    tik-tak Нерд

    Здравствуйте друзья. Хочу так же собрать станцию. Надыбал Нижний подогрев из 2 секций. И у меня вопрос для каждой секции по 1 своему реле п так же датчику температуры?
    Если не сложно накидайте на листочке схему включения?
    Завтра сделаю фото нижнего подогрева.
    Спасибо заранее

    [​IMG]

    [​IMG]
     
    Последнее редактирование: 8 мар 2021
  4. SOLOway

    SOLOway Гуру

    Приветствую! Какой из проектов вам интересен? Вот здесь рассказано обо всех имеющихся в теме проектах, выбирайте и тогда схему сделаем. Реле - по желанию, кто-то их не использует, кто-то электронными ключами заменил, кто-то обычными тумблерами. Термодатчик у преднагревателя (НИ) один, второй - для контроля температуры возле паяемого чипа.
    Чуть позже накидаю.
    для проекта @geleos27 - увы, нет, т.к. ОЗУ не хватит (ведь у 328p её только 1024 байт):
     
    Последнее редактирование: 11 фев 2022
  5. tik-tak

    tik-tak Нерд

    Включении Секций происходит включением обычными тумблерами или Программно через Реле К1-К4?
    Какие K1-K4 Реле необходимы?
     

    Вложения:

  6. SOLOway

    SOLOway Гуру

    tik-tak_Mega_TFT_RTC_Encoder.JPG
    @tik-tak Программно управляемыми из основного меню реле, тумблеры в схеме отсутствуют, это контактные группы реле так изображены на "схеме", поэтому и непонятки, схема-то не по ЕСКД :) . Кстати, @Dmitrysh заменил реле на ключи электронные на одной дешевой микросхеме и реализовал дополнительную защиту от нештатного включения ВИ, скажем, вследствие сбоя из-за мощной помехи, или пробоя симистора в силовой им управляющей.
    @shlang Архитектура у этих AVR общая, но мега2560 на борту имеет значительно больше периферии, кроме большего объема ПЗУ и ОЗУ. Напрямую скетчи для 168/328 можно запускать на 2560, только изменить два пина подключения LCD c i2c: у 168/328 это пины 4 и 5, а у 2560 это пины 20 и 21 соответственно.
    P.S.: Выкладываю обещанную схему по проекту @geleos27.
    geleos27 project for Mega256_3xMAX6675_NO DISPLAY_NO KEYBOARD.png
     
    Последнее редактирование: 13 фев 2022
  7. tik-tak

    tik-tak Нерд

    Случайно не по этим схемам? контактные группы реле? Где можно глянуть что это и как подключать? Есть ссылка на aliexpress?
    TZT 5v 12v 1 2 4 6 8 kanal relais modul mit optokoppler Relais Ausgang 1 2 4 6 8 weg relais modul für arduino auf lager|relay module|module relayrelay module 4 channel - AliExpress
    5v 1 2 4 8 kanal relais modul mit optokoppler. Relais Ausgang 1 2 4 8 weg relais modul für arduino|relay module|module 5vmodule electronic - AliExpress
    Спасибо! Заказал)
     

    Вложения:

    Последнее редактирование модератором: 11 фев 2022
    Wzor и SOLOway нравится это.
  8. SOLOway

    SOLOway Гуру

    Я использую Pro MINI и всегда запитываю их от внешнего бп, а плюсовой вывод преобразователя USB-UART не подключаю к плате. На UNO и прочих, где преобразователь USB-UART уже имеется на плате - как повезёт, если бп трансформаторный, то не страшно, если импульсный, могут быть неприятности - я спалил порт USB на неттопе.
    Поддерживаю.
    Прямоугольники с такими названиями - это обмотки реле. А мощные силовые контакты этих реле подписаны как К1.1/К2.1/К3.1/К4.1. Когда у вас нижний нагреватель состоит из трёх секций, вы можете через меню задать использовать 1й или 2й или 3й или все 3 вместе. Четвертое реле подключает верхний нагреватель, когда приходит его очередь работать его в меню отключать/включать нельзя. Силовые контакты каждого реле подключены между выходом твердотельного реле и нагревательным элементом, всего твердотельных реле 2, т.к. у нас только два нагревателя, один из которых составной (НИ), а второй -одиночный (ВИ). Буззер пиликает :).
    @Andrsen тут надо ещё помнить, что покупные станции с подключением к софту на ПК имеют только импульсные бп. А я не видел у них гальванической развязки, но могу и ошибаться, т.к. там платы USB-UART отдельные бывают, а их я не разглядывал...
     
    Последнее редактирование: 11 фев 2022
  9. SOLOway

    SOLOway Гуру

    Верно. Блок реле и управление через меню количеством включенных в работу нагревательных элементов преднагревателя (НИ) - это дополнительная фишка контроллеров из темы, но она не является основной и не всем необходима (просто приятно, когда такую хочется и она - раз - уже реализована!), т.к. у всех конструктив станций в плане нагревателей разнится довольно существенно
    @Andrsen Я тут вспомнил, что уже не раз здесь хотел опубликовать решение по гальванической развязке для наших станций, и не только станций!
    Речь идёт об маленьком устройстве USB-isolator. Сходу нашел на них ссылку раз и ссылку два, а затем уже в закладках откопал обзор от kirich и обзор от СТАНОК.
    @shlang Схему соединений по проекту @geleos27 теперь можно всегда видеть у него на Github. Ссылка на материалы по его проекту всегда в его подписи.
     
    Последнее редактирование: 11 фев 2022
  10. SOLOway

    SOLOway Гуру

    SOLOway_профили 4uvak.jpg
    Их несколько версий и размещены они в разных постах @Dmitrysh в закрытой теме. Это скетчи в постах 2401, 2846, 2847, 2867, 3009, 3662, 4319, 4716.
    Заставили меня лопатить за вас всю тему закрытую, на вашей совести будет. Итак, полагаю, вы используете скетч, о котором упомянули восхищённо в своём посте #4346 . Если так, то оформите подпись с указанием ссылки на пост с используемым вами скетчем.
    Почему не ограничить мощность низа в меню, чтоб не жарил? - или вы что-то недоговариваете?
    Можно длительность шага увеличить до 255 секунд, только не знаю, корректно ли это будет вводиться через программу irsp©, там, помнится были ограничения из-за протокола и нельзя было задавать больше 99.
    При работе с кнопок контроллера ограничение 255, так что просто замените 90 на 255 тут:
    Код (C++):
        //устанавливаем время перехода на следующий шаг
        case REFLOW_STATE_MENU_STEP_DWELL:
          if (updateScreen) {
            myGLCD.setFont(BigFontRus);
            myGLCD.setColor(VGA_BLACK);
            myGLCD.drawRoundRect(255, 131, 470, 160);
            myGLCD.setColor(VGA_SILVER);
            myGLCD.textRus("МОЩНОСТЬ ВЕРХ", 260, 140);
            myGLCD.textRus("МАХ", 310, 220);
            myGLCD.printNumI(profile.max_pwr_TOPStep[editStep], 370, 220, 3, '0');
            myGLCD.printNumF(profile.rampRateStep[editStep] * 0.1, 0, 380, 90);
            myGLCD.setFont(SevenSegNumFont);
            myGLCD.printNumI(profile.temperatureStep[editStep], 55, 180, 3, '0');
            myGLCD.setFont(BigFontRus);
            myGLCD.setColor(VGA_LIME);
            myGLCD.textRus("ВРЕМЯ ПЕРЕХОДА НА СЛЕД ШАГ", 5, 270);
            myGLCD.setColor(250, 180, 000);
            myGLCD.drawRoundRect(2, 263, 420, 290);
            myGLCD.printNumI(editStep + 1 , 70, 55);
            myGLCD.printNumI(profile.dwellTimerStep[editStep], 427, 270, 2, '0');
            updateScreen = false;
          }
          myGLCD.printNumI(profile.dwellTimerStep[editStep], 427, 270, 2, '0');

          if (upSwitchState == HIGH && ( millis() - ms_button) > 100) {
            ms_button =  millis();
            profile.dwellTimerStep[editStep] = profile.dwellTimerStep[editStep] + 1;
            if (profile.dwellTimerStep[editStep] >= 90) {
              profile.dwellTimerStep[editStep] = 90;
            }
          }
          if (downSwitchState == HIGH && ( millis() - ms_button) > 100) {
            ms_button =  millis();
            if (profile.dwellTimerStep[editStep] < 1) {
              profile.dwellTimerStep[editStep] = 0;
            } else profile.dwellTimerStep[editStep] = profile.dwellTimerStep[editStep] - 1;
          }
          if (okSwitchState == HIGH && !button_state && ( millis() - ms_button) > 100) {
            ms_button =  millis();
            button_state = true;
          }
          if (okSwitchState == LOW && button_state && ( millis() - ms_button) > 100) {
            ms_button =  millis();
            button_state = false;
            updateScreen = true;
            if (editStep + 1 == profile.profileSteps) {
              editStep = 0;
              reflowState = REFLOW_STATE_MENU_BOTTOM_P;
            }
            else editStep++;
            SaveProfile();
          }
          if (cancelSwitchState == HIGH && ( millis() - ms_button) > 60) {
            ms_button =  millis();
            updateScreen = true;
            editStep = 0;
            reflowState = REFLOW_STATE_IDLE;
          }
          break;
     
    Последнее редактирование: 13 фев 2022
    hacjka нравится это.
  11. SOLOway

    SOLOway Гуру

    Раз уж вам сложно, то я оставлю тут ссылку на пост, скетч из которого вы используете - это пост @Dmitrysh #4319
    Т.е. когда НИ вышел на заданную в меню для него уставку, он должен "поплясать" на ней пару минут, и только после этого танца чтоб включился ВИ?
     
    Последнее редактирование: 12 фев 2022
    hacjka нравится это.
  12. hacjka

    hacjka Гик

    вот скопировал ошибку такую же выдает и ваша версия и от автора
     

    Вложения:

    Последнее редактирование модератором: 12 фев 2022
  13. SOLOway

    SOLOway Гуру

    @hacjka Смотрите, во второй теме с такой проблемой столкнулся участник @k008 - прочтите #43 , пожалуйста. Сами ошибки, это не совсем ошибки, это предупреждения - яндекс-переводчик трактовал их так:
    . Отчего такое происходит, я не знаю, в интернете сводят к тому, что "нужно правильно писать код", и не понятно, почему эти предупреждения у многих просто отсутствуют... Есть предположение, что появление этих предупреждений как-то связано с версией arduino IDE, или с версиями используемых библиотек. Ведь, сами представьте, стал-бы я выкладывать скетч, если он у меня сыпал ошибками!? Как вариант, могу собрать архив с библиотеками, которые у меня установлены. Версия IDE у меня 1.8.13.
    Кусок кода, который я вставил - конструкция, которая нормально работает для обработки антидребезговой задержки при нажатиях кнопок во всём скетче, я только добавил дополнительную переменную, "ms_pause".
     
    hacjka нравится это.
  14. Watashi

    Watashi Гуру

    Да, я настраивал с подтяжкой в 10ком
    Я над этим сейчас и работаю. Хочу изменить правило включения преднагрева верха и переместить настройки преднагрева и верха и низа в закладку "общие". настройка часов уйдет в другое место.
    Мне кажется что ошибка связана с версией ардуино IDE. Или все таки в библиотеке UTFT не так обьявлены эти строковые константы)))
    Но зная что строковые константы создаются во флеш памяти, а потом при старте переписываются в оперативную память, лучше сделать чтобы они вообще не переписывались в ОЗУ. делается так:

    вместо myGLCD.textRus("`", 155, 115);
    надо myGLCD.textRus(F("` "), 155, 115);

    пробел в конце строковые константы надо добавлять!
    и этих ошибок не будет и память освободится. как то так.
     
    Последнее редактирование модератором: 11 фев 2022
    hacjka и SOLOway нравится это.
  15. kacktus

    kacktus Нуб

    Kacktus_Скриншот 13-03-2021 022642.jpg
    Делал калибровку, ничего не меняется
    QIP Shot - Screen 038.jpg
    Всё разобрался)) Вы правы в левом верхнем по X, Y от нуля
    Сорри. Ошибочка вышла. В левом верхнем углу x468 y307, в правом верхнем x3 y318. левый нижний x473 y6 и правый нижний x1 y1
     

    Вложения:

    Последнее редактирование модератором: 13 фев 2022
  16. Dmitrysh

    Dmitrysh Гуру

    Попробуйте такой вариант, я его проверить пока не могу, станция на работе.
     

    Вложения:

    hacjka нравится это.
  17. Crimfell

    Crimfell Нуб

    Здравствуйте. Прошил скетч Svs_V09 от ув @Watashi , но тачскрин не настроен, работает только левый нижний угол. Дисплей у меня 3.95 дюймов на контролере ST7796S. Скачал пример калибровки, вот что выдал:
    CAL_X 0x00228F4CVL
    CAL_Y 0x03E680EEVL
    CAL_S 0x0013F1DFVL
    Куда это вписать?
    Большое спасибо. Получилось. Думаю стоит добавить в инструкцию...
     
    Последнее редактирование модератором: 12 фев 2022
  18. tik-tak

    tik-tak Нерд

    [​IMG]
    [​IMG]
    Есть вопрос по креплению дисплея 3.5 цоль. Есть какие то рамки?
     
    Последнее редактирование модератором: 12 фев 2022
  19. freizi

    freizi Нерд

    Сравнил несколько разных термопар К-типа (испытывал по несколько экземпляров каждой из проверяемых, за эталон температуры принимал показания тепловизора Flir one pro)
    1. Дешевые K-термопары в белой оплетке не очень быстро реагируют на изменение температур. Заводская капля на таких парах обычно просто огромная, лучше переделать самостоятельно. Точные в низком диапазоне температур (<150°), в критичном для пайки диапазоне температур (>180°) занижает показания на 4-6°. Достаточно сложно установить такую термопару без держателя т.к оплетка недостаточно жесткая и постоянно пружинит сама себя.
    2. Термопара со средней толщиной жил без оплетки, которая шла в комплекте к металлическому держателю-трубке с магнитиком - чуть быстрее реагирует на изменение температур по сравнению с парами в белой оплетке, по точности так же, устанавливать без держателя еще сложнее.
    3. Omega со средней толщиной жил в оплетке то же самое по реакции и точности относительно варианта выше, но установить без держателя вполне реально.
    3. Термопару в гильзе взял просто для сравнения, совершенно не подходит из-за очень высокой инерционности (во всяком случае в гильзе).
    4. Omega с тонкими жилами в тесте дала самую быструю реакцию на изменение температуры. В низком диапазоне температур (<100°) завышает показания на 5-6 градусов по сравнению с остальными термопарами и замером с тепловизора. При проверке "капля к капле" с другими термопарами на одном нагреваемом участке в более критичном для пайки диапазоне температур (>180°) оказывается наоборот более точной и не требует программной корректировки (разница с относительно тепловизора около градуса, другие термопары занижают на 4-6°). Жилы термопары очень тонкие и без оплетки, закрепить без держателя практически нереально, в комбинации с металлическим держателем-трубкой устанавливать очень просто.


    photo_2021-03-15_18-07-53.jpg photo_2021-03-15_19-07-27.jpg photo_2021-03-15_18-07-52.jpg g9qfyny8TA8.jpg
     
    Последнее редактирование модератором: 12 фев 2022
    hacjka, MasterDums и SOLOway нравится это.
  20. SOLOway

    SOLOway Гуру

    В основной теме (которая закрыта) упоминали о том, что эти термопары предназначены для диапазона до +200°С, а дальше их погрешность увеличивается, причём по-разному. Касаемо крепления датчиков на плату - самое удобное - кронштейны, типа как тут: #2850 , или напоминающие по конструкции штатные держатели от термопро ИК650. А ещё ссылки на варианты держателей собраны в посте #308 основной темы.
    @Дмитрий мне очень понравились два варианта теплоизоляции - это базальтовый картон и каолиновая вата. Когда их у меня не было, то делал вот так: #1145
    Картон базальтовый 5 мм толщиной в 1, в 2 и 3 слоя в разных местах, вату каолиновую в 1-2 см, примерно. Корпус иногда нагревался заметно, но руки не обжигал, плюс тихоходный кулер протягивал от мордочки станции воздух через весь отсек с электроникой и симисторами (где-то влево выдувал, где-то из задней стенки).
     
    Последнее редактирование: 12 фев 2022
    Crimfell, Дмитрий и freizi нравится это.