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

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

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

    StDV Нерд

    Приветствую. Библиотека TimeLib, она же MsTimer2, под каким именем устанавливать? В скетче две реализации под разными именами - Mega > DUE. Или закоментировать всё, что относится к DUE?
     
    Последнее редактирование: 23 ноя 2019
  2. Watashi

    Watashi Гуру

    Все сделается автоматически. MsTimer2 - это проверенный вариант.
     
  3. StDV

    StDV Нерд

    Нет.
    exit status 1
    TimeLib.h: No such file or directory
    Библиотека MsTimer2 подключена.
     
  4. Watashi

    Watashi Гуру

    в начале скетча уберите строчку #include <TimeLib.h>, она вообще не нужна, видимо осталась от экспериментов ))
     
  5. StDV

    StDV Нерд

    Убрал. Теперь не нравится MEga
    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.
     
  6. Watashi

    Watashi Гуру

    мне это ни о чем не говорит, там есть еще ошибки, нужно больше информации
     
  7. SOLOway

    SOLOway Гуру

    Часть обсуждения этого вопроса есть с поста @revolover #719
    При соблюдении одинаковых условий (бойлер, к примеру) стандартный ПИД работает хорошо, и, к сожалению, на станцию попадают часто очень разные платы. Кроме общей для методов управления "посредством ПИД" и "по-мощности" проблеме работы с чипами на краю платы, есть ещё у первого метода мною не решенная проблема:
    Есть некий профиль, который использую по большей части, как наиболее универсальный для одной из доступных мне станций, но стали попадаться платы, на которых этот профиль не позволяет добиться результата (у одних много массивных элементов, у других неравномерная "заселённость" с разных сторон чипа). Конечно, профили под такие экземпляры я подправлял, ничто не мешает наделать нужное количество профилей - у mon, к примеру, их пара десятков, вроде...
    В общем, мне, плохо знакомому с Теорией Автоматического Управления не кажется всё однозначным, применительно к используемому нами способу получения данных о температурах и алгоритму обработки их. Не подумайте только, что я о некоем "сферическом коне в вакууме" :) и компанию Intel обвинять в излишествах, вероятно, не очень продуктивное занятие:
     
  8. Watashi

    Watashi Гуру

    Мы наверное обсуждаем разные вопросы. Профили должны быть разные для разных плат, это я понимаю. Что такое термопрофиль? это желаемый график температуры с течением времени пайки. Что делает ПИД регулятор? Он этот график в несколько шагов (на приведенной блок-схеме выше) Tref должен обеспечить на чипе, где стоит датчик температуры, через свою систему коэффициентов. И как шаг профиля должен влиять на эти коэффициенты? по моему не должно быть такого. Один раз настраивается ПИД и применяются разные профили.
     
  9. StDV

    StDV Нерд

    Несколько библиотек найдено для "RotaryEncoder.h"
    In file included from R:\My_IRSS\All Sketch Amperka\Svs_V06\Svs_V06.ino:80:0:

    Используется: C:\Users\Dmitriy\Documents\Arduino\libraries\RotaryEncoder-master
    C:\Users\Dmitriy\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:9:10: fatal error: TimeLib.h: No such file or directory

    Несколько библиотек найдено для "Cl_do_btn_long.h"
    #include <TimeLib.h>

    Используется: C:\Users\Dmitriy\Documents\Arduino\libraries\Class_do_btn_long
    ^~~~~~~~~~~

    Несколько библиотек найдено для "MsTimer2.h"
    compilation terminated.

    Используется: C:\Users\Dmitriy\Documents\Arduino\libraries\MsTimer2-master
    Несколько библиотек найдено для "Wire.h"
    Используется: C:\arduino-1.8.10\hardware\arduino\avr\libraries\Wire
    Несколько библиотек найдено для "DS1307RTC.h"
    Используется: C:\Users\Dmitriy\Documents\Arduino\libraries\DS1307RTC
    Несколько библиотек найдено для "UTFT.h"
    Используется: C:\Users\Dmitriy\Documents\Arduino\libraries\UTFT
    Несколько библиотек найдено для "AnalogKey5.h"
    Используется: C:\Users\Dmitriy\Documents\Arduino\libraries\X-Dron_lib-master
    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.


    Строка 79 : //#include <TimeLib.h>
     
  10. SOLOway

    SOLOway Гуру

    Да, скорее всего... Однако, если рассматривать каждый шаг одного профиля как самостоятельный "профиль в миниатюре", то, наверное, и с коэффициентами можно поиграть... :) И я не спорю же с изложенным в вашем посте #3300 ! Просто в предложенном мною видео от Intel, наверное, всё-таки, контроллер получает больший объем данных о реальных температурах и на входе алгоритм управления имеет более достоверную картину, нежели от парочки термопар "по классике"...
    tech-e.ru_2006_4_80_Ersa.jpg
    Ни к чему не призываю и ни от чего не отговариваю :) Это всё ради создания более полной картины процессов при работе с BGA и, конечно, посеять семена размышлений на будущее работ с компонентами такого типа.
    Перечитывал материалы по нескольким проектам и пришел вновь к выводу, что самоделкиным не тягаться с промышленниками - нет у нас такой исследовательской базы :( . В каждом проекте натыкаешься на те или иные нюансы, которые в рамках проекта либо не исправить, либо нет достаточных знаний и мотивации у его участников и разработчиков.

    Теперь о важном, относящемся конкретно к проектам в этой теме и к этому форуму!!!
    Совсем недавно команда форума, а именно @BAR__MEN , откликнулись на мой пост об отсутствии ссылок на данную тему, на материалы из этой темы, на форум Амперки людьми, повторяющими, повторившими проекты отсюда, а также использовавшими материалы проектов из этой темы в своих разработках. @BAR__MEN указал на пункт правил форума, регулирующий эти моменты: Правила -> 4.17
    А также предложил прокрутить страницу форума вниз до отказа и прочитать нижние три строки. Надеюсь, теперь у нас есть достаточные юридические основания указывать на недопустимость использования проектов и их частей, созданных участниками темы, если не будут выполнены перечисленные правила. Я тоже соберусь с духом и выкрою время, чтоб обновить пост #1619 в соответствии с текущими доработками и правилами форума.
    P.S.: @Watashi ! Альтруисты же не святым духом меню и код пишут? Разрешите заинтересовавшимся вашими разработками в этой теме помогать вам экономить на карандашах и бумаге - дополните профиль, пожалуйста :)
    P.S.2: Алекс Гайвер словно Макс из рекламы фанты :) "глотнул и написал либу для энкодера, ещё глотнул и - вуаля - сделал либу PID: https://alexgyver.ru/gyverpid/
     
    Последнее редактирование: 24 ноя 2019
  11. Watashi

    Watashi Гуру

    И все таки она нужна, ее требует библиотека DS1307RTC-master. Вы наверное поставили установку часов. Я проверял просто работу, и у меня не требовала этой TimeLib.
    Вернемся к началу
    у вас она не установлена.

    мне кажется это разные библиотеки
     
    Последнее редактирование модератором: 23 ноя 2019
  12. Watashi

    Watashi Гуру

    Перезалил обновление версия Svs_V07, плюс инструкция по настройке.
     
    xake нравится это.
  13. StDV

    StDV Нерд

    TimeLib.h не установлена, её нет в Вашем архиве. TimeLib, и MsTimer2 должны быть разные! Но тут Вы писали, что они одинаковы.
    Попробовал скомпилить Svs_V07, также не видит TimeLib. Где её взять?

    Благодарю, Добавил TimeLib с GitHub, компиляция прошла нормально.
     
    Последнее редактирование: 23 ноя 2019
  14. xake

    xake Нерд

    Watashi
    V07 - в TempRead() Input1 это ж верх? Должно быть thermoCS_T ?
    Код (C++):
    void TempRead() {                   //  чтение температуры
      if (Input1 == 0) Input1 = ReadCelsius(thermoCLK, thermoCS_B, thermoDO);
        else Input1 = Input1 * 0.8 + 0.2 * (ReadCelsius(thermoCLK, thermoCS_B, thermoDO));
      if (Input2 ==0) Input2 = ReadCelsius(thermoCLK, thermoCS_T, thermoDO);
        else Input2 = Input2 * 0.8 + 0.2 * (ReadCelsius(thermoCLK, thermoCS_T, thermoDO));
      tc1 = Input1;
      tc2 = Input2;
    }
     
  15. Watashi

    Watashi Гуру

    точно, накосячил. сча исправлю. спасибо.

    PS перезалил основной скетч. Извиняте (((
     
    Последнее редактирование: 24 ноя 2019
  16. Lenar

    Lenar Нерд

    я не отключил, но смысла в них мало, время почему регулярно сбивается не смотря на батарейку в модуле.
    я что-то не вижу файла обновлённого Svs_V07. Удалили?
     
    Последнее редактирование: 24 ноя 2019
  17. Watashi

    Watashi Гуру

    Мозг видимо вечером уже начал отключатся, точно помню что редактировал и загружал и наверное не сохранил изменения поста ))

    Раз уж коснулись этого участка кода, то есть идея. Недавно кто-то жаловался что термопара завышает(занижает) показания. Предлагаю добавить корректировку в код следующим образом:
    в файл Setting добавить строчки
    Код (C++):
    #define Korect_T 0
    #define Korect_B 0
    а в основной программе
    Код (C++):
    void TempRead() {                   //  чтение температуры
      if (Input1 == 0) Input1 = ReadCelsius(thermoCLK, thermoCS_T, thermoDO);
        else Input1 = Input1 * 0.8 + 0.2 * (ReadCelsius(thermoCLK, thermoCS_T, thermoDO) + Korect_T );
      if (Input2 ==0) Input2 = ReadCelsius(thermoCLK, thermoCS_B, thermoDO);
        else Input2 = Input2 * 0.8 + 0.2 * (ReadCelsius(thermoCLK, thermoCS_B, thermoDO) + Korect_B);
      tc1 = Input1;
      tc2 = Input2;
    }
    Если менять 0 на +- число то можно подкорретировать показания термопары.

    Нужно ли это?
     
    StDV и cwetok нравится это.
  18. cwetok

    cwetok Нуб

    За корректировку показаний термопары интересовался я, столкнувшись с разными типами термопар. Думаю, что это очень полезная доработка. Кроме того во многих серийных регуляторах температуры присутствует такая возможность (REX-C100 например) в меню.
     
  19. StDV

    StDV Нерд

    Очень.
     
  20. StDV

    StDV Нерд

    Так надо?
     
Статус темы:
Закрыта.