Вторник, 26.11.2024, 14:02
Радиосервис - ИЗМАИЛ

Меню сайта

Статистика
Форма входа
Друзья сайта

Форум поддержки программ "Tiny Tools" (CPLD/USB-S/USB-F/USB-SPI EJTAG Tiny Tools)

Электроника на KitPost
Поиск
Наш опрос
Оцените мой сайт
1. Отлично
2. Хорошо
3. Неплохо
4. Ужасно
5. Плохо
Всего ответов: 86
Ссылки по uCoz
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
    Модератор форума: Alexandr_  
    Инфракрасная паяльная станция своими руками на ARDUINO
    Alexandr_
    Дата: Среда, 08.02.2017, 19:55 | Сообщение # 1        
    Генералиссимус
    Группа: Администраторы
    Сообщений: 814
    Статус: Offline

    Форумчане, куплю-продажу и личные сделки выяснять в личке, либо в новом форуме, этот форум для вопросов по электронной части станции.

    Архив по станции от hominidae с проектом efimsu ->здесь
    Проект Леонида, Leonid0071 "UNO-MAX6675-PC" и его доработки на форуме Амперки -> скачать

    Люби грешников, ненавидь сам грех!
     

    fedorchuk007
    Дата: Воскресенье, 29.04.2018, 09:49 | Сообщение # 121        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    Добрый день snmar4enko ,возникла проблемма с скетчем 2.0.6,
    Неработает бузер(пины менял,нет результата)
    Плата arduino uno
     

    snmar4enko
    Дата: Воскресенье, 29.04.2018, 15:39 | Сообщение # 122        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Генерация звука в версии 2.0.6 работает через библиотеку CyberLib, нужно править и строки CyberLib.cpp, ищите код

    
    Код
    //***************Beep от 50 до 2000Гц****************
    void beep(uint16_t dur, uint16_t frq)
    {
      //dur=(1000/frq)*dur;  //расчет длительности бипа
      uint16_t per=500000/frq; //длит. полупер в мкс
      dur=dur/(per/250)*2;
      for(uint16_t i=0; i<dur; i++)
      {
        D18_High;
        delay_us(per);
        D18_Low;
        delay_us(per);
      }
    }

    - D18_High; и  D18_Low; Меняем пин 18 на ваш. Не забываем сохранить. После компилируем. Обратите внимание, что в самом скетче нет упоминания вывода Пищалки. Также необходимо чтобы не было конфликта выводов.....

    Еще поправили библиотеку для BEEP как D9_Beep(dur, frq) - библиотеку выкладываю.
    Прикрепления: CyberLib.zip (12.7 Kb)


    Сообщение отредактировал snmar4enko - Понедельник, 30.04.2018, 06:16
     

    fedorchuk007
    Дата: Среда, 02.05.2018, 11:32 | Сообщение # 123        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    Спасибо,библиотеку поправил,всё ок)
     

    snmar4enko
    Дата: Воскресенье, 06.05.2018, 12:13 | Сообщение # 124        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Хорошо что получилось ...... но где результаты фактических тестов пайкой, на каких нагревателях какие коэффициенты ПИД, какие ограничения по мощности, может какие другие температурные цели, паузы в конце  шага, другое количество шагов, .... были ли вылеты температур особенно на последнем шаге .....

    Или почти у всех картошка в мае?

    Добавлено (06.05.2018, 12:13)
    ---------------------------------------------
    Скетч версии 2.0.7 (для симмисторов без детекции нуля - фазовое управление)

    Еще оптимизировал код, особенно функцию инициализации памяти EEPROM. Результат:

    Скетч использует 20472 байт (66%) памяти устройства. Всего доступно 30720 байт.
    Глобальные переменные используют 707 байт (34%) динамической памяти, оставляя 1341 байт для локальных переменных.

    Да - на последок  - светодиод на выходах мощности ардуины действительно хорошая вещь. Напомню у меня последовательно соединен резистор 200ом, светодиод, и светодиод MOS3023. Можно так же  как в параллельном проекте от KSAA  просто светодиод с последовательным резистором - и все это на выход мощности ардуины. Так вот в данной версии cкетча, по крайней мере на моих нагревателях значения Kp завышено. И выше упомянутый контрольный светодиод очень хорошо сигнализирует: на установившемся значение мощности - определенная яркость свечения и присутствие колебания (незначительное повышение и понижение яркости с определенной частотой - периодично). Особенно это видно когда нижний нагреватель вышел на финишную прямую -  наши 150 градусов. 

    Так что Тестируйте и пишите какие коэффициенты ПИД у вас получились  .....

     

    Cinema
    Дата: Воскресенье, 06.05.2018, 17:52 | Сообщение # 125        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    snmar4enko Приветствую! Мне показалось, что Скетч версии 2.0.7 (для симмисторов без детекции нуля - фазовое управление) не смог закрепиться в вашем сообщении # 124
    Возможно, я ошибаюсь...
    А посмотрите, пожалуйста, что за такая библиотека для управления кнопками:
    

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Воскресенье, 06.05.2018, 17:56
     

    snmar4enko
    Дата: Понедельник, 07.05.2018, 05:50 | Сообщение # 126        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Действительно слетел - выкладываю 2.0.7
    Прикрепления: 0691233.rar (8.5 Kb)
     

    fedorchuk007
    Дата: Вторник, 08.05.2018, 21:03 | Сообщение # 127        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    Картошку посадил,принялся за тесты...
     

    Cinema
    Дата: Среда, 09.05.2018, 09:50 | Сообщение # 128        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    При использовании ШИМ в 2,5кГц возможно управление нагревателями способом, оговоренным и доработанным тут:
    
    Если ограничиться мощностью НИ в 1600Вт и ВИ в 600-800Вт и использовать старт термопрофиля с момента достижения НИ температуры в 50-70*С (ставить плату на НИ при его температуре в 50-70*С), должно хорошо работать, IMHO. И сеть бытовую не перегрузим, и можно ручной термостат для НИ будет замутить, например, для групповой сушки чипов...

    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Среда, 09.05.2018, 09:56
     

    snmar4enko
    Дата: Среда, 09.05.2018, 14:53 | Сообщение # 129        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Цитата Cinema ()
    При использовании ШИМ в 2,5кГц возможно управление нагревателями способом, оговоренным и доработанным тут
    -это скорей подходит к станции пользователя KSAA (параллелльный форум).

    На других форумах начитал следующее: для эффективного регулирования ПИД необходимо выбрать время за которое ПИД регулирует -  к примеру нам необходимо чтобы шаг роста на 1 градус отрабатывал за 0.5 секунды.  ПИД для установки стабильного значения мощности на выходе требует 10-100  периодов. То есть время опроса ПИД (время интегрирования и время диффиринцирования)  5-50 милисекунд. (20-200Гц).  А оно у нас аж 1 секунда. И появилось оно когда сделал привязку опроса к времени .....

    Далее - за это время (между опросами ПИД) необходимо чтобы ШИМ отрегулировал мощность (как минимум 100 значений - 100%) - то есть длина импульса 1 деления 50-500 микросекунд (2-20 кГц). А это никакой симмистор (твердотельное реле) не потянет - следовательно необходимо отвязываться от перехода нуля и регулировать полевыми транзисторами.

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


    Получают время в микросекундах для задержки включения тиристора от перехода через ноль. Для этой цели используют прерывания от встроенного таймера - но у нас два регулятора и время может быть разным.  Но нужно подумать как это можно пристроить. И еще у нас на симмистор импульс держится до конца полупериода - а у других ограничен 100 микросекундами. Из за этого происходило ложное включение нагревателей у fedorchuk007 из за проблем в детекции нуля.


    Сообщение отредактировал snmar4enko - Среда, 09.05.2018, 15:06
     

    snmar4enko
    Дата: Среда, 09.05.2018, 16:30 | Сообщение # 130        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Скетч версии 2.0.8

    Уменьшил время опроса ПИД до 50 микросекунд.
    Проработал переменную flag для нижнего нагревателя.
    Убрал биения Timer1 до сетевого полупериода.

    Перевел LCD1602 на I2C шину. Теперь и другие выводы переназначены:
    кнопки D6 D7 D8 D9
    нагреватели нижний D3  и верхний D4
    прерывание с сети D2 осталось и термодатчики тоже.
    Вентиляторы внутренний D15 и внешний D16 
    Пищалка на D5 (Cyber.lib выкладываю)
    Прикрепления: REWORK_2.0.8.zip (8.8 Kb) · 8543717.zip (12.9 Kb)
     

    Cinema
    Дата: Среда, 09.05.2018, 16:33 | Сообщение # 131        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Очень непросто для меня все это...:(
    "Опыт — это то, что получаешь, не получив того, что хотел" © интернет

    Сообщение отредактировал Cinema - Среда, 09.05.2018, 16:35
     

    snmar4enko
    Дата: Среда, 09.05.2018, 18:03 | Сообщение # 132        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Есть проблема?

    Или что то не понятно?

    Или что-то не так работает и нужно исправить?

    К тому же присмотритесь к скетчу в позапрошлом моем посте ...... практически паяльная станция на один нагреватель - немного код поправить и можно сделать на 2 нагревателя, к тому же ПИД самостоятельный и можно избавиться от библиотеки PID_v1

    Да и чуть ранее писал про то как уменьшить ток ключей, в частности транзисторных - примеру если добились небольших токов то можно первичку компьютерных блоков питания использовать - диодные мосты там на 4-6 ампер, транзисторы 13007 или 13009 на 7 и 9 ампер соотвественно, оптопары 2 шт типа P817 есть ..... так что можно что то на кулибничать для регулировки нагревателей


    Сообщение отредактировал snmar4enko - Среда, 09.05.2018, 18:54
     

    mon
    Дата: Среда, 09.05.2018, 20:16 | Сообщение # 133        
    Подполковник
    Группа: Модераторы
    Сообщений: 191
    Статус: Offline

    Цитата snmar4enko ()
    На других форумах начитал следующее: для эффективного регулирования ПИД необходимо выбрать время за которое ПИД регулирует - к примеру нам необходимо чтобы шаг роста на 1 градус отрабатывал за 0.5 секунды. ПИД для установки стабильного значения мощности на выходе требует 10-100 периодов. То есть время опроса ПИД (время интегрирования и время диффиринцирования) 5-50 милисекунд. (20-200Гц). А оно у нас аж 1 секунда. И появилось оно когда сделал привязку опроса к времени .....
            Я так понял вы до сих пор не поняли для чего нужен ПИД,вы подсовываете ему в качестве аргументов заданную и текущию температуры,а пытаетесь стабилизировать скорость роста температуры в участках профиля ?  Естественно функция ПИД пытается стабилизировать температуру,а не скорость.И с приблежением заданной температуры, будет происходить замедление роста температуры.А чего вы ждали? тут не форумы читать нужно,а назначение ПИД.
    Цитата snmar4enko ()
    Далее - за это время (между опросами ПИД) необходимо чтобы ШИМ отрегулировал мощность (как минимум 100 значений - 100%) - то есть длина импульса 1 деления 50-500 микросекунд (2-20 кГц). А это никакой симмистор (твердотельное реле) не потянет - следовательно необходимо отвязываться от перехода нуля и регулировать полевыми транзисторами.
          Вообще ничего не понял,проблемно сделать фазовую регулировку с шагом 0-100? я вам могу точно сказать
    можно от 0-1000.

    Цитата snmar4enko ()
    Но вернемся к нашему фазовому регулированию. Мощность пропорциональна площади между нулем и огибающей синусоиде. Поэтому некоторые в похожих случаях применяют функцию арккосинуса: к примеру вычисленную ПИД мощность делят на 50, отнимают 1, умножают на 9900 и делят на ПИ.
    С таким подходом,для avr-ок это называется однозадачность,паузы в прерывании,деление на ПИ....это уже переход на arm.
     

    snmar4enko
    Дата: Четверг, 10.05.2018, 07:20 | Сообщение # 134        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Цитата snmar4enko ()
    На других форумах начитал следующее: для эффективного регулирования ПИД необходимо выбрать время за которое ПИД регулирует -  к примеру нам необходимо чтобы шаг роста на 1 градус отрабатывал за 0.5 секунды.  ПИД для установки стабильного значения мощности на выходе требует 10-100  периодов. То есть время опроса ПИД (время интегрирования и время диффиринцирования)  5-50 милисекунд. (20-200Гц).  А оно у нас аж 1 секунда. И появилось оно когда сделал привязку опроса к времени .....
    Я это писал не для того чтобы вы сделали вывод что я не понимаю как работает ПИД.
    А для того что все взаимосвязано. Если правильно выбраны коэффициенты ПИД то рано или поздно наступит установившийся режим ПИД. Так вот этот установшийся режим наступает за 10, а чтобы наверняка за 100 циклов вычисления ПИД. Время через которое вычисляется ПИД совпадает с временем диффиринцирования и интегрирования составляющих ПИД регулятора. Теперь про ШИМ или фазовый регулятор: его период должен быть меньше или равен периоду опроса ПИД. Штатный ШИМ микроконтроллера имеет 256 значений. Соотвественно минимальное единичное значение ШИМ (период) эквивалентен частоте 25.6 кгц. И такой импульс способен полноценно отработать только транзистор. В симмистора быстродействие раз в 10 меньше. Я не спорю - для фазового управления можно шкалу мощности растянуть и от 0 до 1000. Но это только нагрузит Ардуинку и увеличит размер скетча ..... эффекта не даст (смотрите в даташите параметр время включения (открытия)).

    Да и часть скетча
    
       я опубликовал для примера ..... как другие делают (может у них более правильный подход). К тому же если ПИД без Д составляющей встроить в наш скетч - будет еще уменьшение размера скетча..... и никаких arm применять не нужно будет.
     

    mon
    Дата: Четверг, 10.05.2018, 20:07 | Сообщение # 135        
    Подполковник
    Группа: Модераторы
    Сообщений: 191
    Статус: Offline

    snmar4enko, Зачем вам 8bit таймер,что у вас за мк? там нет 16bit таймера? Вот осциллограммы эмуляции в протеусе,1процент открытия,50процентов и 95 процентов открытия симистора.
    Шаг 0-1000.Желтым это импульсы перехода через 0,синим выход на оптрон moc.  При одном проценте длительность импульса примерно 1us это шаг 1,а 95 процентов -длительность импульса составляет около 7.5ms соответственно.всё прекрасно работало в живую,кроме функции фазовой регулировки,мк выполнял функции 2-х ПИД, динамическая  индикация,1-write,кнопки.использовался int rc на 8Mhz. Tgt скажем у bt139 номинально -2us,что вполне укладывается в рамки управления от с шагм 0-1000.
    Прикрепления: 9869703.png (276.9 Kb) · 9111557.png (278.3 Kb) · 9541139.png (278.3 Kb)


    Сообщение отредактировал mon - Четверг, 10.05.2018, 20:35
     

    Поиск: