Очередная паяльная станция

aleksandr23uam
Offline
Зарегистрирован: 22.01.2017

Доброй ночи! Подскажите, пожалуйста какие разъёмы подойдут для паяльника и фена GX12 или GX16 (стандартные на паяльнике и фене)?

aleksandr23uam
Offline
Зарегистрирован: 22.01.2017

Добрый день! А что нового в прошивке 1.5?

aleksandr23uam
Offline
Зарегистрирован: 22.01.2017

Вижу, что она универсальная для 16*02 и для 20*04. А что ещё нового?

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

А прошивка для станции версии 2,0 которая SS7 там тоже универсальная она , потходит для обоих жк-модулей ? 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

sparcozvuk4723 пишет:
Lm358 или AD8222 ?

8222 требует двуполярного питания и в этой схеме не будет работать.

Цитата:
И еще не впаивать ту часть которая идет на фен , zero cros , и пищалку , будет ли схема работать ?

Будет.

aleksandr23uam пишет:
GX12 или GX16?

На фен я бы GF12 не ставил, по соображениям надёжности и безопасности - контакты очень близко, а питается от сети. Да и запаивать 8 концов в мелкий разъём ещё то удовольствие...

Цитата:
А что ещё нового?

Переделано поведение фена на подставке как у КПФ (#1).

pter
Offline
Зарегистрирован: 15.02.2016

Здравствуйте,подскажите кто собирал по печаткам RUSLAN какое сопротивление на разьеме,где подключается термопара фена без фена,заранее благодарю.

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

подскажите можно ли данные реле применить в ПП Руслана ? 

на стадии сборки

 Еще вот вопрос , по датащиту распиновка PC817 такая как я нарисовал , а на ПП наоборот . Правильно ли я впаял PC817 у меня первая нога PC817 стоит где я поставил цифру 1 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

sparcozvuk4723 пишет:
подскажите можно ли данные реле применить в ПП Руслана ?

Можно, с корректировкой рисунка платы под их выводы и питанием катушек от 12 вольт, а не от 24.

Цитата:
Правильно ли я впаял PC817 у меня первая нога PC817 стоит где я поставил цифру 1

Нет.
На плате всё верно нарисовано. Вид платы - со стороны печатных проводников, поэтому, перед печатью необходимо установить галку "зеркально". На эти грабли в теме уже наступали.
Жаль такую красоту, но плату придётся переделывать. С другой стороны, под свои реле скорректируете...

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

aleksandr23uam
Offline
Зарегистрирован: 22.01.2017

Добрый день. Не помню были ли в посте вольтаж и тип конденсаторов C1, C3 и C2, а также мощность резисторов R5, R6? Кретичен ли номинал резисторов?На 0.5W 240k не нашел.

Русл@н
Offline
Зарегистрирован: 14.04.2016

Вы печатку перевернули. Вчера сам на эти грабли наступил причем дважды, разрабатывал печатку для лабраторного блока питания и хорошо хоть детали не стал запаивать(

Я обновлю архив на днях и подпишу нужно ли зеркалить печатку. И добавлю новый скетч в свой архив.

pter о чем речь вообще? Станция пока без корпуса могу замерить

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

aleksandr23uam пишет:
вольтаж и тип конденсаторов C1, C3 и C2, а также мощность резисторов R5, R6?

Вся, что до 1 мкф - керамика, плёнка. Всё, что выше - электролиты, на напряжение не ниже того, что питает цепь, а лучше с запасом, повыше.

Цитата:
Кретичен ли номинал резисторов?

Не крИтичен, можно и уменьшить (150к-220к). Ниже 0.25 ватт я бы не ставил из-за допустимого напряжения. Я про резисторы на входе узла контроля 0 сети.

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

Руслан а где архив будет находится где его потом искать ? 

А и еще ваш скетч он универсальный для жк модулей 1602 и 2004 с I2C модулем ? 

Русл@н
Offline
Зарегистрирован: 14.04.2016

Кто собирает станцию по моей плате перекачайте архив, из бонусов новая прошивка с допиленным меню и пояснения к сборке со стопкой фотографий собранной станции. Эта ссылка будет постоянной и по ней будет доступна документация для сборки станции с обновлениями если такие появятся.

 

pter
Offline
Зарегистрирован: 15.02.2016

Здравствуйте,сопротивление между плюсом и минусом на плате,где подключается термопара фена,заранее благодарю за ответ.

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

Русл@н

- сделайте/добавьте (или преобразуйтете) архив в UTF8 (для "не win" пользователей)

- для "незнающих", прокомментируйте данный участок (прямо в коде), если есть какие то магические особенности необходимости "пустой операции"!?

/* it's fuckin' magic! */
#if 1
__asm volatile ("nop");
#endif

 

p.s. не для меня лично, для общества :о)

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

для чего еще на плате вот эти пины ? 

как мне подключить свое реле за место того что на 2 рисунке ? 

 1-2 к 5-2 ( катушка ) 

А 3 с 3 со , 5 с 1   ???

И еще вопрос напряжение 5 вольт можно подавать с 24 вольтовой части через кренку 5 вольтовую ?  ( речь идет о плате Руслана )

Русл@н
Offline
Зарегистрирован: 14.04.2016

sunjob сделайте, я добавлю в архив. Все вопросы по прошивке задавайте автору темы его зовут Олег.

sparcozvuk4723 в разъем концевиков подключается геркон фена. Перекачайте архив, я там обновил плату и подписал нужный пин.

Реле:

5-2 подаете питание+24в или +12 в зависимости от выбранного реле.

1-3 это замыкаемые контакты реле. при включении питания на реле эти контакты смыкаются.

4-й контакт реле не используется.

По поводу кренки, я уже писал в начале темы. Можете использовать кренку, но обязательно садите ее на радиатор и обвязывайте кондерами как по даташиту. Есть некоторые виды кренок которые при пробое дают полное напряжение на выход, это грозит выгоранием части схем.

Я использовал отдельный преобразователь 220-5, вы можете использвоать типа LM2596, эта при выгорании просто обрубит напряжение.

Мой архив только под 1602 дисплей. Под все виды дисплеев подходит архив Олега с первой странички. Ссылку на мой архив я попросил добавить на первую страничку, обновляться будет содержимое папки, ссылка будет постоянной.

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

Русл@н 

> сделайте, я добавлю в архив.

и сделал бы ... для сообщества-а-а ... :о) но я на линуксе, откуда мне знать какие у ВАС в архиве названия файлов/папок ... в архиве их под сотню, поди, наберется, и все они распаковываются в кракозбру, если кодировка не соответствует "системной"... 

> Все вопросы по прошивке задавайте автору темы, его зовут Олег. 

этот код я увидел у Вас, у Олега его не было (может сейчас он что то добавил, но "этого ASM-NOP" я не видел)
 
хорошо, вопрос Олегу: для каких целей используется ассемблерная вставка "NOP"?
 
> его зовут Олег.
:o) 
 
 
Русл@н
Offline
Зарегистрирован: 14.04.2016

Для линукса есть WIN RAR. Самому мне этим занимать некогда да и нет нужды. Дам подсказку, ЯД сам распаковывает архив и вы можете тащить из него документы напрямую. Этот код появился в версии прошивки 1.5.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

sunjob пишет:
для каких целей используется ассемблерная вставка "NOP"?

Костыль для компилятора.

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

ПРиветствую народ подскажите нужно ли что либо тут между собой замыкать чтоб паяльник запустился . 

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

И куда еще черный провод от паяльника (земля ) припаять на плату можно ? 

pter
Offline
Зарегистрирован: 15.02.2016

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

Olegk помогите запустить скетч с 

/* HotAir PI regulator */
//void HA_PI() {
    //int err = SetHotAirT - GetHotAirT;
    //float tmp_power = ((Kp * err) + (Ki * integral));
    //float max_power = map(SetHotAirT, min_hotair_temp, max_hotair_temp, 10.0, 60.0);
    //if (tmp_power < max_power && tmp_power > 0.0) {
       // integral += err;
   // }
    //HAPower = constrain(tmp_power, 0.0, max_power);
   // CalctImpulseControl();
//}

при этом коде на питание нагревателя идет 33 в,но если я ставлю преведущий код идет 220в,заранее благодарю за ответ.

при этом сетче
sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

to Rusl@n

не в линуксе и архиваторе дело!

>распаковываются в кракозябру, если кодировка не соответствует "системной"...  

https://ru.wikipedia.org/wiki/%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4

tag: кодировка, системная кодировка, UTF8

> занимать некогда да и нет нужды

не занимайтесь, кто же вас заставит?! :о) не для меня (себе я распаковал "своими методами и инструментарием"). это бы следовало сделать для других пользователей (для сообщества). пришел человек, не особо разбирающийся в "некоторых темах", с лету не распаковал, получил нечитаемые названия файлов/каталогов... ну итд

### about ASM / NOP ###

про эту фичу/проблему я слышал/натыкался в инете, но не придавал значения, и по сути "забил и забыл"

проблема, я думаю, все таки в самом главном :о) - в Пре_ПреПроцессоре ардуино, его авторы постоянно ведут "какие-то изменение, эксперименты..." (а собственно они более и ни чего серьезного не делают (*), только Arduino_IDE и механизм Пре_Пре_Процессора, потому как привязаны к AVR_GCC и прочим GNU-Tools инстурментариям... ну и естественно, какая то поддержка основных библиотек ведется, но так же очень плохо :о), постоянно сталкиваешься с тем, что хелп для старой версии, для новой уже и кол-во аргументов/последовательность другая, то уже не работают/не так работают библиотеки с новой версией андурины итд) поэтому надо держать "нос пистолетом" со всеми этими новшествами/обновлениями/актуализациями андурины :о) и, возможно, не спешить "обновляться" (и для себя вести хронологию версий с их особенностями... :о))) прямо как в армии "а утром одевать на свежую голову..."

(*) работа, конечо-же ведется :о), но очень много недоработок

... и с этими "обновлениями" доходит (особенно в последнее время) до того, что выпуская новую стабильную "Arduiino-IDE" - получаем сильно глючящую среду, обратную несовместимость... итд, это я, надеюсь, для большинства не новость, все с этим сталкивались

в свое время, когда интересовался этой самой проблемой IFDEF ASN NOP, тестировал приводимый в статьях код, и проблем не проявлялось... потом уже позднее, понял, прийдя к этому экпериментально, что "самая оптимальная и стабильная" это версия 1.5.x-1.6.x (и далее использовал 1.6.7, но только из-за особенностей поведения "сборки из коммандной строки/ без IDE", хотя наиболее "и быстрая и стабильная" является 1.5.8, но не суть, это тема отдельного топика)

набегом проверил код по ссылке Олега "Костыль для компилятора", самый же первый кусок кода отработал без ошибок

одинаково для обоих условий 

#if defined(FOO)
#ifdef FOO

дальше рыть не стал, если будут уточнения с косяками, пишите, рассмотрим

будут аппонентирующие, ссылки, комменты, идеи - все пойдет на пользу!

p.s. а вообще, да, неприятно натыкаться на такие неочевидные грабли

### UPDATE ###

решил все таки дотошно рассмотреть пример кода по ссылке

1й пример кода, как я уже писал, собрался без проблем, приводить текст, надеюсь не надо, более подробно рассмотрим второй пример:

в нем выдается ошибка

‘File’ was not declared in this scope

ну дак и чего мы хотим? что у нас есть этот самый File? тип, класс, шаблон... что?

для жесткости эксперимента, смотрим исходники ардуино, натыкаемся на определение в FileIO.h, подключаем его и пример собирается без ошибок, со всеми возможными вариантами "enable/disable FOO", "ремарк/анремарк кода ASM_NOP"... итд

#include <FileIO.h>

/*
#if 1
__asm volatile ("nop");
#endif //*/

#define FOO

void setup()
{
Serial.begin(9600);
while(!Serial);
Serial.println("Test...");
}
 
void loop() {;}
 
#ifdef FOO
byte fileReadln(File myFile, char *buffer, byte count)
{;}
#endif

видимо, все таки, это проблемы версий/препроцессора...

собирал в Arduino 1.5.8 & 1.6.7, все имхо

### ADD ###

предполагаю, что последний оператор #endif, идущий после asm_nop - закрывает какую то "хрень", которую накрутил пре_пре_процессор андурины, а первый оператор #if 1 - этим же препроцессором каким либо образом игнорируется/нейтрализуется, если у кого либо данный код-тест не собирается, т.е. реагирует "нужной ошибкой", можно попробовать вставить простой закрывающий #endif, и посмотреть как поведет себя сборка в таком случае :о)

#include <FileIO.h>

/*
#if 1
__asm volatile ("nop"); //*/
#endif //*/

#define FOO

... and more ...

или наоборот, открывающий оператор препроцессора делает свое дело

#include <FileIO.h>

#if 1
/*
__asm volatile ("nop");
#endif //*/

#define FOO

... and more ...

во всяком случае, я все так же склоняюсь к косякам пре_препроцессора, связанным со множественными взаимо/вложенностями препроцессорных частей кода (сам одурел от формулировки :о)

 

удачных сборок :о)

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

 

Херня какая то вообще выпаиваю реле напряжение появляется на плате на контактах которые рассчитаны для катушки реле , впаиваю все напряжение куда то исчезает 

Что делать где что искать ? 

Теперь уже на одно реле идет 24 вольта а ну другое 15 вольт ( это тоже все замеры без реле впаянных)

+5 вольт на схему даю от зарядки телефона она 2 амперная 

24 вольта стабилизированные 5 ампер 

 

какой тут программатор выбирать для записи скетча на ардуину ?

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

> какой тут программатор выбирать для записи скетча на ардуину ?

ни какой, эта опция для прошивки бутлодера через ISP

для прошивки через "стандарт", т.е. через бутлодер - просто выбираете "плату" и "контроллер/процессор" (точнее сказать не могу, у меня англоязычный интрыфейс, а ваша фотка плохочитаема), ... а дальше просто шьете... :о)

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

А как схема работает Ардуина дает какое то напряжение на оптопару , оптопара с другой стороны открывается начинает пропускать через себя + плече  дальше через токоограничивающий резистор идет на транзистор он в свою очередь открывается и начинает пропускать уже отрицательное плече на катушку реле , реле срабатывает и дает + напряжение паяльника . а диод 1n4148 стоит для защиты ?

минусовая часть работает подобно только с шим и через транзистор irfz44( кстати я заменил на 50N06 - но это вроде как полный аналог ) 

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

когда речь идет в стиле "репки" (дед за репку, бабка за дедку, внучка за бабку...) - то лучше прикреплять к сообщению схему/часть описываемого участка, так будет удобнее разбираться

под рукой схемы нет, но гипотетически понятно, о чем речь

диод, который параллельно обмоткам с обратным включением? он необходим для:

1. быстрого "отпускания" реле.

2. защита от "возможно обратных выбросов" индуктивности. (это вообщем то маловероятно, но все же, возможно, что при достаточной индуктивности - может "шарахнуть" обратным напряжением, при этом задрав напряжение на транзисторе до пограничных значений, это хоть импульс, но все же....)

 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

pter пишет:
при этом коде на питание нагревателя идет 33 в,но если я ставлю преведущий код идет 220в

Я не понимаю, про что вы спрашиваете. Вообще.
А также, где и что пытаетесь измерить, а главное - зачем?

sparcozvuk4723 пишет:
но питание на реле не идет , в чем может быть причина ?

Если вы плату ещё не переделали, то проблема в плате - она неправильная. См. выше.

Цитата:
И куда еще черный провод от паяльника (земля ) припаять на плату можно ?

По "концевикам".
Фен. Геркон фена подключён на общий с термопарой провод и соединяется, естественно, на общий провод платы.
Второй вывод геркона подключается к пину 10 дуины, который подтянут внутренним резистором к + питания.

Паяльник. Заземляющий провод паяльника используется в качестве "датчика"и подключается на общий провод.
Сзади корпуса выведен разъём, куда втыкается провод, с крокодилом, которым цепляемся к пружинке подставки.
Этот провод должен быть подключен к пину 9 дуины. Пин подтянут также к + питания внутренним резистором МК.
При помещении/снятии паяльника через пин 9 определяется активность пользователя и происходит сброс таймера отключения.
Если есть правильное заземление домашней сети, то общий провод ПС можно подключить к заземляющему контакту шнура питания через резистор в 1 мегаом. У меня не подцеплен и не планируется.
Возможно, вопрос спорный, но всё в  ваших руках, каждый может изобрести свой вариант - микрик на подставке, геркон или шариковый датчик в ручке, оптодатчик, и.т.д. Для этого на разъём "концевики" выведены шины питания.

Если не подключить провод от геркона к пину 10 просто не будет работать дежурный режим. Аналогично с пином 9 - не будет сбрасываться таймер при пользовании паяльником, но сбрасывать таймер можно коротким нажатием на кнопку включения.

Русл@н
Offline
Зарегистрирован: 14.04.2016

sunjob Игнорируй меня и мои сообщения мил человек, утомил, еще в прошлом году.

sparcozvuk4723 давайте без паники) Вы давно скачивали мой архив? Вы вообще по моей плате делаете? если у вас разные напряжения на реле, это означает что ошибка в разводке платы или в монтаже. Перекачайте архив, я вчера все подписал на плате, вопросов остаться не должно.

Как заливать скетч можете посмотреть в моем видео https://www.youtube.com/watch?v=mGzsoiPGZBM&t=10s.

OlegK я в архиве все подписал прямо на плате, не знаю почему самоделкины не хотят прочитать подписи к разъемам)

 

sunjob
sunjob аватар
Offline
Зарегистрирован: 18.07.2013

а то чем я занимаюсь? и вы тоже, начинайте прямо сейчас! :о)

... один из участников форума ... :о)))))))))))))))))))))))))))

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

Я скачал ваш архив потом развел новую плату зеркально . Теперь я уже ардуину нано перепаял на ардуино уно но на ней нет пинов А- А7 как оказалось , в будущем поменяю щас для теста без дисплея хочу попробовать . 

БЕДА ТЕПЕРЬ ТАКАЯ НАЖИМАЯ КНОПКУ ВКЛ ПАЯЛЬНИК ИЛИ ВКЛ ФЕН , реле щелкнет и тут же вырубается обратно . А на фене такая же беда шелкнет и вырубается но зато на той части которая идет через транзистор там появляется 24вольта 

 

Реле поставил вот такие без изменений печатной платы 

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

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

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

sparcozvuk4723 пишет:
без дисплея хочу попробовать .

Смысла, в общем-то, никакого.
Без дисплея вы  ничего не видите, ни температуры, ни индикации защиты.

Цитата:
БЕДА ТЕПЕРЬ ТАКАЯ

Практически уверен, что срабатывают защиты, т.к. не настроены усилители термодатчиков...

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

а какие сопротивления нужно там установить заместо подстроечных резисторов ? 

И в мониторе порта в ARDUINO IDE будут отображаться эти ошибки если все это подключить понажимать и подключить к ПК ?

Да хотя бы чтобы просто запустился ( темболее стартует если с 100 примерно то нажал 15 раз вот 250 градусов )  ))))) 

Когда этот экран с модулем I2C  придет с Китая фиг его знает , прошлые посылки я почти 2 месяца ждал и до сих пор еще посылок 7 не пришли 

А что значит НАЧАЛО и ШКАЛА надписи рядом с подстроечниками ? ( что за начало чего начало , и что за шкала ) 

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

sparcozvuk4723 пишет:
И в мониторе порта в ARDUINO IDE будут отображаться эти ошибки если все это подключить понажимать и подключить к ПК ?

Нет. Вывод нужных переменных можете добавить самостоятельно.

Цитата:
А что значит НАЧАЛО и ШКАЛА надписи рядом с подстроечниками ?

Читайте тему. Все вопросы уже освещались.

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

Блин сразу и не заметил пины А6-А7 как раз выход с ЛМ358 на ардуину а у меня их вообще в ардуино нет УНО нет 

pter
Offline
Зарегистрирован: 15.02.2016

Зравствуйте,Olegk измерял я где подключается нагреватель фена так как с текущим скетчем фен при выставленных 100 нагревается только до 30 градусов,а если ставлю преведущий вариант скетча происходит нагрев даже с перелетом до 140 градусов(защиту №3выключил) при первом включении и потом опускается до 100,но бывает прыгает в районе 110-120 и неопускается до 100,заранее благодарю за ответ.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

pter, какой оптосимистор установлен?

Русл@н
Offline
Зарегистрирован: 14.04.2016

sparcozvuk4723 пишет:

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

В предыдущей версии платы у меня был кончик перемычки на этом пине. Я его убрал по простому соображению, чтобы небыло косяков с питанием. Насколько я помню ардуинка сама выбирает какое питание использовать, в противном случае она бы от +5в на входе не запустилась. Не нужно ничего переделывать в моей плате, все обдумано было тысячу раз.

Под UNO вам нужно переделывать скетч, что мешает купить нано?  и собрать все как в проекте, а не делать себе лишних проблем?

pter
Offline
Зарегистрирован: 15.02.2016

Здравствуйте,Olegk  оптосимистор у меня стоит MOC3023.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

pter пишет:
MOC3023

Ну нормально.
А какие версии прошивки грузили? Последнюю 1.5 и какую предыдущую?

Русл@н
Offline
Зарегистрирован: 14.04.2016

Олег, защита в последней версии слишком острая) При снижении температуры паяльника кнопками защита иногда дуркует и отрубает канал с грозным писком, как ее загрубить слегка?

sparcozvuk4723
Offline
Зарегистрирован: 24.03.2017

Все запустил я свою станцию , ток паяльник жарит очень сильно ну это я думаю из за калибровки 

А какая стартовая температура стоит на паяльнике в прошивке при включении ? 

Впаял ардуино нано прошивка Руслана 2017 SS2 

pter
Offline
Зарегистрирован: 15.02.2016

Здравствуйте,Olegk у меня работают версии скетча,где применялся это код если я поставлю его в версию 1.5 она тоже работает,но ситуация как описывал выше.

/* HotAir PI regulator */
void HA_PI() {
    int err = SetHotAirT - GetHotAirT;
    float TempPower = ((Kp * err) + (Ki * integral));
  if (TempPower < 100.0 && TempPower > 0.0) integral += err;
    HAPower = constrain(TempPower, 0.0, 100.0);
    CalctImpulseControl();
}

вот скинул в монитор ситуация которая у меня сейчас с этим кодом

50
80
114
131
133
128
119
123
121
118
117
116
115
116
115
113
115
114
112
112
111
112
110
112
109
111
113
109
110
112
109
108
113
112
106
109
116
115
109
105
106
104
115
118
114
107
105
107
103
107
107
103
110
111
107
104
110
109
104
105
109
106
101
112
115
112
106
103
110
109
104
105
110
108
102
105
105
101
110
113
110
104
104
110
109
103
104
109
107
102
105
112
111
106
101
111
114
112
105
101
117
122
120
114
106
102
109
110
106
101
112
116
113
107
101
108
111
108
102
105
114
114
110
103
105
55
79
103
115
125
126
121
115
118
114
120
121
116
114
115
112
113
113
111
112
109
118
121
116
109
112
111
108
109
109
111
108
108
109
106
111
111
107
109
113
111
106
108
112
110
105
108
117
117
112
105
107
114
114
109
103
111
114
110
104
107
114
113
108
102
110
112
108
103
106
114
114
109
103
105
116
118
114
107
103
108
107
103
106
111
109
104
102
104
101
106
107
103
104
108
106
87
84
80
80
83
91
98
103
104
104
101
98
97
96
98
99
101
101
102
101
100
99
99
99
100
100
100
101
100
100
100
100
100
100
100
100
100
101
100
100
100
100
100
100
101
101
101
100
100
100
100
100
99
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
101
100
100
100
100
100
100
100
100
100
100

а вот ситуация в текущем скетче без изменений

38
39
41
42
44
45
46
47
48
48
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
53
54
53
54
53
53
53
53
53
53
53
53
53
53
54
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
53
53
54
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
48
47
48
48
48
49
49
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
52
53
53
53
53
53
53
53
53
53
53
52
53
53
53
53
53
53
53
53
53
53
53
53
54
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55

P.S Olegk разобрался из-за чего не работало был запаян транзистор кт502,а нужен был кт503 в узле детектора нуля,спасибо за помощь в сборке станции,просто странно почему с тем настройками работает,но нет стабильности температуры.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

sparcozvuk4723 пишет:
А какая стартовая температура стоит на паяльнике в прошивке при включении ?

#define default_temp 280
Это при первичном включении.
А потом (при выключении) запоминатся текущая, которая загрузится при следующем включении.

Русл@н пишет:
При снижении температуры паяльника кнопками защита иногда дуркует и отрубает канал

Номер защиты бы узнать, что бы поковырять...

pter пишет:
просто странно почему с тем настройками работает,но нет стабильности температуры.

Я так понял, что теперь работает нормально?
А вообще, малость путанно, конечно выражаете мысли, но попробую растолковать.
Возьмём более раннюю версию регулирования:

void HA_PI() {
    int err = SetHotAirT - GetHotAirT;
    float TempPower = ((Kp * err) + (Ki * integral));
  if (TempPower < 100.0 && TempPower > 0.0) integral += err;
    HAPower = constrain(TempPower, 0.0, 100.0);
    CalctImpulseControl();
}

