Паяльная станция из ардуино

a5021
Offline
Зарегистрирован: 07.07.2013

Все началось с того, что у меня помер от старости паяльник. Паяльник этот был (не)отъемлемой частью паяльной станции неведомого китайского производителя, паял сносно и я им пользовался уже долгое время.  Словно предчувствуя его скорую кончину, я даже купил у китайцев некий клон паяльника hakko 907, в тайне надеясь, что удастся его как-нибудь приколхозить к своей паяльной станции. Только руки все не доходили, и он с пол-года валялся в столе, ожидая своего часа.

Час, как обычно, пробил самым неожиданным образом. Задача прикручивания инородного паяльника из категории "когда делать нечего" перепрыгнула в раздел "необходимо позарез". Начались поиски решений.  Простой перепайкой (старинным 40вт паяльником) разъема отделаться не удалось. Станция не признала термодатчик нового паяльника и принялась разогревать последний, похоже, до полного расплавления. Ситуация осложнилась еще тем, что в старом паяльнике выяснить тип термодатчика не представилось возможным, т.к. перегоревшие провода просто вывалилсь из нагревателя и где какой был стало уже не узнать.

Перспектива переделывать станцию под новый паяльник отчего-то не выглядела захватывающей и мысль начала крутиться вокруг идеи изготовления отдельного контроллера на базе аттини/атмеги. Долго ли коротко, была собрана на макетке некая схема с attiny13a в центре. Оно даже как-то заработало, но при этом была исчерпана вся флеш память чипа, а полной реализации функционала так и небыло достигнуто. Логичным решением в этом случае было бы взять чип с большим объемом флеша и доделать на нем, но замахавшись на отладке, я решил, что дальше так продолжаться не может, попутно вспомнив про существование ардуины. Почему я об этом не подумал раньше -- загадка. А ведь с этого надо было и начинать. Прототипирование на ардуине это просто песня по сравнению с голыми атмеловскими чипами.

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

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

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

К слову сказать, паяльник замечательно паяет и при более низких напряжениях, но за это приходится платить большим временем на разогрев и снижением максимально возможных температур. Это я к тому, что не всегда может оказаться под рукой 24в источник питания и в таких случая можно запитаться то ли от компьютерного БП, а то и вовсе от ноутбучного адаптера (они обычно идут на 15-20в). Я прикрутил для этих целей универсальный адаптер для ноутбуков, который умеет выдавать ряд напряжений от 12 до 24 вольт. Главное, что бы по току подходил, а ток, как я уже говорил, не менее двух амер.

Теперь немного о конструкции паяльника -- обычно в разъем приходят пять проводов: два от нагревателя, два от термодатчика и один это антистатический повод, который имеет непосредственный электрический контакт с жалом и предназначен для снятия статического электричество с паяемого устройства.  Чтобы выяснить где там нагреватель, а где термодатчик, придется прибегнуть к прозвонке. Прозвонка операция не хитрая. Если между проводами сопротивление в районе 50 ом (может быть 45 или под 60, роли не играет), то это термодатчик, а когда прибор показывает несколько ом, то это явно нагреватель. Один провод прозванивается лишь на корпус паяльника, это ранее упомянутая антистатическая линия. Ее можно впоследствии подключить на землю.

Тут бы хотелось отдельно коснуться такой темы, что не все паяльники имеют термосопротивление в качестве термодатчика. Если два провода звонятся, как 1-2 ома (еще оно может показывать разное сопротивление, если менять провода местами), то это скорее всего термопара и такой паяльник для нашего случая не подходит. До недавних пор паяльники с таким типом термодатчика преобладали, но после того, как китайцы научились сносно клонировать hakko, покупать паяльник с термопарой совсем ни к чему. Цены опустились на тот уровень, что весьма сносный паяльник можно купить совсем не за дорого:

Собственно, такой паяльник я и использовал. Цветовая маркировка проводов в моем случае оказалась таковой: красный и белый это термодатчик, синий и черный -- нагреватель, зеленый -- антистатик. Скорее всего она стандартна -- китайцы становятся страшно педантичными и копируют предельно внимательно. :)

С проводами у меня вышел забавный курьез. После того, как я в очередной раз пределал схему на макетке, паяльник перестал давайть нужный разогрев. Греться стал долго и сколько ни накручивай мощность, хватает только чтобы едва-едва плавить припой. Проверил напряжения, схему, управление -- все на месте. Ну не греет и все тут. Наваждение. Только все необъяснимые чудеса имеют обыкновенно самое незатейливое объяснение, что подтвердилось и на этот раз -- я перепутал местами подключение датчика и нагревателя. Выяснилось, что датчик без ущерба для собственного здоровья может подрабатывать еще и нагревателем, если это очень сильно потребуется. :) Сгореть ему мешает высокое собственное сопротивление,  ровно это же обстоятельство заодно портит ему карьеру в качестве нагревателя. :)

Разъем на паяльнике чем-то напоминает т.н. микрофонный (широко применялся в аппаратуре советских времен), но с ним не совместим. Разъем разборный и был снят до лучших времен, т.к. ответной части у меня все равно нет. Китайские паяльные станции широко используют стандартный PS/2, т.ч. я тоже посматриваю в эту сторону. Найти не проблема, т.к. старых материнских плат и клавиатур много где есть. :)

Переходим от паяльника к схеме. Вот иллюстрация в исполнении Fritzing:

Три сопротивления, четыре конденсатора, один мосфет (N-канальный, лучше вольт на 50, с управлением от логических уровней),  один стабилизатор на 5 вольт (7805 в данном случае), одно переменное сопротивление, два разъема и собственно ардуино -- вот и вся схема. Единственное, что стоит отметить отдельно, стабилизатор нуждается в радиаторе, т.к. разницу между 24 и 5 вольтами он будет сбрасывать в тепло и тепла этого может оказаться достаточно, чтобы нагреть его до температуры разрушения кристалла.

Номиналы резисторов соответствуют цветовой маркировке -- 47 ом, 10 килоом и 220 ом. Переменник любой с сопротивлением от 1 килоома до 100 килоом. Конденсаторы в форме синих квадратиков имеют емкость 100нф, бочки-электролиты на 100мкф. Левый электролит на напряжение не ниже 25вольт, а лучше больше, правый не меньше, чем на 6.3в рабочего напряжения. В случае острого затруднения, конденсаторы (все) можно не ставить вообще. Они в схеме для улучшения параметров. Будет работать и без них с небольшим ухудшением фунционала.

Оранжевые провода -- линии 24в, красные -- 5в, черные земля. Желтый провод -- управление затвором мосфета, синие к термодатчику, зеленый снимает показания с переменного резистора. Разъем слева для подключения паяльника. Собственно, разъем можно и не ставить, если подключить термодатчик паяльника к синему и черному проводу, а нагреватель к оранжевому и серому.

На всякий случай еще замечу, что если есть откуда подать 5 вольт на схему (например при запитке от компового БП), то стабилизатор 5в можно выкинуть целиком. Теоретически, пять вольт можно было бы подать с ардуины, но лично я не решился, собрав отдельный стабилизатор. Брать ли пять вольт с ардуины пусть каждый решит для себя.

Будем считать, что схема есть и она собрана правильно. Теперь немного о том, как это все будет управляться. Выше я уже писал, что задача управления сводится к тому, что нужно в определенные моменты подключать паяльник к 24 вольтам, а при достижении нужной температуры отключать. Единственным способом следить за температурой возможно на основании данных измерения сопротивления терморезистора. Для этого терморезистор совместно с сопротивлением 220 ом включается по схеме резистивного делителя и аналоговым входом ардуины измеряется напряжение в средней точке. Зная напряжение на входе и выходе резистивного делителя, а также номинал верхнего сопротивления (у нас он 220 ом) легко высчитать сопротивление терморезистора по формуле Rt=220/(5/Uизм - 1). Для моего случая сопротивление на холодном паяльнике 52 ома, точка плавления олова 87 ом, раскаленный до 480 градусов паяльник 170 ом.

Я сначала в алгоритме старательно пересчитывал данные с АЦП в температуру, но потом узрел (зоркий глаз, блин) очевидное, что это вобщем-то делать и незачем. Можно сразу отталкиваться от отсчетов АЦП. Если analogRead() возвращает что-то ниже величины 285, то паяльник припой плавить не будет, а если значение приближается к 440, то паяльник скоро сгорит. :) В стандартной библиотеке ардуины есть замечательная функция map, которая отображает значение в одном диапазоне на пропорциональное ему в другом. Чтобы с отсчетов АЦП сразу получать температуру оказалось достаточным один раз вызывать функцию map в следующем виде: map(analogRead(pinNo), 285, 440, 180, 480). Все это справедливо для моих условий, где величины были получены экспериментальным путем, и если кто-то возмется повторять конструкцию, то значения диапазонов могут получиться близкими, но немного другими.

Данные о положении потенциометра, которые точно так же получаются через analogRead(), разумно тем же образом через функцию map вписать в температуры паяльника и нулевой точкой выбрать именно температуру плавления олова. Ноль отсчетов с потенциометра приводим к величине 285 (олово начинает плавиться), а крайне правое положение, соответствующее 1023 отсчетам, отображаем на 440 (паяльник собирается сгореть). Все, что между этими точками будет отображаться пропорционально: map(analogRead(pinNo), 0, 1023, 285, 440). Теперь весь рабочий диапазон паяльника равномерно распределен по дуге потенциометра. Можно даже индикацией температуры не заморачиваться, ориентируясь исключительно по шкале переменника.

Несколько строк о погрешностях. При вышеописанном способе, шаг регулировки равняется примерно двум градусам. Градусы эти довольно абстрактные. Дело в том, что температура паяльника очень сильно отличается в разных точках (и в разные моменты) этого самого паяльника. На кончике жала она одна, в середине жала другая, ближе к корпусу она третья, а нагреватель имеет свою собственную температуру, которая от температуры жала может быть так далека, что вроде и не подумаешь. Совсем развеселая картина начинается при пайке массивных элементов, когда температура одного лишь жала может различаться в разных точках на сотню градусов. Добавить сюда инертность разогрева, когда нагреватель уже отключился по достижению нужной температуры, а тепло до жала еще и не дошло. На какую температуру ориентироваться? А ни на какую. Путем измерений было получено, что при сопротивлении терморезистора 87 ом олово на какой-то части жала плавится, вот это и будет некой виртуальной температурой пайки, своего рода условной реперной точкой. Строго говоря, можно лишь приблизительно ориентироваться, что температура, скажем, в районе 250 градусов где-то неподалеку от области пайки.  Точнее для наших условий никак. При таком положении дел, измерение разниц в миллиомы и регулировки в доли градусов лишаются всякого смысла, чтобы на это тратить силы. Признаемся, что погрешности неприлично велики, но работать, тем не менее, можно.

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

Почистил исходники, снабдил комментариями на ломаном английском. Програмист я на уровне любителя, т.ч. слабонервным профессионалам советую запастись валидолом. :) На всякий случай оставил в коде вычисления по сопротивлению терморезистора для отладочных и калибровочных действий.

/*

Simlple soldering station prototype. v0.01a 
September, 14, 2013 by a5021.
 
 */


// Pinout
const int heaterSensorPin = A0; // pin that the soldering iron's thermistor is attached to
const int potSensorPin = A1;    // pin that the potentiometer is attached to
const int mosfetPin = 10;       // pin that the gate of MOSFET is attached to

const double  Vref = 5.00;      // Reference ADC voltage
const double  dV = Vref / 1024; // Volts per measure unit
const double  R1 = 220.00;      // Upper voltage divider's resistor

// variables:
int tempRead = 0;         // Measured temperature.
int tempSet = 0;          // Required temperature.


int i = 0;                // loop count 

void setup() {
  // make some light to show it is alive
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);
  
  pinMode(mosfetPin, OUTPUT);
  digitalWrite(mosfetPin, LOW);
  // serial output init
  Serial.begin(115200);
}

void loop() {

  // read cuurent temperature sensor
  tempRead = getOversampled(heaterSensorPin);
  // convert to voltage
  double heaterSensorVoltage = (double) tempRead * dV;
  
  // calculate value of lower resistor in resistive voltage divider
  // R2 = R1 / (Uin / Uout - 1)
  // 
  
  double heaterSensorResistance = R1 / (Vref / heaterSensorVoltage - 1.00);

  // read curent pot value and map it
  // to soldering temp range 180°C - 480°C
  tempSet = map(getOversampled(potSensorPin), 0, 1023, 285, 440);

  if (++i == 100) { // print debug info every 100th loop 
    i = 0;

    Serial.print("Heater: ");
    Serial.print(tempRead);
    Serial.print(", ");
    Serial.print(heaterSensorVoltage, 4);
    Serial.print(";, ");
    Serial.print(heaterSensorResistance, 4);
    if (tempRead >= 285) {
      Serial.print(", t=");
      Serial.print(map(tempRead, 285, 440, 180, 480));
      Serial.print("°C");
    } else {
      Serial.print(", Temperature below 180°C");
    }  
    Serial.print(". Pot: ");
    Serial.print(tempSet);
    Serial.println(".");
  }
  
  
  if (tempSet > tempRead) {          // main regulation point: if temperature value that set by pot is higher than 
                                     // the temperature read from the soldering iron sensor
    digitalWrite(mosfetPin, HIGH);   // start heating
    digitalWrite(13, HIGH);          // toggle LED on
  } else {                           // in case the soldering iron is hot enough 
    digitalWrite(mosfetPin, LOW);    // stop heating
    digitalWrite(13, LOW);           // turn LED off 
  }
}

// Oversampling and averaging data from sensor.
int getOversampled(int sensorPin) {
    unsigned long int res = 0;
  for (int i = 0; i < 64; i++) res += analogRead(sensorPin);
  return res >> 6; // divide result by 64.
}

Конструкция испытывалась больше недели в тех или иных модификациях и особых проблем не выявлено. Ардуина у меня Mega 2560 r3 и честно говоря не исключено, что на других ардуинах может повылазить какая-нибудь несовместимость. Впрочем, это лишь несовместимость, но не дефект самой идеи. Всегда подправить можно.

В  рекомендациях по деталям я указал мосфет на 50в, но у самого такого не оказалось. Существует распространенное мнение, что мосфет должен иметь полуторакратный запас по коммутируемому напряжению, но пока и тридцативольтовый у меня держится. Это семиамперный IRF7201 в корпусе SO8. Ничего похожего на разогрев не наблюдается, хотя производитель даже не позиционирует этот прибор, как logic level. Ни в коем случае этот мой личный опыт не советую воспринимать, как руководство к действию. Риск спалить ардуину возрастает многкратно. Я скорее привожу эти данные, как некое подтверждение устойчивости конструкции.

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

axill
Offline
Зарегистрирован: 05.09.2011

Вы молодец, подошли к задаче обстоятельно, поздравляю!

возьмусь дать ряд коммертариев. 

Фанкционал который вы реализовали можно было легко сделать на tiny13. Так что есть куда стремиться в познании МК.

При реализации на ардуине стоит пойти дальше и реализовать как минимум отображение заданной и текущей температуры

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

встроить контроль обрыва датчика и обрыва нагревателя

регулировка ШИМом может дать более точнуюрегулировку и при наличии хорошего фильтра на выходе (LC,так чтобы преобразовать ШИМ в постоянное напряжение) то можно и продлить жизнь паяльнку - постоянная работа отпониженного напряжения без включений и выключений продлит жизнь любому паяльнику

a5021
Offline
Зарегистрирован: 07.07.2013

axill пишет:

Фанкционал который вы реализовали можно было легко сделать на tiny13. Так что есть куда стремиться в познании МК.

При реализации на ардуине стоит пойти дальше и реализовать как минимум отображение заданной и текущей температуры

Так я и начинал с тиньки. Там и индикация, кстати, сделана, кнопки, динамик. Только полез писать функционал, который, как выяснилось, и не нужен вовсе, да споткнулся об исчерпание места во флеше. Теперь то я вижу, что все замечательно поместится, но суть моего здешнего писательства теперь уже в другом. Начав с прогона алгоритма на ардуине, я подумал, что это же получается совсем недорогой вход в самостоятельную сборку несложной электроники для начинающих. Нет, можно конечно сразу купить готовую станцию или простой паяльник, но станция стоит денег и не всякий кинется ее покупать с неизвестными перспективами, а простым паяльником работать,  это натуру надо иметь. Здесь же за 260 рублей (не считая, правда, денег на детали для схемы) можно получить весьма неплохой инструмент, которым работают профессионалы. Минимум схемы, минимум кода, за вечер можно управиться со всем и во всем разобраться, сразу приступив к распайке проводков на какую-нибудь макетку в качестве тренировки. Да хоть ту же схему перенести с беспаечной макетки на обычную. Не знаю, у всех конечно свое мнение на этот счет, но я бы точно купился.

Цитата:

встроить контроль обрыва датчика и обрыва нагревателя

Это тоже есть все. Даже под истоком мосфета токоизмерительный резистор стоит, чтобы короткое ловить, если скорости реакции схемы конечно хватит. Не хватит, так быть ему еще и предохранителем.

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

Цитата:

регулировка ШИМом может дать более точнуюрегулировку и при наличии хорошего фильтра на выходе (LC,так чтобы преобразовать ШИМ в постоянное напряжение) то можно и продлить жизнь паяльнку - постоянная работа отпониженного напряжения без включений и выключений продлит жизнь любому паяльнику

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

 pinMode(8, OUTPUT);
 TCCR4A=(0<<COM4A1) | (0<<COM4A0) | (0<<COM4B1) | (0<<COM4B0) | (1<<COM4C1) | (0<<COM4C0) | (0<<WGM41) | (1<<WGM40);
 TCCR4B=(0<<ICNC4) | (0<<ICES4) | (0<<WGM43) | (0<<WGM42) | (1<<CS42) | (0<<CS41) | (0<<CS40);

Все, ШИМ с частотой 122.5 гц у нас есть и работает на 8 пине. Теперь просто записывая значения от 0 до 255 во встроенную переменную OCR4C (объявлять отдельно в коде ее не надо) можно менять коэффициент заполнения от нуля до ста процентов. У меня изначально было реализовано слежение за температурой и в зависимости от разницы установленной и измеренной выставлялся разный кофф. заполенения:

    int tempDiff = tempSet - tempRead;
    if (tempDiff >= 50) {
      OCR4C = 255;
    } else if (tempDiff >= 20) {
      OCR4C = 240;
    } else if (tempDiff >= 10) {
      OCR4C = 200;      
    } else if (tempDiff >= 5)  {
      OCR4C = 150;
    } else if (tempDiff >= 3)  {
      OCR4C = 110;
    } else if (tempDiff >= 1)  {
      OCR4C = 90;
    } else {
      OCR4C = 100;          // half-power heating up
    }

Вот насчет замыливания шима в постоянное напряжение я не уверен. Не уверен, что это так уж нужно. Работают же паяльники от 220в 50гц. Станции есть, которые питают паяльники переменкой. Шим управление паяльником встречается во многих любительских конструкциях. Не припомню, чтобы кто-то жаловался, что это создает проблемы. Керамические нагреватели (а в описанной конструкции применяется именно такой) вообще сложноубиваемая штука. Наконец, при такой цене заниматься паяльникосбережением непозволительная трата времени. :) Я вон купил его вообще просто так. Вещь хорошая, стоит не дорого, пригодится когда нибудь. Пригодилась. :)

sashok_22
Offline
Зарегистрирован: 23.10.2013

Очень полезная статья! Как раз решил смастерить паяльную станцию на Arduino UNO, но в качестве эксперимента хотелось бы задействовать управление транзистором через ШИМ. Подскажите пожалуйста, каким образом необходимо рассчитывать частоту ШИМ?

Спасибо!

axill
Offline
Зарегистрирован: 05.09.2011

а чем вам не подходит частота которая по умолчанию применяется при использовании analogWrite()?

 

sashok_22
Offline
Зарегистрирован: 23.10.2013

Благодарю за оперативный ответ! :)

Дело в том, что частота ШИМ по умолчанию составляет приблизительно 490Гц (так заявлено на официальном сайте Arduino), а автор статьи зачем-то задействовал таймеры, сконфигурировав на частоту 122.5Гц. Я придал этому большое значение и подумал, что на холостом ходу частота одна, а при номинальной нагрузке другая. Если штатные 490Гц устраивают, то почему в последнем приведённом отрывке скетча меняется значение переменной OCR4C, а не используется функция analogWrite() ?

Насколько я понимаю, analogWrite() устанавливает скважность импульса, а не частоту. Поправьте пожалуйста, если я не прав.

Спасибо!

 

axill
Offline
Зарегистрирован: 05.09.2011

честно не вникал что там настроено по умолчанию. я ШИМ делал настраивая сам и для паяльной станции бы настроил минимум несколько килогерц. При использовании ШИМ на 8-битном таймере чатсота определяется как частота МК (на UNO 16Мгц) деленная на предделитель таймера и деленная на 256

sashok_22
Offline
Зарегистрирован: 23.10.2013

Спасибо!

Тогда у меня последний вопрос. Чем может быть чревата низкая / высокая частота ШИМ в данном случае или особую важность уделять этому не стоит?

axill
Offline
Зарегистрирован: 05.09.2011

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

sashok_22
Offline
Зарегистрирован: 23.10.2013

Только что опробовал "штатный ШИМ" на 12-ти вольтовом паяльнике. Использовал импульсный блок питания, всячески крутил потенциометр, мерял температуру - полет нормальный!

Думаю, что приведенное в статье управление логическими уровнями можно смело использовать и не заморачиваться. В любом случае данная конструкция лучше и надежнее чем слабомощные паяльные станции и китайские паяльники с разнообразными регуляторами температуры. Автору еще раз респект за статью и отдельное спасибо axill за консультацию!

a5021
Offline
Зарегистрирован: 07.07.2013

sashok_22 пишет:

Дело в том, что частота ШИМ по умолчанию составляет приблизительно 490Гц (так заявлено на официальном сайте Arduino), а автор статьи зачем-то задействовал таймеры, сконфигурировав на частоту 122.5Гц. Я придал этому большое значение и подумал, что на холостом ходу частота одна, а при номинальной нагрузке другая. Если штатные 490Гц устраивают, то почему в последнем приведённом отрывке скетча меняется значение переменной OCR4C, а не используется функция analogWrite() ?

Изначальная идея заключалась в том, чтобы уйти за пределы звукового диапазона, т.к. на звуковых частотах паяльник "поёт", хоть и очень негромко. Ночью, когда все спят и дома тихо, звук этот становится различимым, и не сказать, что так уж ласкает слух. Используя analogWrite() с выбором частот не разбежишься, т.ч. прямое управление таймером показалось самым простым выходом.  Сначала вроде двинулся в область ультразвуковых частот, но потом вспомнил про домашних питомцев и отказался от этой затеи, т.к. животные (особенно мелкие) могут слышать высокие частоты и это может доставлять им определенные неудобства. Поэтому ушел в область низких частот. 122.5 Гц показались приемлемым вариантом на каком-то этапе, но в конечном итоге пришел к выводу, что ШИМ тут вообще не нужен. ШИМ имел бы смысл, если бы требовалось управлять скоростью изменения температуры, но паяльнику более важно оставаться в заданном температурном диапазоне и если он из него выходит, то возвращаться с максимальной скоростью. В этом случае наиболее эффективен либо максимальный разогрев, либо полное его отсутствие. Своего  рода релейный режим вкл/откл. Вот и отпал ШИМ за ненадобностью, а идея была признана тупиковой.

Цитата:

Насколько я понимаю, analogWrite() устанавливает скважность импульса, а не частоту. Поправьте пожалуйста, если я не прав.

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

sashok_22
Offline
Зарегистрирован: 23.10.2013

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

Спасибо всем еще раз!

vismut
Offline
Зарегистрирован: 18.10.2013

Парни помогите. Есть ардуиноподобная плата (paperduino), сделал модуль для паяльника, прошил Atmega, все вроде гуд. Светодиод на Pin 13 при включении моргнет разок, а потом горит постоянно. Не подскажите как изменить или внести несколько строк в исходник, чтобы при нагревании диод мигал, по готовности просто горел, ну и в случае превышения температуры просто выключался. Заранее спасибо.

a5021
Offline
Зарегистрирован: 07.07.2013

В исходнике, что приведен в статье, логика работы светодиода (пин 13, строки 78 и 81) такова, что он горит, когда нагреватель включен и тухнет, если нагреватель выключается, т.е. достигнута целевая температура. Такой режим индикации присущ большинству существующих "взрослых" паяльных станций и является наиболее информативным с точки зрения индикации текущего состояния устройства.

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

vismut
Offline
Зарегистрирован: 18.10.2013

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

a5021
Offline
Зарегистрирован: 07.07.2013

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

У вас ардуина подключена к компьютеру? В отладочную консоль есть вывод?

vismut
Offline
Зарегистрирован: 18.10.2013

Не ардуино, а папердуино, но это не меняет сути. На плате есть выводы для подключенния к компьтеру через FTDI-адаптер (до его производства я еще не добрался), но и это не имеет значения, так как паялку планируется использовать автономно. В принципе есть и Ардуино хэнд-мэйд (собственно на ней я и прошивал контроллер, потом его вынул и вставил в папердуино). Думаете есть смысл попробовать Ардуино (просто, если честно, жаба душит, столько я с ней намаялся, особенно с FTDI)?

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

a5021
Offline
Зарегистрирован: 07.07.2013

Самодельные ардуины это конечно здорово, если  интересен и важен сам процесс изготовления. Насчет жабы, при нынешних ценах на них у китайцев, экономическая мотивация в таком хенд-мейде отсутствует начисто:

Я себе такое на днях заказал просто "ни для чего". Вещь хорошая, да и стоит не дорого. Факт, что пригодится.

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

Подключить семисегментный индикатор к ардуине не сложно:

Придется только поколдовать над софтом.

vismut
Offline
Зарегистрирован: 18.10.2013

Спасибо за инфу, буду думать. По поводу про мини, опять таки, нужен адаптер, а он далеко не 10 рублей стоит. вопрос по поводу отладки, она производится програмно или нет?

vismut
Offline
Зарегистрирован: 18.10.2013

И по поводу жабы: я не имел ввиду экономическую сторону вопроса, просто хочется чтобы твой труд пошел на более внушительный проект. Не поймите меня не правильно, я никак не хотел Вас обидеть, идея просто вызывает кучу положительных эмоций, при условии, что на просторах и-нета куча схем для паяльников с термопарой (каждая первая) и здесь нашелся человек который при минимуме деталей сделал такое устройство. АПЛОДИРУЮ СТОЯ.

sashok_22
Offline
Зарегистрирован: 23.10.2013

Всем доброго времени суток!

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

Насчет светодиода и индикации. Согласен, что во всех станциях нагрев индицирует свечение светодиода, а готовность миганием. Штатная функция delay() приведет не только к задержке мигания светодиода, но и к задержке всего кода. При большом желании это можно обойти через millis(). Думаю, что дешевый дисплей или семисегментный индикатор будут куда лучше справляться с этой задачей. Ежели хочется заставить вести светодиод по-своему, то в поисковике - "delay без delay".

До сих пор колеблюсь между приведенным релейным управлением и ШИМ. Посмею задать вопрос. В процессе нагрева трансформатор ведет себя адекватно, а значение на индикаторе изрядно набирает обороты. Как только сопротивление терморезистора паяльника достигает заданного сопротивления, то трансформатор издает звук искрения. Я так думаю, что это связанно с постоянным переходным процессом внутри него? И чем это может быть чревато? Трансформатор ТПП-276. Запаса по току и мощности хватает с горкой.

Думаю попробовать в качестве источника питания адаптер от ноутбука. Импульсник, 65Вт, 3.6А, 19.5V. Что скажете по этому поводу?

Спасибо!

a5021
Offline
Зарегистрирован: 07.07.2013

vismut пишет:

вопрос по поводу отладки, она производится програмно или нет?

Строки с 53-ей по 72-ую скетча выводят по последовательному порту текущее состояние паялки: температуру паяльника, положение переменного резистора и некоторые вычисленные значения. Эти цифры для разных паяльников будут отличаться, т.к. у каждого из них термодатчик (термосопротивление) имеет свои собственные параметры, которые не обязательно точно соответствуют параметрам, по которым я выставлял приведение температуры. В результате, может получиться так, что в крайне-левом положении движка переменного резистора олово на жале плавиться не будет, или, наоборот, жало будет разогреваться много выше, чем точка плавления олова. Оно, конечно, может и ничего страшного, но диапазон регулировки окажется смещен и это, на мой взгляд, будет не совсем правильно.

В 51-ой строке скетча выполняется приведение значений с переменного резистора к значениями получаемым с термодатчика паяльника, т.е. задаются нижняя и верхняя границы регулировки. Уменьшая/увеличивая имеющееся в скетче значение 285 можно добиться, чтобы нижняя граница сместилась в область более низких/высоких температур, а изменяя 440 ту же процедуру проделать с верхней границей. В принципе, это и все регулировки. Тут еще стоить заметить, что если границы регулировок были поправлены, то стоит эти же значения внести в строку 64 скетча, чтобы выводимая в отладке текущая температура паяльника более-менее соответствовала новым значениям.

vismut
Offline
Зарегистрирован: 18.10.2013

http://malatok.at.ua/forum/36-51-1 ссылочка. Посмотрите стоит ли заморачиваться?

a5021
Offline
Зарегистрирован: 07.07.2013

sashok_22 пишет:

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

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

Цитата:
До сих пор колеблюсь между приведенным релейным управлением и ШИМ.

Никто вам не мешает поэкспериментировать с обоими режимами. Поиграться с ШИМом оно само по себе может оказаться интересным, но вот пользы в паялке от него я как-то не обнаружил.

Цитата:
В процессе нагрева трансформатор ведет себя адекватно, а значение на индикаторе изрядно набирает обороты. Как только сопротивление терморезистора паяльника достигает заданного сопротивления, то трансформатор издает звук искрения. Я так думаю, что это связанно с постоянным переходным процессом внутри него? И чем это может быть чревато? Трансформатор ТПП-276. Запаса по току и мощности хватает с горкой.

Звук может и похож на звук искрения, но физическая сущность и происхождение у него другие. Это в трансформаторе "звучат" металлические пластины магнитопровода (сердечника). Дело в том, что регулирование нагревателя, т.е. включение/выключение, происходит с периодичностью несколько десятков раз в секунду и из-за изменяющейся нагрузки с той же частотой магнитопровод испытывает микроколебания, которые в свою очередь вызывают возникновение звуковых волн. В принципе, в этом нет ничего страшного, т.к. трансформаторы вообще склонны вызывать всякие звуки и гудения, но слушать такое "пение" не всегда может быть приятно. Кстати сказать, если вы будете использовать ШИМ, то трансформатор "запоет" уже на частоте ШИМа.

Цитата:
Думаю попробовать в качестве источника питания адаптер от ноутбука. Импульсник, 65Вт, 3.6А, 19.5V. Что скажете по этому поводу?

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

a5021
Offline
Зарегистрирован: 07.07.2013

vismut пишет:

Посмотрите стоит ли заморачиваться?

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

Предположим, что наш 3-разрядный 7-сегментный индикатор подсоединен сегментными выводами к пинам ардуины с номерами от 0 до 7, тогда в скетче проще всего описать это следующим образом:

// Каждый сегмент подключен к соответствующему разряду порта D
#define segmentA        (1 << 0)     // PORTD.0 он же pin 0 ардуино
#define segmentB        (1 << 1)     // PORTD.1 он же pin 1 ардуино
#define segmentC        (1 << 2)     // PORTD.2 он же pin 2 ардуино
#define segmentD        (1 << 3)     // PORTD.3 он же pin 3 ардуино
....
#define segmentDP       (1 << 7)     // PORTD.7 (сегмент десятичной точки) он же pin 7 ардуино
// 
//  Определяем символы из набора сегментов.
// Если все разряды порта D установить в единицу, то загорятся все сегменты, 
// включая десятичную точку. Все разряды в единце соответствуют 
// шестнадцатиричнму числу 0xFF. Если потушить десятичную точку, 
// на индикаторе будет светиться цифра 8. Так и запишем в определении:
#define sign8   0xFF - segmentDP
    // 0 это та же цифра 8, только без горизонтальной палки посредине
#define sign0   sign8 - segmentG
    // 1 это горящие сегменты B и C                            
#define sign1         segmentB + segmentC 
    // 2 это 0 без сегментов С и F
#define sign2         sign0 - segmentC - segmentF
    // 3 это 8 без сегментов E и F
#define sign3         sign8 - segmentE - segmentF
    // 4 это 1 плюс сегменты F и G
#define sign4         sign1 + segmentF + segmentG
    // 6 это 8 без сегмента B
#define sign6         sign8 - segmentB
    // 5 это 6 без сегмента E
#define sign5         sign6 - segmentE
    // 7 это 1 плюс сегмент A
#define sign7         sign1 + segmentA
    // 9 это 8 минус сегмент E
#define sign9         sign8 + segmentE

Это секция знакогенератора. Код я не прогонял через компайлер, т.ч. возможны опечатки и неточности. Главное тут пояснить подход. Если теперь выполнить оператор, скажем, "PORTD = sign5;", то на индикаторе загорится цифра 5. Остальные цифры выводятся похожим образом: PORTD=sign8 зажгет восьмерку, PORTD=sign3 тройку и так далее.

Тут может возникнуть вопрос, а в каком разряде эта цифра загорится. Ответ очень простой -- управляющий контакт какого разряда задействован, на том и загорится. Если задействовать все три управляющих контакта, то будет 555, 888, 333 и т.д. Чтобы вывести что-то отличное от трех повторяющихся цифр нужно последовательно переключить управляющие контакты разрядов, каждый раз выводя в порт D свою цифру.

Схематически алгоритм будет выглядеть так:

1) Выводим в порт D нужную цифру;

2) Подаем управляющий сигнал на контакт нужного разряда;

3) Ждем несколько миллисекунд;

4) Снимаем сигнал поданный в пункте 2;

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

vismut
Offline
Зарегистрирован: 18.10.2013

У меня 3 секции. Соответственно мне тупо нужно убрать 1 транзистор и 1 сопротивление и подключить согласно распиновки моего индикатора. Да а как насчет подключения индикатора через сдвиговый регистр?

P.S. Моя паялка питается от блока питания для струйника НР, там 3 линии: 16в, земля, 32в. 16в через КРЕНку на ардуино, 32в- на паялник.

a5021
Offline
Зарегистрирован: 07.07.2013

vismut пишет:

У меня 3 секции. Соответственно мне тупо нужно убрать 1 транзистор и 1 сопротивление и подключить согласно распиновки моего индикатора.

Именно так. Только обратите внимание, что схема дана для индикатора с общим анодом. Для общего катода подключение будет отличаться.

Цитата:

Да а как насчет подключения индикатора через сдвиговый регистр?

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

Цитата:

P.S. Моя паялка питается от блока питания для струйника НР, там 3 линии: 16в, земля, 32в. 16в через КРЕНку на ардуино, 32в- на паялник.

32 вольта это все-таки многовато. Оно, конечно, опытным путем проверяется, но уже на первый взгляд видно, что мощность на паяльнике значительно возрастает. Сколько я видел принтерных блоков питания, там токи достаточно хилые. Как оно себя будет чувствовать в таких условиях и сколь долго протянет -- вопрос.

vismut
Offline
Зарегистрирован: 18.10.2013

Так что, есть смысл посадить ето счастье на КРЕНку 24в?

vismut
Offline
Зарегистрирован: 18.10.2013

Анод как раз таки общий

a5021
Offline
Зарегистрирован: 07.07.2013

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

Для общего анода описанный мной выше знакогенератор должен выводить в порт инверсные значения. Т.е. для индикации, например, цифры пять это будет выглядеть, как PORTD = ~sign5;

vismut
Offline
Зарегистрирован: 18.10.2013

Ну не знаю, если учесть, что у блока питания мощность 1 ампер, думаю что ничего с паяльником ничего не приключится, если учесть что он расчитан на 2 ампера, да и при нагрузке напряжение падает. У меня есть блок от ноута 24В 3А, на холстом ходу дает 25,6в, но от него пришлось отказаться, так как он дает дичайшие помехи. С чем это связано не понятно. Да есть еще трансформатор от старого матричника. 2 вторички на 10в и 30в переменка, но после того как я подключил выпрямитель к 30в был несколько удивлен померив напряжения- без малого 41в (многовато как-то). По поводу индикатора- код вносить в готовый файл или можно сделать отдельный скетч. Просто у меня была одна идейка насчет CNC-станка и один испанец в своем блоге выложил все что наработал и у него было несколько скетчей: один отвечал за работу шаговиков, другой за связь с компом и обработку команд посылаемых на контроллер и т. д. Прошу прощения за оффтоп , но уж очень хочется разобраться.

vismut
Offline
Зарегистрирован: 18.10.2013

Да и еще посоветуйте какаю-нибудь литературку почитать

a5021
Offline
Зарегистрирован: 07.07.2013

vismut пишет:

Ну не знаю, если учесть, что у блока питания мощность 1 ампер, думаю что ничего с паяльником ничего не приключится, если учесть что он расчитан на 2 ампера, да и при нагрузке напряжение падает.

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

Цитата:

Да есть еще трансформатор от старого матричника. 2 вторички на 10в и 30в переменка, но после того как я подключил выпрямитель к 30в был несколько удивлен померив напряжения- без малого 41в (многовато как-то).

Все правильно. Если говорить упрощенно, то диодный мост увеличивает напряжение на корень из двух. Так как у вас обмотка выдает 30 вольт, то после выпрямителя будет 30 * 1,41 = 42,3 вольта. Для паяльника это очень много.

Цитата:

По поводу индикатора- код вносить в готовый файл или можно сделать отдельный скетч.

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

Насчет литературы, вы не сказали, какая область вас интересует. Так можно и Толстого с Достоевским посоветовать. :)

vismut
Offline
Зарегистрирован: 18.10.2013

Область все таже: ардуино и ардуиноподобные устройства

svkatz
svkatz аватар
Offline
Зарегистрирован: 30.11.2013

У меня к Вам вопрос по поводу LC фильтра.

Какие посоветуете значения сопротивления и электроёмкости ?

А то максимальный ток в паяльнике 2 А при 24 вольтах, как мне кажется, спалит резистор.

Можно ли ограничиться конденсатором, скажем, на 2200 мкф,  без резистора ? Это наверное, замедлит скорость нагрева паяльника на несколько секунд, т.к. ШИМ не будет таким быстрым, но паяльник будет получать стабильное напряжение, а не включения и выключения 200 раз в секунду. Или я не прав ?

a5021
Offline
Зарегистрирован: 07.07.2013

Если вы собрались "разглаживать" ШИМ до постоянного напряжения, то, на мой взгляд, идея эта не стоит того, чтобы тратить на нее время. Большинство профессиональных станций работают либо в релейном режиме (вкл/выкл), либо управляют нагревом посредством ШИМа без всякого сглаживания. Нагревательные элементы паяльников расчитаны на подобную эксплуатацию и нет никакого смысла защищать их от того, чего они не боятся.

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

svkatz
svkatz аватар
Offline
Зарегистрирован: 30.11.2013

Я больше механик, чем электронщик, поэтому в электрических цепях не силен.
В первом комментарии axill порекомендовал использовать RC фильтр. Ну я и подумал, почему бы и нет. В паяльнике, я полагаю нагревательный элемент - это спираль. Возможны помехи от электромагнитной индукции. Иди знай как это понравится блоку питания и MOSFETу. А добавить еще один конденсатор - не такая уж и большая трата времени.
Интересно бы было проверить с практической точки зрения, скачки напряжения от ШИМа с конденсатором и без. Может, кто-то с осциллографом проверит эту теорию опытным путем ? Буду благодарен.

a5021
Offline
Зарегистрирован: 07.07.2013

Вы не находите, что проще отказаться от ШИМа, чем городить огород с LC-фильтрами, проводить исследования и т.п.? Тем более, что в ШИМе и смысла-то особого нет. Я об этом выше уже высказывался и обосновывал.

vismut
Offline
Зарегистрирован: 18.10.2013

http://ic.pics.livejournal.com/ua9uqb/8744718/314486/314486_original.png

Вот нарыл ссылку на шилд ардуиновский. Парняга заморочился так что еще и фен прикрутил. Я с ним списывался, пытался скетч попросить для ознакомления, но тот отписался, что у него "умер" SSD, на котором хранилась вся инфа. Там и про ШИМ что-то проскакивало (в блоге). Есть нюансы: 1) паяльник с термопарой (опять!!!); 2) запчасти не так уж и дешевы. И я так предполагаю, что и скетч достаточно сложен в восприятии для неокрепших молодых ардуиноведов. Но если кому поможет, был рад помочь.

a5021
Offline
Зарегистрирован: 07.07.2013

vismut пишет:

Область все таже: ардуино и ардуиноподобные устройства

По поводу книг: сегодня случайно подвернулся под руку сайт, где доступна масса неплохих книг IT-тематики для бесплатного скачивания, в том числе и по ардуине. Книги на английском. К сожалению, расхожий тезис о том, что проще выучить английский, чем найти нужную информацию на русском, справедлив и в этом случае.

 

sashok_22
Offline
Зарегистрирован: 23.10.2013

Всем доброго времени суток!

Задумался конкретно над словами автора, а именно о пиковом потреблении тока. Возможно глупый вопрос, но прошу подсказки: данное явление в виде скачка тока характерно только при первом включении схемы или же это наблюдается при стабилизации температуры паяльника (при частом открытии и закрытии транзистора). Стоит ли задумываться о токоограничителе?

Спасибо!

 

a5021
Offline
Зарегистрирован: 07.07.2013

Токоограничитель, как отдельный элемент схемы, это врят ли оправдано, но принять меры по снижению пускового тока будет не лишним, если используется маломощный блок питания или коммутирующий мосфет. Самое простое решение -- мягкий старт с использованием ШИМа. Выглядеть это может, как последовательный прогон всех значений коэффициента заполнения на выходе ардуины подключенном к мосфету от нуля до максимума в период около пяти секунд. Смысл этого действия в том, чтобы подавать ток, величина которого на холодном нагревателе максимальна, очень короткими импульсами. Короткие импульсы врят ли способны причинить существенный вред критичным частям схемы, т.к. усредненные по времени величины тока через схему будут не очень велики. По мере роста температуры нагревателя его сопротивление увеличивается и ток через него по закону ома уменьшается. На рабочих температурах он может снижаться до величин меньше ампера. Зависит, конечно, от конструкции паяльника еще. В общем, в рабочем режиме о токах можно не беспокоиться.

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

Как приблизительно оценить температу для нашего случая? Существует ГОСТ 51337-99, который определяет вероятность возникновения ожогов при контакте кожи человека с горячей поверхностью. Для металлических поверхностей там есть вот такой график:

Понимать этот график следует так, что если вы без последствий в виде ожога можете удерживать палец на поверхности горячего металлического предмета без покрытия, как минимум, одну секунду, то температура поверхности врят ли превышает 70 градусов Цельсия. В качестве иллюстрации можно еще добавить, что металлическая поверхность с температурой 100 градусов и выше, вызовет ожог быстрее, чем придет осознание произошедшего. :)

svkatz
svkatz аватар
Offline
Зарегистрирован: 30.11.2013

Паяльная станция на ATmega328p

http://arduino.ru/forum/proekty/payalnaya-stantsiya-na-atmega328p

a5021
Offline
Зарегистрирован: 07.07.2013

svkatz пишет:

Паяльная станция на ATmega328p

Если вы говорите, что механик, а не электронщик, то данная самоделка вполне на уровне. Поглядев на видео подумал, что хорошо бы в индикатор нагрева в виде сферы (что это, теннисный шарик?) вставить RGB-светодиод и менять цвет в зависимости от температуры паяльника. Синий цвет, когда паяльник холодный и вплоть до белого по мере разогрева до максимальных температур.

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

a5021 пишет:

Синий цвет, когда паяльник холодный и вплоть до белого по мере разогрева до максимальных температур.

это какой-то бессмысленно-гуманитарный подход.

у паяльника с терморегулятором всего два состояния:

1. паяльник разогревается до состояния 2.

2. оптимальная температура пайки.

svkatz
svkatz аватар
Offline
Зарегистрирован: 30.11.2013

a5021 пишет:

svkatz пишет:

Паяльная станция на ATmega328p

Если вы говорите, что механик, а не электронщик, то данная самоделка вполне на уровне. Поглядев на видео подумал, что хорошо бы в индикатор нагрева в виде сферы (что это, теннисный шарик?) вставить RGB-светодиод и менять цвет в зависимости от температуры паяльника. Синий цвет, когда паяльник холодный и вплоть до белого по мере разогрева до максимальных температур.

 

Да это теннисный шарик. Его функция - зафиксирорать плату, а диод внутри это так, для красоты.

a5021
Offline
Зарегистрирован: 07.07.2013

Клапауций пишет:

у паяльника с терморегулятором всего два состояния:

1. паяльник разогревается до состояния 2.

2. оптимальная температура пайки.

У паяльника рабочая температура (пункт 2) может быть в диапазоне 185-480 градусов. Для пайки мелких нежных деталей лучше работать на 200-220 градусах. Бессвинцовку ремонтировать -- 300-350. Демонтаж чего-то массивного, тут бывает требуется раскалять до максимума. Вот значения этих температур и выводить дополнительно цветом. 

Клапауций
Offline
Зарегистрирован: 10.02.2013

a5021 пишет:

У паяльника рабочая температура (пункт 2) может быть в диапазоне 185-480 градусов. Для пайки мелких нежных деталей лучше работать на 200-220 градусах. Бессвинцовку ремонтировать -- 300-350. Демонтаж чего-то массивного, тут бывает требуется раскалять до максимума. Вот значения этих температур и выводить дополнительно цветом. 

ок - и, какого цвета будет оптимальная температура для пайки припоем ПОС-60?

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

потому, как:

ПОС-90  - температура плавления 222 градусов
ПОС-60 - температура плавления 190 градусов
ПОС-50 - температура плавления - 222 градуса
ПОС-40 - температура плавления - 235 градусов
ПОС-30 - температура плавления - 256 градусов
ПОС-18 - температура плавления - 277 градусов
ПОС-4-6 - температура плавления - 265 градусов

 

a5021
Offline
Зарегистрирован: 07.07.2013

Клапауций пишет:

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

В данном случае именно, что "на глаз". Это воспомогательная индикация, не отменяющая основную, но дополняющая ее. Она не будет иметь большого значения, но оценить быстрым взглядом насколько примерно разогрет паяльник поможет.

PS. Фиксированную температуру плавнения имеют только ПОС-61 и ПОС-63. У остальных плавление начинается при 183 градусах и заканчивается примерно на указанных вами значениях.

a5021
Offline
Зарегистрирован: 07.07.2013

svkatz пишет:

Да это теннисный шарик. Его функция - зафиксирорать плату, а диод внутри это так, для красоты.

Вот пусть красота и приносит пользу. :) Трехцветный светодиод, кстати, это само по себе красиво.

Клапауций
Offline
Зарегистрирован: 10.02.2013

a5021 пишет:

В данном случае именно, что "на глаз". Это воспомогательная индикация, не отменяющая основную, но дополняющая ее. Она не будет иметь большого значения, но оценить быстрым взглядом насколько примерно разогрет паяльник поможет.

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

a5021 пишет:

PS. Фиксированную температуру плавнения имеют только ПОС-61 и ПОС-63. У остальных плавление начинается при 183 градусах и заканчивается примерно на указанных вами значениях.

кому интересна температура припоя в состоянии "каши"?