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

Тема в разделе "Arduino & Shields", создана пользователем vector99, 7 дек 2016.

  1. revolover

    revolover Гик

    Случалось несколько отвалов на стадии изготовления девайса. Питание было от БП, При пайке всегда питание от ЮСБИ отвалов не случалось. У вас какое питание?
     
  2. SOLOway

    SOLOway Гик

    revolover И Вас с Новым Годом! Рад, что вы поправляетесь, так держать!
    Питаю от классического трансформаторного БП с LM2940CT. Выход 5,03в. Этот же БП является и детектором ноля - реализован как на верхней схеме у snmar4enko тут: http://radioservice.at.ua/_fr/0/Schematic_BLOC-.pdf
    От порта USB получается 4,65в всего :(
    Кстати, snmar4enko перед праздниками заглянул в ту тему, и снова исчез, оставив этот пост только: http://radioservice.at.ua/forum/23-27-3765-16-1546176059
    Еще из любимого:

     
    Последнее редактирование: 3 янв 2019
  3. Нафаня

    Нафаня Нерд

  4. SOLOway

    SOLOway Гик

    Интересный проект, он засветился на форуме сайта Паяльник, и там его недобро встретил модератор. Просто парень сделал попытку обратить внимание людей на свой проект, используя раскрученную тему на популярном ресурсе - вот на него и зарычали. А проект у него многообещающий, только аппаратная платформа другая совсем, о подобной revolover высказывался здесь в теме.
    Кстати, мне понравилась идея двухпроцессорного управления у него, жаль, что он её закрыл,
    Зато пока есть видос и скетч фазового регулятора для UNO на Гитхабе он выложил:
     
  5. alsh_0907

    alsh_0907 Нерд

    Примерно год назад я тоже на паяльнике засветился в той теме со своим проектом и ,как ни странно, на меня тоже зарычали )). Кстати идею двухконтроллерного управления, когда один контроллер является фазовым регулятором, а второй является главным, я тоже рассматривал и частично реализовал но на шине I2C, но потом забил. И на одном контроллере atmega128 у меня все неплохо работает.
     
  6. SOLOway

    SOLOway Гик

    alsh_0907 Алексей, приветствую! Рад, что вы заглянули в эту тему!
    Ну, на Паяльнике-то мы на стр. 82-84 общались, а затем вы ушли :) . Помню, вы библиотеку LCD пересобрали! Разница в появлении в той теме между вами и Андреем Железняковым в том, что он как раз ссылку на свои материалы по своему контроллеру дал, а вы только корпусные элементы, да фотки плат выложили. А я попросил, кстати, чтоб вы, если где тему создадите, поделились ссылками :) .
    Конечно, Андрею спасибо, что хоть так обозначил существование своего проекта, ведь, как и в случае с Leonid0071, чисто случайно такие проекты обнаруживаются, т.к. не раскрученные ресурсы почти не индексируются поисковиками...
     
  7. alsh_0907

    alsh_0907 Нерд

    В моем проекте ИК станции мало что будет интересного для других, ну если только фазовое управление мощностью галогенок. Поэтому решил нигде и не публиковать. Саму идею диммера взял на cyber-place.ru. И то в скором времени думаю отказаться от нее, так как за 5 месяцев эксплуатации станции с галогеновым низом почувствовал что немного зрение ухудшилось. Да и импульсные помехи от симисторного регулятора неслабые. Когда включаю станцию у себя в квартире, аж слышно как начинают свистеть импульсные БП в некоторых домашних приборах. На работе в сервисном центре дела получше, там отдельный провод кинут до щитка. Жду, когда приедут керамические нагреватели, буду переделывать на керамику. Регулировка будет пропуском полупериодов.
     
  8. SOLOway

    SOLOway Гик

    А я не просто так про пересобранную вами библиотеку дисплея заметил :) Вообще, "розовая мечта" - отказ от #include каких-либо библиотек в скетче для UNO + LCD2004 + 2pcs.MAX6675.
    Я в посте #1619 обновляю архивы, когда очередную оптимизацию благодаря Dmitrysh и другим участникам провожу. На сегодня ждёт воплощения введение управления вентилятором продува корпуса для охлаждения НИ (и остывания платы соответственно) по окончании пайки. Также ещё не испытанным остаётся вариант из поста #1917
    Мне предложили вместо фильтра Калмана использовать 4 замера температуры за секунду (MAX6675 это умеет, а сейчас там 1 замер в секунду) сложенные вместе и деленные на 4. Не знаю, насколько это хуже фильтра (графики мы выводим на ПК), будет ли экономия в ресурсах мк и размере кода, да и как выглядит такая реализация...
     
  9. alsh_0907

    alsh_0907 Нерд

    Хочу рассказать про одну интересную особенность работы дисплейных контроллеров HD44780, но может быть про неё уже кто то рассказывал. Большинство операций, выполняемых этим контроллером, исполняются за 40мкс, и для этого в стандартной ардуиновской библиотеке этого дисплея после каждой команды вводится дополнительная задержка delay(40). Но дело в том, что эти контроллеры, выпускаемые китайцами в составе с дисплейным модулем, отлично гонятся по частоте. Мне удалось достичь увеличения в 4-5 раз без потери стабильности работы, можно поэкспериментировать и больше, но некоторые символы начинают нечетко прорисовываться. Частота работы контроллера задается внешним резистором. В дисплеях 2004 это резистор RF сопротивлением 91кОм. Его можно заменить на 22-27кОм. Тогда и в стандартной библиотеке, где подключение идет по 6 проводам, задержку можно уменьшить до 10мкс.
     

    Вложения:

    SOLOway нравится это.
  10. SOLOway

    SOLOway Гик

    alsh_0907 Алексей, можете подсказать по коду для ProMini@Optiboot/NANO + LCD 1602 I2C + 2pcs. MAX6675 от snmar4enko?
    Задел там хороший - 14 профилей, инициализирующихся при включении контроллера, два вентилятора с разными функциями, только накручено там: счетчик не вполне понятный, не сочетающийся с реальной скоростью нагрева, четность работы нагревателей по импульсам от ZCC... Библиотеку MAX6675 я ещё смогу туда переписать, возможно, вывод графиков сделаю, как в релизе 1.3.4. (пост 1619) в прогу heater, переведу на аналоговую клавиатуру, как в 1.3.5. (пост 1619). А вот с переписыванием ПИД по Dmitrysh у меня не сложилось...Пояснения к скетчу прилагаю
    Pro Mini _34pin_1.jpg
    Если время и интерес, конечно, у вас найдутся...
     

    Вложения:

    Последнее редактирование: 5 янв 2019
  11. Dmitrysh

    Dmitrysh Гик

    А что не сложилось то? Давайте сложим.
     
  12. SOLOway

    SOLOway Гик

    Не смог с нескольких заходов :( .
    Там кроме этого непонятки со счетчиком, я отписывал за него:
    Сразу два проекта собрать-то я соберу (на столе лежат), а вот что разобраться смогу не запутавшись - не уверен.
    Кстати, вы там на стр. 9-12 предлагали некоторые правки!
     
  13. Dmitrysh

    Dmitrysh Гик

    Мы говорим о версии 2.0.9?
     
  14. alsh_0907

    alsh_0907 Нерд

    Первое, что может показаться неудобным человеку, который до этого не работал с этим проектом - это читать длинную простыню в полторы тысячи строк кода. Почему бы участки кода, отвечающие за разные функции не разнести по вкладкам, ARDUINO IDE позволяет это делать. Сам я давно так и поступил со своим проектом.
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      146,8 КБ
      Просмотров:
      243
    vector99 нравится это.
  15. Dmitrysh

    Dmitrysh Гик

    Было бы прикольно, если бы это были разные функции. А если это одна? Как раскидать одну функцию по разным вкладкам?
     
  16. alsh_0907

    alsh_0907 Нерд

    Можно, например в конструкции switch (reflowState), после каждого "case" код оформить в виде отдельной функции и тогда можно их будет разнести по разным вкладками
     
  17. Dmitrysh

    Dmitrysh Гик

    Можно, но это затраты флеша и ОЗУ, которых и так не очень много, ну и конечно скорость выполнения. Вызов функции это с точки зрения ассемблера сохранение регистров плюс команда перехода и наоборот при возврате. Когда функций много, то это очень хорошо видно.
     
  18. alsh_0907

    alsh_0907 Нерд

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

    Вложения:

    • 2.png
      2.png
      Размер файла:
      260 КБ
      Просмотров:
      66
    Последнее редактирование: 5 янв 2019
  19. Dmitrysh

    Dmitrysh Гик

    У вас функция вызывает функцию. bitWrite это функция, а не простая команда. Вы правы, компилятор умный и не будет вызывать функцию2 через вызов функции1, он сразу вызовет функцию2. Поэтому и размер кода не изменился.
    А вообще, чтобы быть полностью честным, то следует отметить, что если функция встречается один раз, то компилятор вставит её в текст программы не как функцию, а как кусок кода без перехода и всего остального. Но нам от этого не легче, у нас ещё есть локальные переменные, которые должны быть "видны" функциям, если мы решим разбить скетч на части.
     
    Последнее редактирование: 5 янв 2019
  20. alsh_0907

    alsh_0907 Нерд

    Да, вот с локальными переменными будут проблемы. Но я бегло просмотрел код внутри switch (reflowState), их там почти нет. Как вариант, сделать часть локальных переменных глобальными, тогда увеличится расход ОЗУ.
    И немного не по теме. Я вчера на почте получил нагреватель для верхнего подогрева, продавец засранец, сэкономил на упаковке и нагреватель добрался уже с трещиной. Как думаете, насколько критично повреждение и чем можно трещину залить, чтобы дальше не расходилась?
     

    Вложения:

    • DSC_2643.JPG
      DSC_2643.JPG
      Размер файла:
      1,9 МБ
      Просмотров:
      193