Ик паяльная станция на arduino. общие вопросы.

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

  1. SOLOway

    SOLOway Гуру

    Полный лог прилагаю.
    IDE 1.6.3.jpg
    Я выложил на гугл-диск часть собранного за несколько лет материала по ИК-станциям, там больше гигабайта папками и файлами. Может, кому окажется полезным. Ссылка на материалы.
     

    Вложения:

    Последнее редактирование: 2 ноя 2020
    DozerSE и Vladimir71 нравится это.
  2. SOLOway

    SOLOway Гуру

    Для тех, кто дружит с Delphi и желает забацать ПО под windows, напоминаю о проекте hominidae.
    Код для arduino NANO:
    Код (C++):
    #include <max6675.h>

    int b1=0;
    int b2=0;
    int b3=0;
    int p_top, p_bottom;
    int t_top, t_bottom;
    int state_top, state_bottom;

    char buf[32];
    unsigned long prev_top, prev_bottom;
    int pin_bottom = 11;
    int pin_top = 13;
    int tick = 200;

    unsigned long prev_t;

    int thermoDO = 4;
    int thermoCLK = 5;
    int thermoCS_b = 6;
    int thermoCS_t = 7;
    MAX6675 thermocouple_b(thermoCLK, thermoCS_b, thermoDO);
    MAX6675 thermocouple_t(thermoCLK, thermoCS_t, thermoDO);

    void setup()
    {
      Serial.begin(9600);
      pinMode(pin_top, OUTPUT);
      digitalWrite(pin_top, 0);
      pinMode(pin_bottom, OUTPUT);
      digitalWrite(pin_bottom, 0);
      t_top = 10;
      t_bottom = 10;
      p_top = 0;
      p_bottom = 0;

      state_top = LOW;
      state_bottom = LOW;
      prev_top = millis();
      prev_bottom = millis();
    }

    void loop()
    {
      if (Serial.available() > 0) {
        b3 = b2; b2 = b1;
        b1 = Serial.read();
        if ((b1 == 'T') && (b2 == 'E') && (b3 == 'S')) {
          p_top = Serial.parseInt();
          if (p_top < 0) p_top = 0;
          if (p_top > 100) p_top = 100;
          p_bottom = Serial.parseInt();
          if (p_bottom < 0) p_bottom = 0;
          if (p_bottom > 100) p_bottom = 100;
          t_bottom = thermocouple_b.readCelsius();
          t_top = thermocouple_t.readCelsius();
          sprintf (buf, "OK%03d%03d%03d%03d\r\n", p_top, p_bottom, t_top, t_bottom);
          Serial.print(buf);
        }
      }

      if ((state_top == LOW) && ((millis()-prev_top) >= tick * (100-p_top) / 100)) {
        state_top = HIGH;
        prev_top = millis();
      }
      if ((state_top == HIGH) && ((millis()-prev_top) >= tick * p_top / 100)) {
        state_top = LOW;
        prev_top = millis();
      }
      digitalWrite(pin_top, state_top);

      if ((state_bottom == LOW) && ((millis()-prev_bottom) >= tick * (100-p_bottom) / 100)) {
        state_bottom = HIGH;
        prev_bottom = millis();
      }
      if ((state_bottom == HIGH) && ((millis()-prev_bottom) >= tick * p_bottom / 100)) {
        state_bottom = LOW;
        prev_bottom = millis();
      }
      digitalWrite(pin_bottom, state_bottom);
    }
    Красивая картинка есть, что куда подключено. Архив с исходниками можно скачать здесь, или по ссылке автора. Вот так выглядит окно программы для ПК: ссылка. Сам автор о приложении пишет следующее:
     

    Вложения:

  3. SOLOway

    SOLOway Гуру

    Дополнение к этому посту.
    Перевел я, в порядке эксперимента, скетч mvm_ksaa на работу с MAX6675 с термопарами, вместо AD7705 с PT100 (соответственно, шилд стал не нужен). Теперь софт и коннектится и управляет. Однако, куда ж без затыков :) Дело в том, что слишком часто опрашивать ic MAX6675 нехорошо, а с рекомендуемой её даташитом задержкой в 220-170ms софт вылетает с ошибкой, а зачастую ещё и ардуинку зацикливает/вешает. Мои познания скромны, и я смею полагать, что исправить такое положение дел можно через правки в софте, чего добиться не получится в принципе, т.к. проект автор забросил и свой готовый вариант станции подарил. Но, всё-таки, теперь те, у кого есть интерес к ветке UNO/NANO/ProMini (на 328p) + LCD2004 i2c + 2xMAX6675 + ZCC + PC(опция), получили возможность покрутить софт mvm_ksaa, без обязательного "перетыкания проводков", или разборки готового контроллера управления, т.к. подключение в моей экспериментальной версии скетча полностью совместимо с упомянутой веткой :).
    В общем, покрутИте, а вдруг понравится :) Это будет тогда ещё одна ветка. Кстати, наличие дисплея здесь совсем не обязательно, т.к. в окне софта всё продублировано.
    скриншот.jpg
     

    Вложения:

    Последнее редактирование: 12 окт 2021
  4. SOLOway

    SOLOway Гуру

    Пожалуйста, приведите ссылку на пост с используемым вами скетчем, ссылку на пост со схемой, и ещё ответьте на вопрос, детектор нуля по какой схеме собрали и проверили ли его работоспособность хотя-бы специальным скетчем от @Dmitrysh .

    Попытка формирования заглавных постов второй части основной темы. Шаг №1:
    Первый главный пост основной темы. (В этом посте собраны ссылки на все проекты и важные посты. Есть ссылка на вторую часть основной темы. Часть информации обновилась, но лимит символов в посте исчерпан, дополнения будут выложены во второй части основной темы.)
    Основные ветки и проекты.
    Про детекторы нуля (ZCC), платы реле, резистивную (аналоговую) клавиатуру.
    Опросник по конструкции станций для участников.
    Схема, уточнённая, подключений для версий под Mega2560+tft 3.2" релизов от @Dmitrysh есть тут.
     

    Вложения:

    • схема.zip
      Размер файла:
      1,3 МБ
      Просмотров:
      383
    Последнее редактирование: 24 ноя 2020
    DozerSE нравится это.
  5. SOLOway

    SOLOway Гуру

    Почему по работе "прошивок с ютуба" не обратились к тем, кто их выложил там? Здесь версии активно дорабатывались, с момента публикации "подъютубовских прошивок" времени утекло много, а авторы тех видео не указали ссылок на первоисточники скетчей, за что их здесь не раз отругали. Сводите свои посты в один, удалив все ненужные (у вас на редактирование есть около суток), читайте инфу по ссылкам в моей подписи и в моем посте.
    Определитесь с релизом скетча, его работу и будем обсуждать, применительно к вашему железу! Оформите подпись, указав в ней ваше железо и ссылку на используемый скетч, тогда участникам проще будет отвечать на возможные ваши вопросы, т.к. помнить у кого какой скетч, какие нагреватели, и конструктив - дело непростое и голым энтузиазмом не питающееся :)
     
    Последнее редактирование: 12 окт 2021
  6. SOLOway

    SOLOway Гуру

    В копилку сервисных скетчей добавлю код sysinfo for Arduino. Позволяет, в т.ч. проверить работоспособность всех портов разных плат arduino. Вся информация по этому коду доступна по ссылке. К сожалению, в AtMega168 и ей подобные не влезет, но можно попробовать заремблить некоторый функционал ради возможности проверять подобные чипы.
     

    Вложения:

    Последнее редактирование: 12 окт 2021
    DozerSE нравится это.
  7. Watashi

    Watashi Гуру

    Есть для такого экрана
    Нужна Mega2560 и дисплей, переходной платы не нужно.
    смотри в подписи
     
    SOLOway нравится это.
  8. SOLOway

    SOLOway Гуру

    В комментариях к обзору станции hominidae на майску.ру efimsu выложил свои наработки, я прицепил архив с его материалами здесь.
    Сейчас отдал свой компактный термостолик брату, поэтому придётся "потрясти стариной" и забацать "на скорую руку" что-то подобное, но упрощённое из подручного хлама, в качестве исходников которого будут выступать две галогенки по 75w в параллель (в корпусе CD-привода, или БП АТ/АТХ), накрытые куском стеклокерамики, и дискретный фазовый регулятор из статьи. Тема "головняков" (не решено и было заброшено "на потОм") по нему тут. Именно эта тема зародилась по фантазиям от проекта said.in.ua.
     

    Вложения:

    • efimsu.zip
      Размер файла:
      1,1 МБ
      Просмотров:
      224
    Последнее редактирование: 12 окт 2021
  9. SOLOway

    SOLOway Гуру

    Поправленная немного версия 1.3.4c. Вернули, благодаря @Dmitrysh , возможность задавать уставку НИ от 80 до 330°С.
    Из особенностей - обратите внимание на коэффициенты деления составляющих P.I.D., Например, для ВИ:
    Код (C++):
    byte Pid1(double temp, byte ust, byte kP, byte kI, byte kd)
    {
      byte out = 0;
      static float ed = 0;
      e1 = (ust - temp); //ошибка регулирования
      p1 =  (kP * e1); //П составляющая
      integra = (integra < i_min) ? i_min : (integra > i_max) ? i_max : integra + (kI * e1) / 1000; //И составляющая
      d1 = kd * (temp - ed); //Д составляющая
      ed = temp;
      out = (p1 + integra - d1 < profile.min_pwr_TOPStep[currentStep - 1]) ? profile.min_pwr_TOPStep[currentStep - 1] : (p1 + integra - d1 > profile.max_pwr_TOPStep[currentStep - 1]) ? profile.max_pwr_TOPStep[currentStep - 1] : p1 + integra - d1;
      return out;
    }
    Только I-составляющая в этой функции делится на 1000.
    В функции для НИ уже I-составляющая делится на 10000, а также P-составляющая делится на 10.
    При этом в меню ничего не изменилось - доступны задания от 0 до 255.
    Схему актуальную, общую для всех версий ветки v1.3.x выкладываю здесь.
    Забыл картинку заменить. Выкладываю архив с исправленниями здесь.
     

    Вложения:

  10. SOLOway

    SOLOway Гуру

    Моё оценочное суждение (если что). Владельцы популярной, выпускаемой в РФ станции стали сталкиваться (что давно не одному мне представлялось весьма скорым событием) с тем, что достойное и равномерное по температуре относительно его площади термопятно от ВИ этих станций, в стоке оснащенных глиняным эльштайном 6*6 см в 250Вт, несмотря на необходимость при работе безобразно (опять моё оценочное суждение) низко располагать его над паяемым объектом, перестало быть достаточным для работы с современными чипами больших размеров.
    На глаза попалось одна из попыток решить проблему, но способ, выбранный её автором, лично у меня вызывает некоторое недоумение. Судите сами, конечно, но немца на подвального китайца в станции за три "средних зарплаты по РФ" менять...
    Для тех, кто ещё не определился с размерами ВИ, прилагаю картинку.
    pro gradient VI.jpg
    И, да, - это вы ещё с перепайкой длинных узких разъемов на станции с крошечными ВИ не сталкивались плотно :)
     
    Последнее редактирование: 4 дек 2020
  11. SOLOway

    SOLOway Гуру

    Раз уж идея запуска скетчей из темы на DUE снова проявилась, можно вот такой дисплей попытать, только вывод на него инфы править...
    Есть даже видео коннекта DUE с ним.
    Один из примеров, как можно попытаться выкрутиться, если станция сделана не по оптимальным рекомендованным вводным для конструктива:

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

    SOLOway Гуру

    Открытый кристалл чипа часто при выпайке и запайке на станции операторы закрывают кусочком фольги. Мы знаем, что в центре над и под чипом температура несколько выше, чем по краям чипа. Из под центра чипа теплу сложно убегать, а по краям тепло ворует конвекция. И мы знаем, что у излучателей всё точно также с градиентом температур, поэтому выбираем такие размеры излучателей, при которых зона наибольших потерь из-за паразитной конвекции максимально удалена от места пайки и краёв платы. Мне показалось, будет полезно посмотреть на эту тему видео от Дмитрия:


    Один из примеров использования аналоговых усилителей сигналов термопар с arduino с примером кода и настройки:

    Дефект с грозным названием "надгробный камень" при запайке смд-компонентов:

     
    Последнее редактирование: 12 окт 2021
    DozerSE нравится это.
  13. SOLOway

    SOLOway Гуру

    Посмотрите приложенный файл.
    Если окажется недостаточно информации, загляните в описание от повторившего тот проект.
    Я искал. Не смог найти, т.к. форумы не существуют более, а последующие публикации не преследуют целей перевести на иные языки софт.
     

    Вложения:

    • homiidae.pdf
      Размер файла:
      466,2 КБ
      Просмотров:
      207
    betaproger2 нравится это.
  14. SOLOway

    SOLOway Гуру

    Верно!
     
  15. SOLOway

    SOLOway Гуру

    В видео с момента 2:17 показана разница между температурой платы мобилки (плата висит в 10 мм над платформой) и температурой платформы. На плитах техноальянса тоже разница в температурах между этими точками существенная. Я не предлагал утюг, я о физическом явлении - о плохой теплопроводности воздуха :)
     
  16. SOLOway

    SOLOway Гуру

    Хорошим выбором считаю сейчас другие лампы. Включил бы их в 3 параллельных группы по 4 последовательно в каждой группе. Весь вопрос в длине спирали лампы, т.к. если у 1500W длина 254 мм, то длина спирали всего 210 мм.
    Там под видео ссылка в комментариях есть, и на али тоже, но существенно дороже. И про технологию толстоплёночных плоских нагревательных элементов (ПЭН) можно посмотреть:

     
    Последнее редактирование: 13 окт 2021
  17. Beto

    Beto Нерд

    Не пойму, чего большинство хотят повторить на 100% подогрев от Термопро или Бро?
    Каюсь, сам думал в этом направлении, но стоимость останавливала.
    Тут в раздумьях пришёл к одному варианту.
    1. Берём лист дюралюминия Д16Т толщиной от 6 до 10 мм.
    2. Согласно личному ТЗ сверлим нужные отверстия. Красим его в чёрный цвет.
    3. Снизу греем его хоть галогенкой, хоть инфракрасной (правда тут немного сомневаюсь)
    3.1. Галогенки хочу поставить от "печек" с принтеров с тефлоновыми валами, ибо у меня их девать не куда по работе.
    3.2. Можно использовать и бытовые галогенки из строительных супермаркетов.

    Получаете ровную поверхность, равномерность теплового пятна (чем толще - тем ровнее), и как минус - инерционность, но не такую как у керамики. Неплохую ремонтопригодность. Нет зайцев в глаза.
     
    Последнее редактирование: 30 дек 2020
  18. SOLOway

    SOLOway Гуру

    Правильные сомнения! Нельзя быстро греть плиту из металла, даже если у неё хорошая теплопроводность. Вертолёт обеспечите 100%. Ведь галогенки могут и 10°/сек, а плиты такое не перенесут. Сложности с креплением плиты (в видео про термоБро это тоже показано), а также станете решать такие вопросы: сколько ламп и какой мощности, как близко они друг к другу, как близко они к плите, как избежать значительных потерь тепловой энергии из-за её распространения во все стороны. Самое простое и разумное решение для плиты - найти квадратный ТЭН 1600-2400Вт от духовки, такой, который имеет наибольшее число изгибов. Такой ТЭН скобками прижать к плите. Из тонкого алюминиевого листа сделать два поддона с низкими бортами, в нижний (большего размера) уложить базальтовый картон на дно и по стенкам. В этот поддон уложить второй (меньшего размера), в который уже вложить плиту с прирученным ТЭНом. Вот этот бутерброд и будет хорошей альтернативой. Лежать бутерброд должен на нескольких продольно, либо поперечно закрепленных в основном корпусе ребрах уголков, что обеспечит и жесткость, и минимальный отбор тепла уголками.
     
  19. SOLOway

    SOLOway Гуру

    Подходящий по размерам и мощности. Из тех соображений, что размеры плиты (а для постоянной работы с платами FullATX правильнее, наверное, делать 2 плиты с одинаковыми ТЭНами) должны соответствовать или (лучше) несколько превышать размеры стандартных mATX. Расчет мощности относительно эффективной площади излучения есть в основной теме и здесь упоминается в посте #41 .
    Накидал вам ссылок из яндекс-картинок наскоро.
     

    Вложения:

    • ТЭНы.txt
      Размер файла:
      667 байт
      Просмотров:
      200
  20. LessNICCKoff

    LessNICCKoff Гик

    Не сразу заметил разделение ветки ИК станции.

    Внимание! Если будете шиться то перепишите свои настройки ПИД.
    Теперь настройки одни на все профили.

    Свеженькая подоспела:
    Циклическая прокрутка в редактировании профиля
    Выведены настройки профилей и ПИД в разные пункты настроек
    Удержание кнопки вверх 2с. настойки термопрофиля
    Удержание кнопки вниз 2с. настройки ПИД
    Старт по верхней термопаре
    Первая уставка ВИ температура старта ВИ
    первое значения ramp в профиле скорость нагрева НИ
    Первое значение температуры ВИ это уставка старта ВИ
    cancel включение-выключение охлаждения в простое
    Переделана последовательность редактирвания профиля
    При редактирвание Ramp выводится расчётное время шага
    Защита от превышения нагрева в секунду 4-10 градусов
    Сделана возможность выбора режима работы PWM ZCC через меню пид
    Добавлен режим LEONID канал на ютубе "мои полёты" 10 профиль
    При старте вывод на компьютер осущетсвляется через программу DmitrySh
    после выбора режим Leonid и последующем выходе из него вывод графиков остается в программу Leonid.
    Мелкие правки
     

    Вложения:

    betaproger2 нравится это.