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

edcop
Offline
Зарегистрирован: 23.07.2016

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

Oleg_D
Offline
Зарегистрирован: 13.06.2018

А дисплей какую температуру отображает, и как она меняется, плавно, резко ? При нагреве до сколько градусов срабатывает защита? Частая проблема на , - просто не может стабилизировать температуру в конце нагрева, большая болтанка, и уходит в защиту. Чаще такое встречается на лм358. А так мало данных от вас. Причины могут быть разные. Отключите защиты и проверьте без них, контролируя температуру, мало ли уйдёт выше 400°. Защит много. Какая именно срабатывает попробуйте определить , и от туда плясать.

edcop
Offline
Зарегистрирован: 23.07.2016

По немногу разбираюсь в проблеме. В защиту уходит БП на 24В. Исчезает напряжение на контроллере, рестарт и так по кругу. При вытащеном паяльнике стартует нормально. Пробовал менять модуль мосфета, не помогло. Пока идеи закончились. Ещё попробую DC-DC понижайку проверить. БП уходит в защиту даже при выключенном режиме нагрева (реле "выкл").

Oleg_D
Offline
Зарегистрирован: 13.06.2018

Возможно у вас образуется кз при нагреве паяльника. Сразу после защиты отключите от сети и замерьте сопротивление нагревателя. Оно особо не должно меняться.
И у вас что, контроллер тоже от бп24в питается?

edcop
Offline
Зарегистрирован: 23.07.2016

Контроллер от БП 24 В через DC-DC понижайку до 5В. Проблема при остывании паяльника не ушла. Теперь грешу на БП, но ведь нагревательный элемент не подключен через реле, а в защиту уже уходит (после нагрева и остывания паяльника)! Сопротивление нагреватетя выростало примерно с 12 Ом до 17 Ом. А вот термопара выростала с 1,2 Ом до 8 Ом. У меня уже мозги набекрень от этой задачки.

alex1978
alex1978 аватар
Offline
Зарегистрирован: 09.09.2017

Ну если БП уходит в защиту, то надо искать КЗ. Реле исправны?

Andy_UB3B
Offline
Зарегистрирован: 10.06.2021

Первое, на какой ток бп24в, DC/DC? Что написано? В первую очередь в студию! Проверь свой бп24 на нагрузку 60 ватт, замерь падение напряжения, и далее на каком токе уходит в защиту, температуру силовых транзистораов, диодов проверь, а лучше сразу замени электролит в высоковольтной части бп24.
Второе, подключи другой, отдельный бп 5 вольт помощнее, от 1А., хоть от телефона, проверь работу станции (этим снижаешь нагрузку на бп24, и проверяешь это DC/DC виноват или нет), потом другой бп24в. Это все надо было сделать еще вчера )). Бп24, так понимаю китайский? должен быть около 4 ампер минимум
Только не тот, который 2-4А (или 3А) написано, а 4-6А, это минимум. От него же еще и плата питается. А это минус почти ампер, примерно. Для нормальной работы ардуино и схемы нужен бп 0,8-1А. В случае слабых БП, вопрос "раньше же работал" будет неуместен. У меня в станции 3 блока питания и DC/DC 24/12 вольт на 12 вольтовый вентилятор фена. Бп5 вольт трансформаторный на крен для схемы. Еще импульсник 5в. 700мА на дежурное питание сенсорного выключателя питания , его реле и доп. релейную защиту от случайного выключения станции от сенсорного и главного выключателей при работе вентилятора фена и китайский импульсник 24в. 4-6А (написано, а реально 3.5 без просадки), но его буду менять, когда найду подходящий по габаритам корпуса трансформатор на 18в. 4А. Начни с подключения других БП. Скажешь что получилось. А по поводу на холодную стартует и наводит на мысль, что БП24 хиленький. В даташитах практически на любой силовой транзистор да и диоды тоже, написан параметр ток для холодного, 25° один, а для нагретого другой, меньше. Когда БП при работе на максимальном для него режиме нагреется, ток, который он может держать становится меньше, и он уходит в защиту. ОлегД прав, ты не даешь необходимых данных, и те кто хотел бы помочь начинает ванговать, а может так, а может так. При вопросе лучше сразу описать что у тебя за железяки в станции. И присоединяюсь к ОлегуД насчет LM358... Пробовал, не айс, а если еще и напряжение питания 5в. просаживается, то защиту не поймаешь.

edcop
Offline
Зарегистрирован: 23.07.2016

БП отметаю, т.к. попробовал только что от ЛБП - та же фигня.

ПО железу: я собирал модульно из готовых изделий

- БП 24В/5А

- два модуля мосфета

- модуль на 2 реле

- плата зерокроса для симистора (собирал сам)

- плата с операционником (собирал сам)

- плата за дисплеем с самой ардуиной (собирал сам)

У меня реле разрывает минус питания нагревателя так же как и мосфет, т.к. он N-канальный. Понимаю, что не правильно, но реле стоит после мосфета, а не до. Ещё заметил, что при холодном включении паяльник начинает греться до включения реле (реле проверял, рабочее). После ухода в защиту БП отсоединил паяльник и замерял сопротивления нагревателя и термопары. 16 Ом нагреватель и 0,7 Ом термопара. После остывания уже не происходит холодного старта с подсоединённым паяльником, сразу в защиту БП уходит.

Да у меня LM358, но только что поменял, не помогло. А до этого исправно работала станция несколько лет.

А термопара может нагревать паяльник, если на неё идёт откуда-то питание?

Умом понимаю, что где-то КЗ, но не могу представить где, т.к. при вытащеном паяльнике всё запускается. Попробую заменить нагревательный элемент на следующей неделе. Но это уже метод тыка.

Oleg_D
Offline
Зарегистрирован: 13.06.2018

Я , честно говоря, сразу подумал, что если кз не устраняется после отключения, видимо этот парень разьединяет минус после нагревателя, а не плюс до него. Но подумал, как так то, это же не логично)). Меняй нагреватель, коротит.

Andy_UB3B
Offline
Зарегистрирован: 10.06.2021

Я так и не увидел в сообщениях, проверен ли нагревательна предмет замыкания нагревательной спирали на датчик, т.е. между выводами нагревателя и термопары? Что показывает? Во-вторых, а при нагреве градусов до 250, подключив напрямую нагреватель к бп? Одна из распространенных неисправностей всех нагревателей от тэнов до паяльников, это замыкание при нагреве, если на холодную нормально, что м.б. межвитковое, что на корпус, что между датчиком и нагревателем.
Какой ток берет голый нагреватель при подключению напрямую?
Неисправность найти просто. Становишься вольтметром по элементам, и смотришь где падение напряжения.
Основная версия- подкорачивает нагреватель на термопару, по ней на массу, поэтому и нагрев до включения реле. Либо поплавившиеся провода.

edcop
Offline
Зарегистрирован: 23.07.2016

В том то и дело, прозванивал и нагреватель и термопару и между ними. Всё ОК. Поменяю нагреватель, отпишусь.

Oleg_D
Offline
Зарегистрирован: 13.06.2018

Я бы соединил напрямую нагреватель и бп, если уйдёт в защиту, все понятно станет . Гадать не к чему. Про технику безопасности думаю напоминать не надо.

Andy_UB3B
Offline
Зарегистрирован: 10.06.2021

[quote=edcop]

В том то и дело, прозванивал и нагреватель и термопару и между ними. Всё ОК.

А на горячую?
Вот чем и хорош керамический нагреватель. Хоть и дороже в два раза, но геморроя меньше. Либо работает, либо нет. Я бы перешел на твоем месте, пока случай подвернулся. Переделка минимальная, нагрев стабильнее, да и долговечнее.)

edcop
Offline
Зарегистрирован: 23.07.2016

Эпопея с паяльником продолжается. Купил нагреватель с терморезистором. Заменил сопротивления на плате ОУ. И никак не удаётся откалибровать температуру.

- Подстроечник "Начало" очень грубо выставляет комнатную температуру. Кое-как выставил.

- Включаю нагрев и буквально через 1-2 сек уходит в защиту "!3", т.е. разница температур выше допустимой дельты (вроде 20 градусов).

- После нескольких повторов включения на кнопке паяльника температура устаканивается, но паяльник еле тёплый. Крутил шкалу от упора до упора, не помогло. Только время от времени снова уходит в защиту "!3".

Не было под рукой резистора 390 Ом, поставил 330 Ом. Думаю не страшно.

В скетче нет разницы между TC и TR?

Oleg_D
Offline
Зарегистрирован: 13.06.2018

В скетче только если лм358 раскомментировать надо. А разница между тп и тр только в печатке.

edcop
Offline
Зарегистрирован: 23.07.2016

В архиве в папке "Other" нашёл вордовский файл "Усилители термодатчиков". Там описаны номиналы сопротивлений (правда для ОУ AD8552). Меня удивили номиналы R15 и R19 (1кОм и 20 кОм соответственно). Возможно и для LM368 нужно значительно уменьшить R15? Сейчас стоит как в оригинальной схеме - 100кОм + подстроечник 100 кОм.

UPD: Делюсь своим мучительным опытом. После замены нагревательного элемента с термопары на терморезистор рекомендую уменьшить R15 со 100 кОм до 5,1 кОм при этом подстроечник "Шкалы" можно оставить 100 кОм. Всё применительно к ОУ LM358P. Терморезистор 43,5 Ом, нагревательный элемент 3,5 Ом.

Andy_UB3B
Offline
Зарегистрирован: 10.06.2021

Ну, поздравляю)) Кстати при настройке защиты отключал? А на AD мне больше понравилось, стабильнее температура. Переделаю еще наверно по схеме с компенсацией холодного спая, интересно, посмотрю.

vzantd
Offline
Зарегистрирован: 25.07.2022
Здравствуйте, помогите с проблемкой.
Не включается нагревательный элемент в фене. При включении фена, реле щелкает на симисторе и MOC3023 230 вольт присутствует, а вот с ардуины ничего не приходит, после уходит в защиту 6, без нее тоже пробовал.
Вентилятор работает, поток регулируется, дует. Термопара на принудительное изменение температуры внутри фена реагирует. Нагреватель не в обрыве.
Резистор на 39 ом заменен резистором на 47, даю знать может быть это важно.
В электронике я слаб, поэтому скорее всего сам разобраться не смогу.
Oleg_D
Offline
Зарегистрирован: 13.06.2018

Скорей всего зеро кросс сигнал не приходит. Проверь напряжение на оптроне от зеро кросс со стороны ардуины, вроде около 2.5 волта должно быть, точно не помню. Здесь разбирался этот вопрос, и причины отсутствия сигнала тоже. Это одна из основных причин не работы мос3023, при условии правильного монтажа.

vzantd
Offline
Зарегистрирован: 25.07.2022
Спасибо посмотрел. Если без ардуины с резистором 9,8к то 4v. Без резистора 1,86v (щуп + на +5v, а - на колектор оптрона что к ардуине идёт).
Если с ардуиной то 3,35v. Она кстати на ощуп греется.
Вот что на оптроне ZeroCross со стороны ардуины с резистором, похоже что работает. То что с шумами это с ардуиной.
Но нагреватель фена не работает.
 
Oleg_D
Offline
Зарегистрирован: 13.06.2018

Да, около 4в должно быть. Иногда некоторым приходилось доболнительно подтягивать этот вход к 5в, но у тебя похоже работает. Значит методом исключения далее по цепи мос3023 , bt138
Да и целостность нагревателя а всякий случай. Больше за нагрев ничего не отвечает.

Oleg_D
Offline
Зарегистрирован: 13.06.2018

Ещё у меня тоже мос3023 не работала , потому что не используемая нога была посажена соплей припоя на ноль . Тоже так мучался , пока не заметил причину. Сразу и не вспомнил, делал 4 года назад.

vzantd
Offline
Зарегистрирован: 25.07.2022

Проверил пайку у оптосимистора, все хорошо, поднял ноги 1 и 2. Включил паяльную станцию, включил фен и принудительно подав 5 вольт через резистор 460ом на светодиод, нагреватель заработал, отображаемая температура пошла вверх. Но с ардуиной не работает.
Подумал что выгорел может быть пин D8 или D3, но загрузив моргалку то светодиоды моргали на этих пинах.

Сейчас я вообще не понимаю что делать. Дорожки от ардуины к оптопарам звонятся, на D8 резистор 480 ом, попробую 460 поставить.

Вот что показывает какой никакой "осцилиограф" на оптосимисторе со стороны ардуины.

vzantd
Offline
Зарегистрирован: 25.07.2022

Олег, спасибо за подсказки. В конечном итоге оказалось что из 5-ти MOC3023 в паялке заработал только один, причем все они работали если подать им +5v через резистор.

cyberdemon
Offline
Зарегистрирован: 18.06.2021
Наконец то собрал фен по схеме MkTwo, но столкнулся с проблемами: 
1)Комнатная температура отображает 0 градусов, дописал +20 тут 
GetHotAirT = getOversampled_HA()+20;
дало запустить фен, отображаемая температура во всем диапазоне верная, но только в режиме работы, при выключении - отображаемая температура резко уменьшается градусов на 40.
 
2)При комнатной температуре, отключив провода вентилятора и нагревателя, включаю и температуру отображает сразу 46-50 градусов, а не 22
 
3)в режиме работы при нажатии или удержании кнопки UP (не важно температура или вентилятор) температура скачет на +50 градусов к реальной и фен уходит в защиту
 
Подскажите может что добавить, заменить?
alexmillon
Offline
Зарегистрирован: 31.05.2020

Ребят, возникли трудности с настройкой станции на плате Руслана. Заменил ОУ на AD8552. И у станции появился дрейф показаний, особенно комнатной температуры. При нагреве показания температуры стабильнее, чем при использовании LM
Также заметил, что если подуть на ОУ, то показания скачут в вверх на градусов 40-50. При использовании LM358, такого не наблюдается. Подскажите куда копать ?

Sergey38
Offline
Зарегистрирован: 23.02.2017

смотри пайку... особенно землю.

alexmillon
Offline
Зарегистрирован: 31.05.2020

Смотрел, да и при использовании LM358 мне кажется такое же поведение было бы, но при использовании LM дуй сколько хочешь, показания , как вкопанные. Поменял уже три AD8552, все тоже самое. Померял напряжения, на входе и выходе ОУ ( 8552), коэффициент усиления приблизительно 20 получается

Oleg_D
Offline
Зарегистрирован: 13.06.2018

У меня все в порядке с 8552. Если ОУ не левый, а коэф. Усиления меняется с температурой, возможно сопротивление какогото резистора плавает. Может подстроечник голову морочит. Он случайно не в крайнем положении?

alexmillon
Offline
Зарегистрирован: 31.05.2020

Который отвечает за "Шкалу" в крайнем, но насколько помню, он и в середине шкалы голову морочил. А по поводу изменения коэфф.усиления, проверю меняется ли он от температуры

alexmillon
Offline
Зарегистрирован: 31.05.2020

Ещё в канале "Шкалы" паяльника , подстрочечник вышел 200 кОм, и постоянный от резистор последовательно ему тоже порядка 100 кОм

Oleg_D
Offline
Зарегистрирован: 13.06.2018

alexmillon пишет:
Ещё в канале "Шкалы" паяльника , подстрочечник вышел 200 кОм, и постоянный от резистор последовательно ему тоже порядка 100 кОм

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

alexmillon
Offline
Зарегистрирован: 31.05.2020

Спасибо, попробую

Sergey38
Offline
Зарегистрирован: 23.02.2017

дак делай по схеме..

alexmillon
Offline
Зарегистрирован: 31.05.2020

В общем вернул номиналы резисторов, как в оригинальной схеме ( подстрочечник 100 ом, последовательный ему 390 Ом в "Начало", подстрочечник 100 кОм, последовательный ему 100 кОм в "Шкале). Все равно дрейфуют показания. Вывел отдельно на проводах AD8552 на обратную сторону платы. Все равно дрейф показаний. Даже когда подносишь палец руки (не касаясь) показания "улетают" вверх

Ravin
Offline
Зарегистрирован: 30.11.2020

доброго времени суток! нужна помощь мне попалась неисправная паяльная станция лукей с компрессором, собрал контроллер на атмеге ,для управления собрал диммер ,но проблемма в том что я не разбирась в програмировании на ардуино можете ли вы помочь мне со скетчем,нужно обединить 2 скетча сама пальная станция и диммер для компрессора

//
/*
 ПАЯЛЬНАЯ СТАНЦИЯ ver. 0.5
 
 Дата создания 2015
 Автор Олег Андреев
 d-serviss@inbox.lv
 
 */
 
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);  // Выходы для дисплея 1602
 
int pinSolderOut = 5;  // Выход для паяльника
int pinSolderIn = A0;  // Потенциометр паяльника
int pinSolderTCouple = A1;  // Термопара паяльника
int pinSolderButton = 3;  // Кнопка вкл. и выкл. паяльника
 
int pinHotAirOut = 6;  // Выход для фена
int pinHotAirIn = A2;  // Потенциометр фена
int pinHotAirTCouple = A3;  // Термопара фена
int pinHotAirCoolerOut = 4;  // Выход для вентилятора фена ( PWM )
int pinHotAirCoolerIn = A4;  // Потенциометр вентилятора фена
int pinHotAirButton = 7;  // Кнопка вкл.и выкл. фена
 
uint8_t char_cel[8] = {
  B00111, B00101, B00111, B00000, B00000, B00000, B00000
};
 
void setup()
{
  TCCR2B = TCCR2B & 0b11111000 | 0x01; // Частота ШИМ 11 и 3
  pinMode(pinSolderOut, OUTPUT);
  pinMode(pinSolderButton, INPUT);
  pinMode(pinHotAirOut, OUTPUT);
  pinMode(pinHotAirButton, INPUT);
  lcd.begin(16, 2);
  lcd.createChar(1, char_cel);
 
  // Вывод приветствия
  lcd.setCursor(0, 0);
  lcd.print("SOLDER STATION");
  lcd.setCursor(0, 1);
  lcd.print("ver. 0.5");
  // задержка
  delay (3000);
  lcd.clear();
}
 
void loop()
{
  // Преобразовываем значения
  int setSolderTemp = map(analogRead(pinSolderIn), 0, 1023, 0, 480);
  int solderTCouple = map(analogRead(pinSolderTCouple), 0, 750, 0, 480);
  int setHotAirTemp = map(analogRead(pinHotAirIn), 0, 1023, 0, 480);
  int hotAirTCouple = map(analogRead(pinHotAirTCouple), 0, 750, 0, 480);
  int setHotAirCooler = map(analogRead(pinHotAirCoolerIn), 0, 1023, 130, 255);
  int displayHotAirCooler = map(analogRead(pinHotAirCoolerIn), 0, 1023, 0, 99);
 
  // Защита, если не работает термопара
  if (solderTCouple > 480) {
    setSolderTemp = 0;
  }
  if (hotAirTCouple > 480) {
    setHotAirTemp = 0;
  }
 
  // Поддержка установленной температуры паяльника
  if (setSolderTemp >= solderTCouple && digitalRead(pinSolderButton) == HIGH)
  {
    digitalWrite(pinSolderOut, LOW);
    // delay(100);
    digitalWrite(pinSolderOut, HIGH);
  }
  else {
    digitalWrite(pinSolderOut, LOW);
  }
 
  // Поддержка установленной температуры фена
  if (setHotAirTemp >= hotAirTCouple && digitalRead(pinHotAirButton) == HIGH)
  {
    digitalWrite(pinHotAirOut, HIGH);
    delay(100);
    digitalWrite(pinHotAirOut, LOW);
  }
  else {
    digitalWrite(pinHotAirOut, LOW);
  }
 
  // Установка оборотов вентилятора фена
  if (hotAirTCouple < 85 && digitalRead(pinHotAirButton) == LOW) {
    analogWrite(pinHotAirCoolerOut, 0);
  }
  else {
    analogWrite(pinHotAirCoolerOut, setHotAirCooler);
  }
 
  // Убираем прыганье цифр
  if ((setSolderTemp + 10) > solderTCouple && (setSolderTemp - 10) < solderTCouple) {
    solderTCouple = setSolderTemp;
  }
  if ((setHotAirTemp + 10) > hotAirTCouple && (setHotAirTemp - 10) < hotAirTCouple) {
    hotAirTCouple = setHotAirTemp;
  }
 
  // Данные паяльника на дисплей
  lcd.clear();
  lcd.print("Solder:");
  lcd.setCursor(7, 0);
  if (digitalRead(pinSolderButton) == HIGH) {
    if (solderTCouple < 480) {
      lcd.print(setSolderTemp);
      lcd.print("\1");
      lcd.setCursor(12, 0);
      lcd.print(solderTCouple);
      lcd.print("\1");
    }
    else {
      lcd.print(" Error");
    }
  }
  else {
    lcd.print(" Off");
  }
  // Данные фена на дисплей
  lcd.setCursor(0, 1);
  lcd.print("Smd:");
  lcd.setCursor(4, 1);
  if (digitalRead(pinHotAirButton) == HIGH) {
    if (hotAirTCouple < 480) {
      lcd.print(setHotAirTemp);
      lcd.print("\1");
      lcd.setCursor(9, 1);
      lcd.print(hotAirTCouple);
      lcd.print("\1");
      // Вентилятор фена на дисплей
      lcd.setCursor(14, 1);
      lcd.print(displayHotAirCooler);
    }
    else {
      lcd.print(" Error");
    }
  }
  else {
    lcd.print(" Off");
  }
  delay(100);
}
 
диммер
 
// пример диммера на симисторе с внешним детектором нуля
 
// используется библиотека GyverTimers (минимум версия 1.5)
// по аналогии можно сделать диммер на любом таймере ардуино
// в том числе любом из 6-ти таймеров для Mega
// вызов setPeriod оптимизирован
 
#define ZERO_PIN 2 // пин детектора нуля
#define INT_NUM 0 // соответствующий ему номер прерывания
#define DIMMER_PIN 4 // управляющий пин симистора
 
#include <GyverTimers.h> // библиотека таймера
int dimmer; // переменная диммера
 
void setup() {
pinMode(ZERO_PIN, INPUT_PULLUP);
pinMode(DIMMER_PIN, OUTPUT);
attachInterrupt(INT_NUM, isr, RISING); // для самодельной схемы ставь FALLING
Timer2.enableISR();
}
 
void loop() {
// задаём значение 500-9300, где 500 максимум мощности, 9300 минимум!!!
// и 500-7600 для 60 Гц в сети
dimmer = map(analogRead(A4), 0, 1024, 500, 9300);
delay(100); // в реальном коде задержек быть не должно
}
 
// прерывание детектора нуля
void isr() {
static int lastDim;
digitalWrite(DIMMER_PIN, 0); // выключаем симистор
// если значение изменилось, устанавливаем новый период
// если нет, то просто перезапускаем со старым
if (lastDim != dimmer) Timer2.setPeriod(lastDim = dimmer);
else Timer2.restart();
}
 
// прерывание таймера
ISR(TIMER2_A) {
digitalWrite(DIMMER_PIN, 1); // включаем симистор
Timer2.stop(); // останавливаем таймер
}