Тут видно, что итоговая мощность может иметь значения от 0 до 100%. При низких заданных температурах (до 300) град. она может оказаться несколько избыточной при старте и практически всегда возникакет перерегулирование, что видно по вашим данным из монитора - пиковое значение 133 градуса, затем затухающие колебания и выход на заданные 100 град., которые держатся уже стабильно. Можно ограничить максимальное значение на уровне 50-60 и даже 30. При 30 будет относительно медленно набирать температуры выше 300 град., но перерегулирование будет также меньше.

В другом варианте:

void HA_PI() {
    int err = SetHotAirT - GetHotAirT;
    float tmp_power = ((Kp * err) + (Ki * integral));
    float max_power = map(SetHotAirT, min_hotair_temp, max_hotair_temp, 10.0, 60.0);
    if (tmp_power < max_power && tmp_power > 0.0) {
        integral += err;
    }
    HAPower = constrain(tmp_power, 0.0, max_power);
    CalctImpulseControl();
}

максимальная мощность динамически изменяется в заданном диапазоне по принципу - "меньше заданная температура - меньше максимальная мощность", что улучшает точность набора температуры, хотя и с небольшим ущербом для скорости набора. Диапазон 10-60 определён экспериментально и при желании его можно покорректировать "под себя".

Равно как и коэффициенты, в обоих вариантах
#define Kp 1.0
#define Ki 0.05 //0.005
Коэфф. пропорциональности Kp можно не трогать, а вот интегральный коэфф. Ki можно тоже подбирать, сравните наглядно, к примеру, поведение при величине 0.05 и при 0.005.

Miamin
Offline
Зарегистрирован: 29.02.2016

Олег добрый день! Собрал ваш проект)). Есть кое какие проблемки. По паяльнику все отлично, работает держит температуру стабильно.

А вот по фену есть вопросы, если поможете буду благодарен. До этого собирал другой проект но реализовал в нем управление фена как у вас, на моем старом варианте работало все стабильно,не было перелетов и набор был быстрый. Отличия от вашей, реализация преоброзованиея термопары, и использование map.

На новой версии прописал теже коэффициенты, но фен не держит туже стабильность и при пуске выскакивает ошибка 3, есть большой перелет. Уменьшил можность map(SetHotAirT, min_hotair_temp, max_hotair_temp, 10.0, 60.0); поставил значения 10.0,20.0. Не помогло.

Ki ставил и 0,003 и 0,005 и 0,05. Большой перелет при запуске.

Miamin
Offline
Зарегистрирован: 29.02.2016

На прошивке 1,5 раскоменетировал построение графика, в терминал сыпятся только зщначение температуры. Как мне построить график?

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

Miamin пишет:
Олег добрый день!

Приветствую.

Цитата:
Отличия от вашей, реализация преоброзованиея термопары, и использование map.

Т.е. версия 1.5, как есть, только преобразование через map()?

Цитата:
но фен не держит туже стабильность и при пуске выскакивает ошибка 3, есть большой перелет.

Там в 20 град. порог установлен, если что.
Можно на время настройки отключить эту защиту или увеличить порог.
Какой оптосимистор поставлен?

Цитата:
На прошивке 1,5 раскоменетировал построение графика, в терминал сыпятся только зщначение температуры. Как мне построить график?

В loop посмотрите, закомментированы две строки -
//Serial.print(Graph_count);
//Serial.print(";");
Я их комментил для другой программы, забыл вернуть обратно...

Miamin
Offline
Зарегистрирован: 29.02.2016

Добрый вечер! Полностью собрал ваш вариант! закоментировал защиту. Перелет большой 50г, уменьшил мощность фена до 50 перелеты стали меньше, но как ставлю меньше 50 температура перестает вообще подыматься.

Эти строчки нашел, графики вижу. но уже часа 3 как не могу подобрать коэфмценты для пи регулятора. подскажите, как вы  по графикам  подбирали.

OlegK
OlegK аватар
Offline
Зарегистрирован: 26.11.2014

pter, малость я погорячился с
"видно по вашим данным из монитора - пиковое значение 133 градуса, затем затухающие колебания и выход на заданные 100 град., которые держатся уже стабильно."
Решил построить график. Получилась хрень. Так быть не должно - колбасилось-колбасилось, с таким провалом в середине, а потом бах и резко стало стабильно...