Очевидно же, что нет - вы там в кучу всё собрали... Предыдущее сообщение не пробовали что ли?
Несложно же - при коротких нажатиях переключаем курсор и, соответственнно, выбираем, что будем регулировать энкодером или включать длинным нажатием.
"В длинном нажатии" смотрим, какой параметр выбран, если температура паяльника и он выключен, то включаем, если включен, то выключаем. Если же выбрана температура фена или обороты - то тоже самое, только с феном (вкл-выкл).
Полный код примерно такой будет -
/* Scan buttons */
void ScanButtons() {
/* HotAir stand switch */
if (swHotAir.update() && HotAirON) {
ResetHAcountdown();
Beep(50);
}
/* Solder stand switch */
if (swSolder.update() && SolderON) {
ResetScountdown();
Beep(50);
}
/* Encoder button */
if (Enc_Button.update()) {
if (Enc_Button.rose()) { // короткое нажатие кнопки
Beep(20);
Enc_ButtonPressTime = millis();
Enc_ButtonState = true;
} else {
if (Enc_ButtonState) { //перебираем параметр регулирования
(selectedMode < modeFanPWM) ? (selectedMode++) : (selectedMode = modeSolder);
}
Enc_ButtonState = false;
}
}
if (Enc_ButtonState) {
if ( millis() - Enc_ButtonPressTime >= 1000 ) { //Длинное нажатие кнопки энкодера
Enc_ButtonPressTime = millis();
Enc_ButtonState = false;
if (selectedMode == modeSolder) { // если выбор - "паяльник"
if (!SolderON) { // если выключено - включаем
SolderON = true;
SolderProtect = false;
prevSmillis = millis();
ActivateScountdown();
Graph_count = 0;
selectedMode = modeSolder;
SneedBeep = true;
} else { // или выключаем
SolderON = false;
MemSolder();
Beep(200);
}
} else { // если выбор - "нагреватель или вентилятор фена"
if (!HotAirON) { // если выключено - включаем
HotAirON = true;
HotAirProtect = false;
prevHAmillis = millis();
ActivateHAcountdown();
Graph_count = 0;
integral = 0;
selectedMode = modeHotAir;
HAneedBeep = true;
needCool = true;
} else { // или выключаем
HotAirON = false;
MemHotAir();
Beep(200);
}
}
}
}
На этой ноге, DIR которая, вообще что должно быть? Импульс какой или ещё чего? Она у меня просто в ЛОГ 1 висит и всё.
На STEP будут импульсы только во время вращения энкодера, а нога DIR меняет состояние, взависимости от того, куда крутим. Оно статическое, меняется при смене направления. Поэтому STEP отлавливаются прерыванием, в нём же смотрим, в каком состоянии DIR.
Так есть же уже решение для энкодера без переноса Zero Cross пина. Вчера кстати допилил макет. Сегодня тесты будут. По моим первым впечатлениям, конструкция очень даже годная.
Возможность то есть. А Вы трансформатор найдете такой? Всмысле адаптер убитый на 90 ватт от ноутбука фирмы HP.
Я вот тут чего подумал, товарищи собиралкины. Надо бы автора отблагодарить то за труды его в нашу сторону. Старался человек как никак. Время свое тратил, силы, нервы...
Предлагаю скинуться. Кто за, отписываемся тут. Автор, оставь реквизиты или номер карты/кошелька для перевода "спасибо".
Здравствуйте,Umkalab можете весь проект выложить в один архив,заранее благодарю.OlegK вы в последнем скетче убрали защиту,когда температура не растет станция отключалась,заранее благодарю за ответ.
Спасибо, конечно, но не стОит )) Всё в рамках хобби, без какого-либо шкурного интереса.
В качестве благодарности буду рад увидеть фото готового аппарата, да и другим, думаю, будет интересно.
Ну и информацию о багах, если таковые всплывут.
pter пишет:
OlegK вы в последнем скетче убрали защиту,когда температура не растет станция отключалась
Да, убрал, там иногда были ложные отключения. Сейчас гоняю версию с расширенными защитами и их индикацией, что бы не гадать, что сработало. Если используете мои скетчи без сильных изменений, то могу скинуть потестить. Если интересно про защиты поподробнее, то могу вкратце накидать, что там, да как.
Здравствуйте OlegK, смотрел несколько проектов паяльных станций на Ардуино, но Ваш понравился больше всех. Есть огромное желание повторить, заказаны на Али фен, паяльник, дисплей и ИБП. В ожидании разбираюсь в теме кто что изменял относительно Вашего проекта. За основу беру одноплатный вариант от Русл@на , но под свою рассыпуху, если Вам нетрудно проверить мои изменения в плате. https://yadi.sk/d/wGmWlTDm3DpvjT
Здравствуйте,OlegK у меня возникла проблема если я использую скетч с поста#764(использую LM358)провожу калибровку станции и к примеру комнатная температура у меня получилась 18 градусов,то призаливке тестового сетча и преведущего скетча,где отключена защита комнатная температура сразу становится 9 градусов,как я понимаю скетч недолжен влиять на калибровку станции(строка /* if used not rail-to-rail OPA, then uncomment it */ разкоментирована),заранее благодарю за ответ.
у меня получилась 18 градусов,то призаливке тестового сетча и преведущего скетча,где отключена защита комнатная температура сразу становится 9 градусов
Опечатался я там.
Исправьте в WorkWithHotAir() и WorkWithSolder() #ifdef LM385 на #ifdef LM358
OlegK спасибо за помощь,теперь еще один вопрос(тестовый скетч) как я понял защита изначально включена,потому что обрыв термопары это ошибка 1,но защита в канале паяльника( /* Advanced protection: the themperature is not changed within 10 secs */)неработает,заранее благодарю за ответ.
Странно, проверил, вроде работает всё. Можете проверить - остывшую до комнатной темп. станцию нужно включить, но что бы нагреватель не грел (аппаратно - отключить провод на нагреватель или выдернуть предохранитель в его цепи, программно - в процедуре регулирования принудительно обнулить значение мощности). И включить канал. Температура не будет изменяться (нагрева же нет) и, примерно через 10 сек должна сработать защита.
Принцип работы: запоминаем текущую температуру, ждём секунду и сравниваем текущую с предыдущей. Если они одинаковы (0 или +1 град.), то наращиваем счётчик, если не одинаковы, то сбрасываем счётчик. Если счётчик насчитал 10 одинаковых температур за 10 сек, то срабатывает защита.
Защита автоматически выводится из работы при стабилизации температуры.
если Вам нетрудно проверить мои изменения в плате.
Навскидку -
1. 5В для питания дуины нужно подавать не на вход стабилизатора (Vin) а на 5 вольт.
2. Полярность электролита в правом нижнем углу перепутана.
Здраствуйте,OlegK проверил зашиту( /* Advanced protection: the themperature is not changed within 10 secs */) да при комнатной температуре она срабатывает(ошибка I7),но я нагрел паяльник до 100 градусов,отключаю паяльник достаю предохранитель и включаю паяльник защита срабатывает,но на это уходит когда минута когда две,но если температура ближе к комнатной защита срабатывает быстрее,попробовал нагреть до 400 градусов защита сработала через 5 минут когда температура на дисплее упала до 75 градусов,заранее благодарю за ответ.
но я нагрел паяльник до 100 градусов,отключаю паяльник
Так в этом случае температура не зависла, а падает. И падает тем медленнее, чем ближе к темп. окружающей среды, поэтому в конце остывания и срабатывает.
В вашем же случае должна отрабатывать предыдущая секция по падению температуры -
Смотрим условия - если текущая мощность больше 0 и предыдущая Т больше текущей Т и при этом Т менее заданной, то наращиваем счётчик. Сделайте после строки t_cnt++; вывод в сериал порт переменных prev_t, t_cnt и GetSolderT и наблюдайте, что там происходит приостывании.
Возможно, из-за того, что паяльник слишком медленно остывает, нужно поэкспериментить со временем (не 10 сек, а 3-5) или чуть поменять условие на "больше-равно"
if (prev_t >= GetSolderT && GetSolderT < SetSolderT)
у меня выводятся только данные о нагреве паяльника и попробовал поэксперементировать со временем ничего не изменилось,вносил изменения в строку которые вы показали ничего неизменилось.
pter, попробуйте так (заменяйте целиком функцию защиты). Чуть подкорректировал и уменьшил время до 5 сек, у меня всё работает. Если нужно посмотреть в порт, то раскомментируйте вывод переменных.
/* Solder protection function */
byte SDoProtect() {
/* ------------------------------------------------------------------------------------------------------- */
/* Crytical protection: high overheat or thermoresistor value is not valid or wire break */
if (GetSolderT > max_solder_temp + 20) {
SProtectionOut();
return 1;
}
/* ------------------------------------------------------------------------------------------------------- */
/* Crytical protection: thermoresistor value is not valid or wires short circuit */
if (GetSolderT < 10) {
SProtectionOut();
return 2;
}
/* ------------------------------------------------------------------------------------------------------- */
/* Overheat protection */
if (s_f1 && GetSolderT > SetSolderT + 20) {
s_f1 = false;
SProtectionOut();
return 3;
}
if (s_f2 && GetSolderT < SetSolderT + 15) {
s_f1 = true;
s_f2 = false;
}
/* ------------------------------------------------------------------------------------------------------- */
/* Deviation themperature protection +/- 10 degrees */
if (S_temp_stable) {
s_f3 = true;
}
if (s_f3) {
if (GetSolderT > SetSolderT + 10) {
SProtectionOut();
return 4;
}
//Not required for soldering iron
//if (GetSolderT < SetSolderT - 10) {
//SProtectionOut();
//return 5;
//}
}
/* ------------------------------------------------------------------------------------------------------- */
#ifdef S_ADV_PROT_ON
/* Advanced protection: the themperature falls down & power > 0 */
/* & */
/* Advanced protection: the themperature is not changed within 5 secs */
/* & */
/* Advanced protection: the themperature rise up & power < 0 */
if (!S_temp_stable) {
static uint16_t prev_t;
static byte t_cnt = 0;
static byte t_cnt2 = 0;
static boolean s_ctrl = true;
if (s_ctrl) {
prev_t = GetSolderT;
s_ctrl = false;
prevScontrol = millis();
}
if (!s_ctrl && millis() - prevScontrol > 1000) {
s_ctrl = true;
if (SPower > 0) {
/* themperature falls or not changed */
if (prev_t >= GetSolderT && GetSolderT < SetSolderT) {
t_cnt++;
//Serial.print("Set: ");
//Serial.println(SetSolderT);
//Serial.print("Get: ");
//Serial.println(GetSolderT);
//Serial.print("Prev: ");
//Serial.println(prev_t);
//Serial.print("Count: ");
//Serial.println(t_cnt);
//Serial.println("---------");
if (t_cnt == 5) {
SProtectionOut();
t_cnt = 0;
return 6;
}
} else t_cnt = 0;
} else { //SPower == 0.0
/* themperature rise */
if (prev_t < GetSolderT && GetSolderT > SetSolderT) {
t_cnt2++;
if (t_cnt2 == 5) {
SProtectionOut();
t_cnt2 = 0;
return 7;
}
} else t_cnt2 = 0;
}
}
} else prevScontrol = millis();
#endif
/* ------------------------------------------------------------------------------------------------------- */
/* everything is OK */
return 0;
}
Здравствуйте,OlegK теперь защита не работает даже при комнатной температуре и чтобы выводились данные нужно раскоментировать сроку /* if you need to create themperature diagramm then uncomment it */,я это сделал,но данные выводятся только по нагреву и остыванию и можете выложить свой правленный скетч,заранее благодарю за ответ.
Чудеса... Вот целиком скетч. Защита срабатывает, если включить с отключённым нагревателем из холодного состояния или из нагретого, если тоже отключить нагрев. Проверил, во всех случаях срабатывает уверенно.
Ещё раз объясняю. Раскомментируйте дефайн NEED_GRAPH, плюс ещё раскомментируйте вывод в коде защиты.
Выводиться информация будет при выполнении условий 1-4:
1. Режим стабилизации не наступил или вышли из него.
2. Текущая температура менее заданной.
3. Мощность подаваемая на паяльник больше 0.
4. Каждая предыдущая (секунду назад) измеренная темп. ниже или равна текущей.
5. Пунктов 4 должно "насобираться" в счётчик 5 штук подряд, что бы сработала защита. Это нужно, что бы не срабатывало ложно и чётко определялось, что "мы греем-греем, а оно стоит или падает".
Будет выводиться в порт, в таком виде -
1;20
2;20
3;20
Set: 200
Get: 20
Prev: 20
Count: 1
---------
4;20
5;20
Set: 200
Get: 20
Prev: 20
Count: 2
---------
6;20
7;20
Set: 200
Get: 20
Prev: 20
Count: 3
---------
8;20
9;20
Set: 200
Get: 20
Prev: 20
Count: 4
---------
10;20
11;20
Set: 200
Get: 20
Prev: 20
Count: 5
---------
OlegK мне кажется защита у меня неработает так как я изменил вот эту строку
Мне вот интересно, нафига я скидывал скетч целиком? Вы видите разницу, между тем, как объявлена SPower в последнем скетче? Она должна быть глобальной.
А тут -
Большое спасибо за помощь защита работает ошибка(I6),пошел дальше тестировать и еще один вопрос в этот проект вы будете добавлять калибровку как в проекте контроллер паяльного фена,заранее благодарю за ответ.
Очевидно же, что нет - вы там в кучу всё собрали... Предыдущее сообщение не пробовали что ли?
Несложно же - при коротких нажатиях переключаем курсор и, соответственнно, выбираем, что будем регулировать энкодером или включать длинным нажатием.
"В длинном нажатии" смотрим, какой параметр выбран, если температура паяльника и он выключен, то включаем, если включен, то выключаем. Если же выбрана температура фена или обороты - то тоже самое, только с феном (вкл-выкл).
Полный код примерно такой будет -
Бьюсь с энкодером уже вторые сутки... Схема под 74HC74, не под CD4013. По распиновке они не идентичны. Заметил такой прикол:
Если не трогать ногу DIR, то при кручении колеса в любую сторону значения уменьшаются.
Если трогать ногу DIR, повесить между этой ногой и землей светодиод, то при кручении колеса в любую сторону значения увеличиваются.
На этой ноге, DIR которая, вообще что должно быть? Импульс какой или ещё чего? Она у меня просто в ЛОГ 1 висит и всё.
На STEP будут импульсы только во время вращения энкодера, а нога DIR меняет состояние, взависимости от того, куда крутим. Оно статическое, меняется при смене направления. Поэтому STEP отлавливаются прерыванием, в нём же смотрим, в каком состоянии DIR.
На STEP импульсы наблюдаю. Всё в порядке. DIR же молчит как партизан. Хоть влево, хоть вправо, хоть вдоль, хоть поперек...
Такое ощущение как будто микросхему прошибло. Завтра заменю на ещё одну. Благо я их взял тройку.
https://drive.google.com/open?id=0B6X7gW5V3042M05UZ3BSeGdSd2s
Это мой текущий скетч. Олег, гляньте бегло пожалуйста, может пропустил чего...
Перекинул ноги на "противоположный" флип-флоп в своей 74 микросхеме. Результат тот же...
Разобрался...
Если собирать плату энкодера на CD4013 то:
Нога 1CD/2CD Pin4/Pin10 = GND
Нога 1SD/2SD Pin6/Pin8 = GND
//*************************************
Если собирать плату энкодера на 74HC74 то:
Нога 1RD/2RD Pin1/Pin13 = VCC
Нога 1SD/2SD Pin4/Pin10 = VCC
//*************************************
Как вариант работы с энкодером без использования прерывания:
- код энкодера на паскале, ссылка http://esp8266.livejournal.com/922.html
- немного "тупит" с включенным zerocross, но терпимо, delay уменьшал с 50 до 21мс
Так есть же уже решение для энкодера без переноса Zero Cross пина. Вчера кстати допилил макет. Сегодня тесты будут. По моим первым впечатлениям, конструкция очень даже годная.
Интересно..подпишусь.
буду собирать. автору спасибо за труды.
Сообщение #2
почитал . вопрос схему и печатку ибп от Umkalab можно посмотреть.не нашел.автор выкладывал?
Нет, насколько я помню, только портреты ))
Тогда просьба к автору ИБП.если есть возможность поделиться.
Возможность то есть. А Вы трансформатор найдете такой? Всмысле адаптер убитый на 90 ватт от ноутбука фирмы HP.
Я вот тут чего подумал, товарищи собиралкины. Надо бы автора отблагодарить то за труды его в нашу сторону. Старался человек как никак. Время свое тратил, силы, нервы...
Предлагаю скинуться. Кто за, отписываемся тут. Автор, оставь реквизиты или номер карты/кошелька для перевода "спасибо".
Кнопку на сайте надо сделать.типа : отблагодарить автора.
Транс. Я думаю найду.
В скайп стукните.
@Umkalab: а решение про энкодер это сообщения #837 и #951 + #956??
Там не все так просто...
Да, оно. Стучите в Skype. Буду делиться...
Значит так.
Вот фото печатной платы из редактора:
https://cloud.mail.ru/public/9215/u2Zjx1NLp
Вот схема платы с энкодером:
https://cloud.mail.ru/public/Mtsq/XWpY9C1mr
Вот печатная плата. Нужно зеркалить!!!
https://cloud.mail.ru/public/DbP2/BY4av4kt3
Вся толпа в архиве:
https://cloud.mail.ru/public/FqzS/AcKr3hqMu
Внешний вид платы энкодера:
https://cloud.mail.ru/public/4RPr/FFLAfCoH5
Печатная плата для поста: http://arduino.ru/forum/proekty/ocherednaya-payalnaya-stantsiya?page=17#comment-255096
https://cloud.mail.ru/public/EMWA/vvmfpadKb
Вся толпа в архиве:
https://cloud.mail.ru/public/DUZU/LdtTWjeRV
Здравствуйте,Umkalab можете весь проект выложить в один архив,заранее благодарю.OlegK вы в последнем скетче убрали защиту,когда температура не растет станция отключалась,заранее благодарю за ответ.
Могу. только завтра. Пока без основных печаток. Идет доработка...
Из готовых пока только блок питания и плата энкодера.
премного благодарен!
Спасибо, конечно, но не стОит )) Всё в рамках хобби, без какого-либо шкурного интереса.
В качестве благодарности буду рад увидеть фото готового аппарата, да и другим, думаю, будет интересно.
Ну и информацию о багах, если таковые всплывут.
Да, убрал, там иногда были ложные отключения. Сейчас гоняю версию с расширенными защитами и их индикацией, что бы не гадать, что сработало. Если используете мои скетчи без сильных изменений, то могу скинуть потестить. Если интересно про защиты поподробнее, то могу вкратце накидать, что там, да как.
Здравствуйте OlegK, смотрел несколько проектов паяльных станций на Ардуино, но Ваш понравился больше всех. Есть огромное желание повторить, заказаны на Али фен, паяльник, дисплей и ИБП. В ожидании разбираюсь в теме кто что изменял относительно Вашего проекта. За основу беру одноплатный вариант от Русл@на , но под свою рассыпуху, если Вам нетрудно проверить мои изменения в плате. https://yadi.sk/d/wGmWlTDm3DpvjT
Здравствуйте,OlegK пожалуйста скиньте тестовый скетч,заранее благодарю.
Здесь.
Здравствуйте,OlegK у меня возникла проблема если я использую скетч с поста#764(использую LM358)провожу калибровку станции и к примеру комнатная температура у меня получилась 18 градусов,то призаливке тестового сетча и преведущего скетча,где отключена защита комнатная температура сразу становится 9 градусов,как я понимаю скетч недолжен влиять на калибровку станции(строка /* if used not rail-to-rail OPA, then uncomment it */ разкоментирована),заранее благодарю за ответ.
Опечатался я там.
Исправьте в WorkWithHotAir() и WorkWithSolder() #ifdef LM385 на #ifdef LM358
OlegK спасибо за помощь,теперь еще один вопрос(тестовый скетч) как я понял защита изначально включена,потому что обрыв термопары это ошибка 1,но защита в канале паяльника( /* Advanced protection: the themperature is not changed within 10 secs */)неработает,заранее благодарю за ответ.
Странно, проверил, вроде работает всё. Можете проверить - остывшую до комнатной темп. станцию нужно включить, но что бы нагреватель не грел (аппаратно - отключить провод на нагреватель или выдернуть предохранитель в его цепи, программно - в процедуре регулирования принудительно обнулить значение мощности). И включить канал. Температура не будет изменяться (нагрева же нет) и, примерно через 10 сек должна сработать защита.
Принцип работы: запоминаем текущую температуру, ждём секунду и сравниваем текущую с предыдущей. Если они одинаковы (0 или +1 град.), то наращиваем счётчик, если не одинаковы, то сбрасываем счётчик. Если счётчик насчитал 10 одинаковых температур за 10 сек, то срабатывает защита.
Защита автоматически выводится из работы при стабилизации температуры.
Навскидку -
1. 5В для питания дуины нужно подавать не на вход стабилизатора (Vin) а на 5 вольт.
2. Полярность электролита в правом нижнем углу перепутана.
Спасибо. Если в остальном все хрошо, то это исправлю.
Ребята, а вот в ардуинку нано пытаюсь залить скетч, и выгибает ошибку. ЭКРАН ПО i2C. Помогите плиз.
Может библиотеки надо добавить
Здраствуйте,OlegK проверил зашиту( /* Advanced protection: the themperature is not changed within 10 secs */) да при комнатной температуре она срабатывает(ошибка I7),но я нагрел паяльник до 100 градусов,отключаю паяльник достаю предохранитель и включаю паяльник защита срабатывает,но на это уходит когда минута когда две,но если температура ближе к комнатной защита срабатывает быстрее,попробовал нагреть до 400 градусов защита сработала через 5 минут когда температура на дисплее упала до 75 градусов,заранее благодарю за ответ.
Так в этом случае температура не зависла, а падает. И падает тем медленнее, чем ближе к темп. окружающей среды, поэтому в конце остывания и срабатывает.
В вашем же случае должна отрабатывать предыдущая секция по падению температуры -
Смотрим условия - если текущая мощность больше 0 и предыдущая Т больше текущей Т и при этом Т менее заданной, то наращиваем счётчик. Сделайте после строки t_cnt++; вывод в сериал порт переменных prev_t, t_cnt и GetSolderT и наблюдайте, что там происходит приостывании.
Возможно, из-за того, что паяльник слишком медленно остывает, нужно поэкспериментить со временем (не 10 сек, а 3-5) или чуть поменять условие на "больше-равно"
Копируйте сюда текст ошибки, иначе будете разбираться сами.
OlegK правильно я указываю вывод в порт
Serial.print(prev_t);
Serial.print(t_cnt);
Serial.print(GetSolderT);
у меня выводятся только данные о нагреве паяльника и попробовал поэксперементировать со временем ничего не изменилось,вносил изменения в строку которые вы показали ничего неизменилось.
pter, попробуйте так (заменяйте целиком функцию защиты). Чуть подкорректировал и уменьшил время до 5 сек, у меня всё работает. Если нужно посмотреть в порт, то раскомментируйте вывод переменных.
Здравствуйте,OlegK теперь защита не работает даже при комнатной температуре и чтобы выводились данные нужно раскоментировать сроку /* if you need to create themperature diagramm then uncomment it */,я это сделал,но данные выводятся только по нагреву и остыванию и можете выложить свой правленный скетч,заранее благодарю за ответ.
Чудеса...
Вот целиком скетч. Защита срабатывает, если включить с отключённым нагревателем из холодного состояния или из нагретого, если тоже отключить нагрев. Проверил, во всех случаях срабатывает уверенно.
Ещё раз объясняю. Раскомментируйте дефайн NEED_GRAPH, плюс ещё раскомментируйте вывод в коде защиты.
Выводиться информация будет при выполнении условий 1-4:
1. Режим стабилизации не наступил или вышли из него.
2. Текущая температура менее заданной.
3. Мощность подаваемая на паяльник больше 0.
4. Каждая предыдущая (секунду назад) измеренная темп. ниже или равна текущей.
5. Пунктов 4 должно "насобираться" в счётчик 5 штук подряд, что бы сработала защита. Это нужно, что бы не срабатывало ложно и чётко определялось, что "мы греем-греем, а оно стоит или падает".
Будет выводиться в порт, в таком виде -
1;20
2;20
3;20
Set: 200
Get: 20
Prev: 20
Count: 1
---------
4;20
5;20
Set: 200
Get: 20
Prev: 20
Count: 2
---------
6;20
7;20
Set: 200
Get: 20
Prev: 20
Count: 3
---------
8;20
9;20
Set: 200
Get: 20
Prev: 20
Count: 4
---------
10;20
11;20
Set: 200
Get: 20
Prev: 20
Count: 5
---------
OlegK мне кажется защита у меня неработает так как я изменил вот эту строку
больше изменеий у меня нет и раскоментирована строка /* if used not rail-to-rail OPA, then uncomment it */.
Мне вот интересно, нафига я скидывал скетч целиком? Вы видите разницу, между тем, как объявлена SPower в последнем скетче? Она должна быть глобальной.
А тут -
Грузите скетч полностью, без изменений, а то так никогда не разобраться.
Если я не вношу это изменение у меня блок питания уходит в защиту,потомучто когда паяльник холодный при нагреве потребляет ток 6а.
Вот так тогда будет с "мягким" стартом.
Большое спасибо за помощь защита работает ошибка(I6),пошел дальше тестировать и еще один вопрос в этот проект вы будете добавлять калибровку как в проекте контроллер паяльного фена,заранее благодарю за ответ.
Ещё не знаю, может позже, т.к. все эти фены подзадолбали уже, неинтересно и охота чем-то иным позаниматься.