Пятница, 22.11.2024, 17:57
Радиосервис - ИЗМАИЛ

Меню сайта

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

Форум поддержки программ "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" и его доработки на форуме Амперки -> скачать

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

    mon
    Дата: Суббота, 21.04.2018, 07:59 | Сообщение # 91        
    Подполковник
    Группа: Модераторы
    Сообщений: 191
    Статус: Offline

    Цитата snmar4enko ()
    в память EEPROM где можно записать только байт 0-255
    Это ваше утверждение? а каким образом double хранится в других ячейках памяти мк? скажем в ram ?
    И ничто не мешает kp1 объявить как u8 будет работать так-же,поправить ту же библиотеку,минутное дело.
    
    Цитата
    DimmerUP=201-Output1 - Так как использую фазовую модуляцию в регуляторе то необходимо
    переворачивать значение .....работает. Если знаете как сделать по
    другому подскажите.
    Я вам про Емелю вы мне про Фому.DimmerUP целое число,в Output1 нет, сколько потребуется опросить ПИД что-бы изменить DimmerUP ? получается ПИД молотит за зря...
    Прикрепления: 2302251.png (14.2 Kb) · 6527928.png (15.5 Kb)


    Сообщение отредактировал mon - Суббота, 21.04.2018, 08:40
     

    snmar4enko
    Дата: Суббота, 21.04.2018, 19:28 | Сообщение # 92        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Цитата mon ()
    получается ПИД молотит за зря...
    ДА  на первом шаге ПИД1 (верхнего нагревателя) - до его включения молотит зря.

    Цитата mon ()
    в память EEPROM где можно записать только байт 0-255
    - здесь не правильно выразился - вполне достаточно одной ячейки для хранения с последующем умножением или делением при необходимости.

    Код переписывал только тот что неправильно работает или для придания необходимого функционала .....  
    вообще по нормальному все надо с нуля переписать....

    А так посмотрите там еще много переменных что не используются ...... и теоретически много переменных можна даже INT сделать .....но у меня по сравнению с вами опыта маловато - только второй месяц на ардуине программирую ....

    Да и еще вырисовывается проблема - два термодатчика дают нагрузку на ISP шину а она не любит низкоомных нагрузок - особенно при старте .......
     

    mon
    Дата: Воскресенье, 22.04.2018, 10:49 | Сообщение # 93        
    Подполковник
    Группа: Модераторы
    Сообщений: 191
    Статус: Offline

    Цитата snmar4enko ()
    Да и еще вырисовывается проблема - два термодатчика дают нагрузку на ISP шину а она не любит низкоомных нагрузок - особенно при старте .......

    Spi Adc как впрочем другие микросхемы заточенные под этот интерфейс ,не были низкоомными, возможно нужно сделать дополнительную подтяжку к vcc.Скорее траблы программные.
    Примерно 1 раз из 5 вызовов функции ПИД будет изменена DimmeUp на 1 в + или -, тоже самое и для низа и так будет всегда пока работает ПИД.
    Чтобы правильно оценить,нужно дебажить,выводя
    Переменные скажем на тот же lcd дисплей, нужные вам переменные,подсчитать количество опросов и изменений.
     

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

    Цитата mon ()
    Чтобы правильно оценить,нужно дебажить,выводя Переменные скажем на тот же lcd дисплей, нужные вам переменные,подсчитать количество опросов и изменений.
    Так и делаю - посмотрите сериал порт  - если раскомментировать строки то мониторинг польется по UART

    В режиме простоя IDLE чтение профиля из EEPROM один раз или после переключения профиля, сюда же перенес настройку ПИД по мощности и коэффициентам ПИД.

    В режиме пайки ПИД верха не опрашиваю пока выключен. Это не дает никакого эффекта (кроме скорости работы) потому как 120 градусов разницы (150 градусов (первая цель) минус  комнатная температура) за секунду включают верхний нагреватель на ограниченный максимум.

    Ввел два вентилятора внутренний включается сразу с нижним нагревом - для охлаждения симисторов или твердотельного реле на A6 (D20) и
    внешний для охлаждения нагревателей и платы после последнего шага пайки на на A7 (D21).

    Выключается вентиляторы уже в режиме простоя IDLE по короткому нажатию клавиши Cancel.
    В моей Ардуинке к сожалению эти пятаки висят в воздухе ..... китайцы рулят. Тем у кого таже проблема - переназначайте на другие выводы.

    Итак Скетч версии 2.0.3

    И еще - обнаружил два вывода измеренной температуры - один для простоя, другой для пайки .... похоже они одинаковые - возможно сделать функцией и вызывать из нужных мест .... уменьшится код
    Прикрепления: 7281130.rar (9.1 Kb)


    Сообщение отредактировал snmar4enko - Воскресенье, 22.04.2018, 16:18
     

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

    Новый скетч 2.0.4
    Опрос датчиков температуры и обновление их показаний на LCD экране для простоя IDLE и пайки привел к одинаковому виду и вынес в функцию. Убрал пару - тройку не используемых переменных.

    Цитата mon ()
    DimmerUP целое число,в Output1 нет
    откорректировал код "войны форматов" и заодно ввел задержку после детектора нуля.

    Получилось уменьшить скетч:
    Скетч использует 23690 байт (77%) памяти устройства. Всего доступно 30720 байт.
    Глобальные переменные используют 1139 байт (55%) динамической памяти, оставляя 909 байт для локальных переменных. Максимум: 2048 байт.

    Тестируйте пишите....
    Прикрепления: 0094733.zip (9.5 Kb)


    Сообщение отредактировал snmar4enko - Воскресенье, 22.04.2018, 21:49
     

    fedorchuk007
    Дата: Вторник, 24.04.2018, 08:12 | Сообщение # 96        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    Народ,помогите новичку может кто нибудь дабросать схему подключения силово части  по скетчу 2.0.4
    или розписать пины подключения
     

    snmar4enko
    Дата: Вторник, 24.04.2018, 08:55 | Сообщение # 97        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    индикатор lcd (RW, EN, D4, D5, D6, D7)
    LiquidCrystal lcd(4, 5, 6, 7, 8, 9)
    Можно подключать по I2C шине расскоментировав и закоментировав соответсвующие строки. Также необходимо будет переназначить далее A4 и A5.

    кнопки
    upSwitchPin = 14 (A0)
    downSwitchPin = 15 (A1)
    cancelSwitchPin = 16 (A2)
    okSwitchPin = 17 (A3)

    Термодатчики
    //назначаем пины уселителя термопары MAX6675 "НИЖНЕГО" нагревателя clk=sck cs=cs do=so
    byte thermoCLK2 = 13;  //=sck
    byte thermoCS2 = 10;   //=cs
    byte thermoDO2 = 12;   //=so
    //назначаем пины уселителя термопары MAX6675 "ВЕРХНЕГО" нагревателя   clk=sck cs=cs do=so
    byte thermoCLK = 13;  //=sck
    byte thermoCS = 11;   //=cs
    byte thermoDO = 12;   //=so

    Нагреватели
    D19; D3; //верхний D19 (A5)  и нижний D3  выходы нагревателей (силовой Симмостор + фазовым MOS3023 или подобным) . Если у вас твердотельное реле включаемое по потенциалу то смотрите на ветку скетчей 1.4.*

    D2 - вход сетевой синхронизации для силовых ключей. Я использую блок питания от польской антены. 12 вольт стабилизирую LM7805 для питания самой схемы и  дополнительно двумя диодами выпрямляю две полуволны сети (естественно с выхода транса) и через резистор 2.7ком - 5.1ком подаю на 4.7вольта стабилитрон. Урезанные импульсы со стабилитрона и подаю на D2.

    Звук (пьезоизлучатель) на D18 (A4). Я пробывал активный пятивольтовый - тоже работает но по ритму.

    Вентилятор внутренний D20 (A6)  для дополнительного охлаждения внутренних радиаторов,
    и D21 (A7) - для внешнего вентилятора охлаждения платы и нагревателей в конце пайки ....

    К сожалению схему пока нарисовать не могу, видео работы тоже не чем снять ....

    Можно и так подключить как на рисунке только MOS нужен без детектора нуля  симмистор BTA41-600 или мощней.
    Прикрепления: 5178371.jpg (48.5 Kb) · 7172882.jpg (35.9 Kb)


    Сообщение отредактировал snmar4enko - Вторник, 24.04.2018, 09:11
     

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

    а такая схемма подходит?
    Прикрепления: 6219677.png (93.2 Kb)
     

    snmar4enko
    Дата: Вторник, 24.04.2018, 11:45 | Сообщение # 99        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    В принципе да.
    Только детектор сети ловит одну половулну. (Через диодный мост  первичку PC814 нужно подключить) 
    и на запирание симмистора на вход 360-510 ом как R38 во второй схеме
    Цитата snmar4enko ()
    7172882.jpg(35.9 Kb)
     

    fedorchuk007
    Дата: Вторник, 24.04.2018, 14:16 | Сообщение # 100        
    Сержант
    Группа: Пользователи
    Сообщений: 24
    Статус: Offline

    Хорошо,возможно вы перепутали PC814 c PC817?Для 817 нужен диодный мост,или ето я туплю,набросайте схему для новичка
     

    Cinema
    Дата: Вторник, 24.04.2018, 14:37 | Сообщение # 101        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

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

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

    snmar4enko
    Дата: Вторник, 24.04.2018, 18:04 | Сообщение # 102        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Цитата fedorchuk007 ()
    возможно вы перепутали PC814
    Нет - на вашей схеме  оптопара детектора нуля (внизу) PC814, Диодный мост - переменка подается с левых выводов резистор 43ком, Плюс на 2 вывод опторары, Минус на 1й. Если буде юзать PC817 то для подстраховки паралельно входу встречно диод. 

    Еще строку 
    
    Код
    attachInterrupt(0, detect, FALLING);  
    // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень
    необходимо поменять на 
    
    Код
    attachInterrupt(0, detect, RISING);

    Добавлено (24.04.2018, 18:04)
    ---------------------------------------------
    Посмотрите это видео 


    Анализировал программный код. Все довольно просто работает. Два шима 8бит (256 значений) - аналог
    

    Код
    analogWrite(pin, value)

    Ручный режим - тупо значение мощности в процентах 0-99 записывается как analogWrite, такой режим работает: нагрев до определенной температуры с последующей почти стабилизацией на определенном уровне.

    Автоматический режим - ПИД регулирование только с Интегрирующей составляещей. Работает примитивно: от измеренной температуры отнимаем установленную, если меньше нуля - добавляем до мощности 1 процент, если больше нуля уменьшаем мощность на 1 процент, естественно с проверкой на 0 и ограничения максимума мощности.

    Пайка по профилю - посекундный масив температур разных этапов нагрева и охлаждения, причем в самом масиве есть ускорения и торможения по скорости роста (спада температур). Судя по видео измерение температуры и установка мощности при нагреве происходит 2-3 раза в секунду, хотя профиль выполняется посекундно.
    Необходимо разобраться с частотами ШИМ в ардуинке чтобы адаптировать под твердотельное реле.

    Можно попробовать организовать такие алгоритмы работы в ветке 1.4.* или еще одной, так как это будет немного другое по сравнению с тем что есть.
     

    Cinema
    Дата: Вторник, 24.04.2018, 19:27 | Сообщение # 103        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    Цитата snmar4enko ()
    организовать такие алгоритмы работы в ветке 1.4.* или еще одной, так как это будет немного другое по сравнению с тем что есть.
     Завсегда поддерживаю. Важно только не потеряться в разных ветках с разными алгоритмами работы...
    Еще, если возможно, посмотрите на один метод управления:
    

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

    snmar4enko
    Дата: Среда, 25.04.2018, 06:59 | Сообщение # 104        
    Лейтенант
    Группа: Пользователи
    Сообщений: 68
    Статус: Offline

    Цитата Cinema ()
    не хочу случайно его отрекламить тут
    Думаю - это не наш вариант (графический дисплей с Мега в придачу)

    Теперь по прошлому видео ..... ПИД и ШИМ можно организовать обнобайтными переменными .... но как организовать те же 14 профилей плюс 4 преднагрева плюс 4 охлаждения  итого 22 масива  до 120 значений - с этим нужно что-то думать потому как если переменными их задавать то динамической памяти не хватит. Можно в цикле с условием крутить - обычно заданная температура увеличивается или уменьшается на 1 градус а по условиям внутри цикла притормаживание или ускорения роста (спада) температуры. Или как у нас просто тупо рост на градус но за меньший или больший чем 1 секунда промежуток времени. Но в этом случае теряются все те механизмы стабилизировать вылеты температур от заданной. Необходимо еще подумать над частотой шим, ведь детектор нуля в твердотельном реле включается в начале полуволн. А значения ШИМ задаются такие же как и мощность в процентах  0-99% - это тоже самое что мы вводили полуволну для регулировки нагрузки  на версиях 2.0*

    Общим вырисовывается перспектива с одним термодатчиком и двумя твердотельными реле с выводом на LCD1602
     

    Cinema
    Дата: Среда, 25.04.2018, 10:30 | Сообщение # 105        
    Генерал-майор
    Группа: Проверенные
    Сообщений: 618
    Статус: Offline

    snmar4enko Я имел ввиду не реализацию в "железе"  sad . Напротив - там принцип управления нагревом интересный: а) установили температуру, до которой надо нагреть низ и указали время, за которое хотим, чтоб была достигнута заданная температура, стартуем, и контроллер сам рассчитывает нужный алгоритм нагрева; б) догрели до нужной температуры, можем задать полочку на достигнутой температуре, в течении нужного нам времени (например для выравнивания температуры нижней и верхней поверхности самой платы, или для активации флюса, или для гарантированного расплавления шаров). Шагов несколько.
    

    Кстати, обратите внимание на информацию (с указанного поста Dmitrysh и далее от bamik:
    

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

    Поиск: