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

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

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

    Dmitrysh Гуру

    Попробуйте такой вариант, ШИМ 100Гц
     

    Вложения:

  2. ShVV

    ShVV Гик

    Отлично работает.
     
  3. SOLOway

    SOLOway Гуру

    Дисплей отнимает больше всего ресурсов, вы предлагаете ввести ещё одну не всем нужную функцию в прошивку.
    mvm_ksaa так захотелось - он автор проекта.
    в прошивки для старших версий ввели специально возможность оперативно, "на ходу", в процессе работы профиля менять некоторые параметры. Настолько ли оправданно усложнять код ради функции, по факту нужной только при большом потоке работы с BGA, функции, которая реализуется простой кнопкой?! Да, можно в меню включать/выключать свет, включать/выключать компрессор, паяльник, бодренькую музыку на блютуз-колонке...
    А самым главным, самым трудным при всех наворотах контроллеров, по-прежнему, остаётся настройка ПИД-регуляторов...
     
    Последнее редактирование: 2 июн 2020
    Wigga нравится это.
  4. MasterDums

    MasterDums Нерд

    Этого не знал. Теперь все понял.
     
  5. SOLOway

    SOLOway Гуру

    #4122
    Код (C++):
    #pragma GCC optimize ("Os")
    Это "боец невидимого фронта"? На размере прошивки применение с таким значением ("Os") не отражается, или дело не в размере, а в структуре полученного (после обработки скетча компилятором) HEX-файла?
    Сегодня показали такую в реальном приборе: Прошили прогером проц, запустили устройство. На lcd1602 надпись "press UP", жмем удобную нам, программа просит это сделать 3 раза, вычисляет среднее значение, запоминает и пишет "UP Yes". После этого пишет "press DOWN" и так далее до последней кнопки. После окончания присвоений/запоминаний чистый экран и появляется основное меню прибора.
     
    Последнее редактирование: 2 июн 2020
  6. LessNICCKoff

    LessNICCKoff Гик

    Низ не работает. Верх жарит.
     
  7. Dmitrysh

    Dmitrysh Гуру

    перезалил, попробуйте сейчас
     
    LessNICCKoff и Wigga нравится это.
  8. LessNICCKoff

    LessNICCKoff Гик

    Круто получилось!!!! Как и планировалось. Лампы не моргают, а ровно светятся.

    IMG_20200602_211257.jpg
    профиль.jpg

    Единственное ВИ стоит китайская керамика. Переделаю на галоген тогда и пид подправлю.
    В принципе с датчиком ноля также при интег 3.
     
    Последнее редактирование: 2 июн 2020
  9. geleos27

    geleos27 Гик

    Озвучьте ваши PID для верха и низа пожалуйста.

    Попробовал реализовать немного другой "ПИД", для нагревателей с большой инерцией с учетом шума. Регулирует мощность и с учетом изменения ошибки, и с учетом скорости роста температуры. (это попытка объединить ПИД который использовался ДО поста 3009 с тем что стали использовать после) (для рассчета D и F используется интервал в 1-2-3-4 секунды, как зададите. Уменьшает влияние шума термопар при больших значениях K)

    Код (C++):
     byte Pid2TEST2(double temp, int ust, byte kP, byte kI, byte kD, byte kF)
    {
        byte out = 0;
        static const byte buff_depth = 8; //  // глубина буфера 4 = 1 секунда, 8 = 2 секунды... MAX 250, увеличение кушает память.
            static float ed[buff_depth]; // массив предыдущих измерений ошибки (виден только внутри функции пид)
            static float ef[buff_depth]; // массив предыдущих измерений температуры (виден только внутри функции пид)
            static byte buff_position;
            e2 = (ust - temp); //ошибка регулирования Сглаживание на 4 шага
            p2 = (kP * e2); //П составляющая
            integra2 = (integra2 < i_min) ? i_min : (integra2 > i_max) ? i_max : integra2 + (kI * e2)/1000.0; //И составляющая
        d2 = kD * (e2 - ed[buff_position]); //Д составляющая // сравниваем со значением ошибки 8 шагов назад, если ошибка уменьшилась уменьшаем ПИД
            f2 = kF * (temp - ef[buff_position]); // скорость изменения температуры, если быстро растет, гасим пид, если быстро падает - подпинываем
            ed[buff_position] = e2; // Запись ошибки buff_depth шагов назад
            ef[buff_position] = temp; // Запись температуры buff_depth шагов назад
            buff_position = (buff_position < buff_depth-1) ? buff_position+1 : 0; //если достигли последнего значения буфера начинаем писать с 0
            out = (p2 + integra2 + d2 - f2 > 100 ) ? 100 : (p2 + integra2 + d2 - f2  < 0 ) ? 0 : p2 + integra2 + d2 - f2;  // Ограничиваем выходные значения 0-100
            return out;
    }

    Поругайте \ попробуйте пожалуйста
     
    Последнее редактирование: 2 июн 2020
  10. LessNICCKoff

    LessNICCKoff Гик

  11. Dmitrysh

    Dmitrysh Гуру

    Честно сказать, решение сомнительное. Я бы посоветовал просто пересчитывать ПИД не 4 раза в секунду, а допусти 2 или 1, а то и 1 раз в 2 секунды. Эффект будет тот-же, а вычислительные затраты намного меньше.
    Шум термопар оказывает сколько-нибудь заметное влияние только на D-составляющую, значения температур мы фильтруем, поэтому здесь проблем нет.
    Смотрите. На изменение ошибки реагирует D-составляющая, за скорость роста отвечает P-составляющая(с большими оговорками, но это так). ПИД придумали давно, там всё уже есть.
    Для высокоинерционных систем больше подходит то что мы использовали ДО, а для низкоинерционных то-что ПОСЛЕ.
    Честно сказать, получить высокую точность регулирования для высокоинерционных нагревателей это весьма сложная задача. Если точность удаётся получить хотя бы +/- 3 градуса это уже большой успех. Для таких систем используются специально составленные математические модели
     
    hacjka и Wigga нравится это.
  12. geleos27

    geleos27 Гик

    В теме видел чтото про уменьшение интервала рассчета пид: чем чаще считаем, тем лучше регулирование, но не могу найти пост где об этом писали. (поэтому и пошел по сложному пути)

    Вот направление в котором можно покопать для улучшения контроля инерционных нагревателей. ( а также очень инерционной связки - НИ + Плата + термопара сверху платы)
    Integrator Windup

    Integral Windup 2

    Вот еще хорошее объяснение

    Если я правильно понял - это отличается от просто ограничения макс значения I.
     
    Последнее редактирование: 3 июн 2020
    hacjka нравится это.
  13. hacjka

    hacjka Гик

    Доброе время суток,ГУРУ.
    Нужна помощь,есть скетч от уважаемого @Dmitrysh , с настройками которого я более менее разобрался.
    http://forum.amperka.ru/attachments/sketch_tft-320x480_dimer_pc_revolver_dmitrysh_v4_ex-zip.20126/
    меня интересует-есть ли возможность сделать так,чтоб в режиме *нижний подогрев* при достижении нужной температуры можно было оперативно убавить или добавить температуру,без остановки режима и входа в меню?на лету,так сказать.
    и всетаки нужно добавить более профилей,хотя б до 10-15.
    для чего?
    профиль-подогрев платы,сушка платы,сушка чипа ну и профиля на установку чипов,на каждый тип свой профиль-безсвинец,свинец.
    ну и пара резервных.
     
    Wigga нравится это.
  14. t2aua

    t2aua Нуб

    как понять в настройках ( «РАЗМЕР НИЗА» - без размерности, диапазон 1-3) про что это ? поясните
     
  15. hacjka

    hacjka Гик

    это если у вас реле включают отдельные секции нагревателя
    я меня секции соеденены паралельно-выбрал размер низа 3
    на картинке есть реле К1-4
    1-3 на секции низа
    4 на верх
    в принципе их не нужно
    Реле не подключать,если их нету.
     

    Вложения:

    Последнее редактирование: 3 июн 2020
    t2aua и Wigga нравится это.
  16. Dmitrysh

    Dmitrysh Гуру

    возможность есть, нужно просто время.
     
    t2aua, Wigga и hacjka нравится это.
  17. prusony

    prusony Нерд

    Здоровья Вам!
    Прочитал всю(!) тему, бегло на скетчах, подробно касаемо конструции. Огроменное спасибо за работу!!
    Собственно читал, потому что буду собирать.
    Пожалуйста не игнорируйте мои детские вопросы. ))
    1) Какой максимальной диагонали дисплейчик будет работать Ардуиной? (если возможно прямо ссылку на Али?....) (Уже не молод, очки....)
    2) Низ будет на кварцевых трубках, потому пните в нужном направлении - где в Беларуси их купить, размер ?
    3) В трубках спираль, значит где какой нихром или не нихром купить.

    Откройте плиз ссылку:
    https://catalog.onliner.by/heater/delta/d018
    Эта "грелка" случаем не то что нам(мне) нужно? Имеем 4 лампы + их гнёзда + отражатели, правда цена где-то 40 американских....

    Спасибо за любой ответ.
     
    Wigga нравится это.
  18. BlackRaven_36

    BlackRaven_36 Нуб

    Хочу поставить тачскрин. Дайте плиз ссылку на цифровой тач (SPI интерфейс), ну или модель-наименование. Дисплей у меня 3,5" 320X480. Да, и схемка подключения нужна.
     
  19. hacjka

    hacjka Гик

    а разве есть отдельно тачскрины для таких дисплеев? я брал диспоей сразу с тачем.
     
  20. Watashi

    Watashi Гуру

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