Стал настраивать схему для термопар и столкнулся с проблемой. Для канала паяльника. Подстроичником Начало выставил комнатную темперетуру по термометру в мультиметре 27 градусов. Включаю нагреватель паяльника. температура на дисплее стала подыматься быстрее чем по мультиметру. Догнал температуру по индикатору до 150 градусов, а на мультиметре где то 90 градусов. Отключаю нагреватель паяльника. Температура на дисплее начинает снижаться по 1-2 градуса, а на мультиметре поднимается почти до 180 градусов. Потом по мультиметру немного еще растет и затем начинает падать. Это мне все понятно. Пока произойдет отдача тепла жалу и т. д. Жду пока температура на дисплее спадет градусов до 100 (по мультиметру она больше на 50-60 градусов). Включение и отключение нагревателя паяльника делаю раза два три, чтобы жало получило нужную температуру. Далее подстроичником Шкала подгоняю температуру на дисплее к температуре на мультиметре. Даю остыть паяльнику и когда на мультиметре уже показывается комнатная температура, то на дисплее станции она выше на 30-40 градусов. Я опять ее выставляю на дисплее станции до комнатной и повторяю процесс опять. В конце получается таже ситуация. Т. е. показания на дисплее после остывания паяльника до комнатной температуры не соответствуют это самой комнатной температуре. Что я делаю не так? Или это операционник какой то глюкнутый? Операционник LM358. Пробовал несколько из этой партии, что купил.
Не надо отключать.
Нужно так: Выставить комнатную (подстр. "начало"), выставить кнопками заданную сперва не высокую, град. 100-200 и включить канал и смотреть за образцовым измерителем. Нужно, что бы температура стабилизировалась на каком-то значении, т.е. и по индикатору встала и по образцовому измерителю. К примеру, задали 200 град., стабилизировалась, по индикатору показывает 200, а по образцовому занижает - нужно потихоньку увеличивать сопротивление в обратной связи ("шкала"). Если не хватает, то увеличить постоянный резистолр в этой же цепи (ОС). Если по образцовому больше, чем по индикатору и подстроечника не хватает, то уменьшить постоянный резистор. Если видно, что фактическая температура (на образцовом) сильно "попёрла" вверх, то лучше отключить канал и увеличить сопротивление в цепи ОС, пока не поджарили паяльник, по идее уж лучше пусть измеренная завышает относительно реальной, чем занижает - тогда будет недогрев, что безопаснее.
Допустим, диапазона подстроечника хватило и удалось настроить близко по образцовому и по индикатору (учитывайте, что показания друг относительно друга будут выравниваться с запозданием, т.е. нужно чуть выждать). Поднимаем заданную температуру градусов до 350 (ну можно 400), ждём пока стабилизируется, подстраиваем "шкалой". Отключаем канал и идём пить чай, пока остывает до комнатной. Подстраиваем "началом" и включаем нагреватель. Ждём, пока стабилизируется. Подстраиваем разницу "шкалой" и опять отключаем, пусть остывает. Можно ещё разок-два повторить, что бы улеглось в диапазон. Как бы всё. Заодно и чаю напьётесь...
На небольшие отклонения от образцового особо не стОит заморачиваться - нелинейность характеристики термопары, несовершенство 358-го ОУ, тепловая инерция и разница между температурой термодатчика и поверхности жала всё равно не позволят выполнять точные измерения.
Спасибо за ответ. Я в принципе так и делал. Только вот этот самый баланс уже дня три не мог найти. Оказалась LM ка какая то левая что ли. В общем заменил и вроде в канале паяльника стало показывать температуру близкую к показаниям мультиметра. А в сталой LM ке в обратной цепи когда крутищ подстроичник показания комнатной температуры уходили градусов на 40. Да и общее сопротивление обратной связи при котором можно было выставлять начало шкалы получалось около 10к. Сейчас заменил LM ку и сопротивление обратной связи стало 47К постоянное и 47к подстроечное ( установленное на 20-25к). Буду теперь более точно подстраивать.
Олег доброго дня, у меня в планах собрать фен отдельно компактный, обратил внимание на эту разработку (станция) https://www.drive2.ru/b/458269575583143473/ думаю сделать исключитльно на фен, канал паялника не убирать но и не задейстовать. Хочется узнать ваше мнение по безопастности устройства +и - на ваш взляд? возможно в не далеких планах будете разрабатывать тогда подожду :)
Это то же самое, что и в этой теме, с кое-каким доработками и теми же недочётами: не особо стабильное удержание заданной температуры и спорные значения диапазонов преобразования выходного сигнала ОУ, вследствие чего может и не работать защита по перегреву. Ну и (конкретно по вашей ссылке) отсутствие реле защиты для канала фена, что я считаю крайне обязательным. Где-то там в теме была прошивка с добавленным реле защиты, но вопросы по работоспособности защиты остался. В принципе, достаточно просто уточнить диапазоны преобразования, что бы был запас по выходу ОУ.
Цитата:
канал паялника не убирать но и не задейстовать.
КМК, лучше тогде его (паяльник) полностью "выкорчевать" - зачем занимать память и делать МК лишнюю работу?
Благо это несложно, что в той, что в моей версии...
Цитата:
возможно в не далеких планах будете разрабатывать тогда подожду
Скорее всего, в первую очередь, я поиграюсь с паялом на Т12, а фен хочу заказать ещё один и сделать чисто фен-версию. Возможно, если получится, то и с программной разгонкой измерительного усилителя и кое-какой удобняшкой, что-бы не париться с настройками, как сейчас.
Да и что там разрабатывать-то, делов на один-два вечера, не торопясь... Практически всё готово же -
1. текущую прошивку "покромсать" на предмет выкидывания паяльника и применения дисплея поменьше (20х4 тут слишком избыточным будет).
2. аналогично упростить и схему, с небольшой корректировкой - сменить текущий пин на ШИМ вентилятора на другой, что бы можно было поиграть с частотой ШИМ (мало ли, звук будет беспокоить).
3. С учётом всех этих изменений можно применить одноплатный вариант от Руслана, так же выкинув всё, что относится к паяльнику и "утоптать" под СМД, для бОльшей компактности. Я бы только измерительный усилитель вынес в отдельный маленький модуль, цепляющийся в основной плате - можно попробовать и другие варианты усилителей, без значительных переделок.
Думаю, что тогда получится более интересный по качеству работы и безопасности (хотя и не более компактный) вариант...
Это не транзисторы, а симисторы (симметричные тиристоры).
BT139 ставьте, будет надёжнее. 136-й по току (4А) сильно впритык, при заявленных китайцами 700 ватт (я сам не измерял, сколько он хавает по факту)...
Функция считывает значение с указанного аналогового входа. Большинство плат Arduino имеют 6 каналов (8 каналов у платы Mini и Nano, 16 у Mega) c 10-битным аналого-цифровым преобразователем (АЦП). Напряжение поданное на аналоговый вход, обычно от 0 до 5 вольт будет преобразовано в значение от 0 до 1023, это 1024 шага с разрешением 0.0049 Вольт. Разброс напряжение и шаг может быть изменен функцией analogReference().
Считывание значение с аналогового входа занимает примерно 100 микросекунд (0.0001 сек), т.е. максимальная частота считывания приблизительно 10,000 раз в секунду.
как узнать с какой скорось ведутся замеры АЦП температур?
По работе АналогРид уже выше ответил MkTwo, а конкретно по станции - не чаще 50 мсек (ограничено в коде),
да и функция оверсемплинга работает не так, как положено. Всмысле, толку от неё никакого. Никто не заметил и я в том числе ))
pter пишет:
защиту(температура не растет или не падает к заданной в течение 10 сек)
Да можно, по идее, только для какого случая?
КМК, тех защит, что есть сейчас, вроде хватает для всех аварийных ситуаций.
Т.е.
1. при кз в цепи термодатчика - измеренная температура ниже 10 град. - отключаем.
2. при обрыве в цепи термодатчика - измеренная температура выше любой заданной - отключаем.
3. при пробое регулирующего элемента температура растёт неконтролируемо и превышает заданную более чем на 50 град. - отключаем
4. Не аварийная ситуация: при обрыве регулирующего элемента температура не растёт, фен не греется, теоретически опасной ситуации нет, поэтому не отключаем. Визуально по дисплею сразу будет видно, что нагрев отсутствует.
Здраствуйте,просто при регулировке резистор R15(по схеме sunjob)у меня стаял подстроечный резистор, провод на него оборвало и получилось паяльник разогрелся до красна,так как температуру показывало 50градусов,а по заданию ему надо было нагреть до 250 градусов,заранее благодарю за ответ.
Хм...
Я, конечно, фантазировал и представлял некий случай, когда измерительный ОУ "сдохнет по хитрому" - на выходе есть значение, которое лежит в "нормальном диапазоне работы", к примеру 100 град и оно не меняется, а задано, к примеру, 300. Тогда станция будет пытаться "накочегарить" эти 300 град, пока не расплавится, но не думал, что это возможно реально ))
Сейчас прикину, куда такую защиту можно вкорячить...
Не понял этой логики, почему вычитаем из текущей температуры, ведь как сказали температура была 50 г и не менялась. Сохраняется значение температуры и с пустя 10 сек температура осталась таже. Данное условие не сработает if(abs(GetSolderT - S_tmp) > 10
мне кажется нужно проверять SetSolderT.
Логика - нам нужно отслеживать состояние, когда температура не изменяется, т.е. измеренное значение.
Заданное значение, в данном случае, нам вроде и не и нужно.
ЗЫ. Код выше - фигня, работать не будет, нужно ещё подумать.
Как раз если установленная температура больше текущей и показания текущей и не менятеся ,и опасно данная авария. Поэтому мне кажется учитывать установленную тепмературу как раз и надо тоже.
Тут заморочка ещё в том, что состояний как минимум несколько -
1. в начале нагрева разница температур за какое-то время обязана быть
2. в точке стабилизации разницы нет или она мала (+/- пара градусов)
3. переходный режим - ещё не стабилизировались, но температура колеблется вблизи заданной и может совпасть так, что будут измерены два очень близких значения, что будет трактовано, как "неизменение температуры".
4. может ещё чего забыл...
По первому пункту можно проверять модуль раздницы установленной и тукущей температуры уменьшается или нет. Т.е при установки нового значения высчитываем модуль раздницы температур и при наборе темперытуры он должен уменьшаться.
OlegK, Русл@н, Подскажите пожалуйста, возможно ли использование arduino на базе atmega 368P-AU? В наличии просто есть, а из китая ждать долго... Прошивку собираюсь изпользовать из архива "Станция V2.0 RUSLAN"
Пользуюсь вашей станцией и очень нравится. Есть только вопрос с предложением. Когда включен паяльник или фен и уменьшать температуру более 50 градусов, станция уходит в защиту, и появляется "!". Получается надо выключить уменьшить а потом опять включить, когда остынет. Пару раз на это натыкался.
Можно это исправить. Хотя не критично.
И последнее хочу переспросить зуммен нужен простой или со встроенным генератором?
Когда включен паяльник или фен и уменьшать температуру более 50 градусов, станция уходит в защиту
Температуру лучше уменьшать ступенчато, градусов по 30-40 (изменить - чуть подождать, что бы успело подостыть). Особенно для паяльника, он более инерционен. Это, как бы издержки наличия защиты по перегреву, но на практиче, вроде не требуется регулярно намного изменять заданную температуру.
Если же при регулировке защита сработала, можно нажать кратковременно кнопку включения канала.
А вообще, нужно чуть увеличить время обработки удержания кнопок + и - с 200 до 500 мсек будет удобнее выставлять температуру длительным нажатием и задание будет медленнее изменяться.
После уменьшения фен на 70% ШИМ успевает сбивать температуру и защита не срабатывает.
Т.е.в обработчике кнопок ScanButtons():
if ( millis() - UPbuttonPressTime >= 500 )
if ( millis() - DWNbuttonPressTime >= 500 )
Цитата:
зуммен нужен простой или со встроенным генератором?
Я использовал активный, кто-то из ребят и пассивный применял. В процедуре Beep() предусмотрены обе возможности:
/* Sound procedure */
void Beep(uint16_t duration) {
/* for active buzzer */
D12_High;
delay_ms(duration);
D12_Low;
/* for passive buzzer */
//tone(pinBuzzer, 1000, duration);
}
Убрал, т.к. первый вариант был слеплен наспех, он не мешал, но и работать не работал. Второй вариант срабатывал при неизменении температуры, но иногда, при выходе на стабилизацию или изменении задания, отключал канал, т.е. ложно срабатывал.
Сейчас пока тестирую черновой третий вариант )) У вас прошивка полностью моя залита или в чём-либо модифицированная?
Если моя, то можете попробовать тоже потестировать.
К примеру, для канала паяльника -
/* Additional protection, if the temperature is not changed within 5 secs */
static uint32_t prevScontrol;
static uint16_t s_tmp;
static boolean s_ctrl;
uint16_t delta = ABS(SetSolderT, GetSolderT);
if (s_ctrl) {
s_tmp = GetSolderT;
s_ctrl = false;
}
if (millis() - prevScontrol > 5000) {
prevScontrol = millis();
s_ctrl = true;
uint16_t delta_2 = ABS(GetSolderT, s_tmp);
if (delta_2 < 2 && delta > 10) {
SProtection();
return;
}
}
втыкаете этот кусок в процедуру WorkWithSolder() между защитой от перегрева
/* Overheat protection, or if thermoresistor value is not valid */
if (GetSolderT > SetSolderT + 50 || GetSolderT < 10) {
SProtection();
return;
}
и включением защитного реле
/* Turn ON relay */
D4_High;
и в самый конец скетча добавьте такую функцию -
uint16_t ABS(uint16_t a, uint16_t b) {
if (a > b) return (a - b);
else return (b - a);
}
Проверить работу защиты можно такими способами -
После получения текущей температуры GetSolderT, если она больше 200, то присвоить ей 200 град. Задание выставить, к примеру, на 300 град. тогда до 200 паяльник будет греться, а затем "зависнет" и через несколько секунд должен отключиться.
Либо вытащить предохранитель по цепи 24 вольт (на паяльник) и включить канал. Греть, естественно, он не будет, температура тоже будет стоять и должно произойти отключение.
Ну и то, что при работе и изменении температуры отключений происходить не должно.
Когда включен паяльник или фен и уменьшать температуру более 50 градусов, станция уходит в защиту, и появляется "!".
...
Можно это исправить.
Самое простое - чуть изменить условие и врубать защиту не по превышению температуры над заданной, а тупо по максимальному значению, к примеру 410-450 град для паяльника (при макс. 400) и 460-500 град. для фена (при макс 450).
Тогда, при регулировке вниз не будет срабатывать защита из-за разницы заданной и измеренной 50 и более град. Особенно это касается паяльника.
Добрый вечер. Подключаюсь к теме. В процессе печатка и прочие плюшки. Вернее все оттравленно, черновой вариант, идет отладка... Так-же импульсный блок питания собственной разработки из убитого адаптера для зарядки ноутбука HP. Дождусь детальки только и в бой! С фотками, печаткой и разъяснениями.
Очень признателен автору за создание сего девайса. И вопрос:
Выложите пожалуйста скетч для среды Ардуино с библиотеками.
Самое простое - чуть изменить условие и врубать защиту не по превышению температуры над заданной, а тупо по максимальному значению, к примеру ... [skipped]
А ведь это абсолютно никак не поможет при овученных выше неисправностях схемы, по типу:
у меня стаял подстроечный резистор, провод на него оборвало и получилось паяльник разогрелся до красна,так как температуру показывало 50градусов,а по заданию ему надо было нагреть до 250 градусов
Я думаю. чо от подобного надо спасаться не столько программно, (ибо все подобные решения неминуемо будут завязаны на блок предварительного, назовем его так, усилителя), а на аппаратное примитивнейшее решение...
Сигнал с термистора (или термопары) мы, еще до ДО УСИЛЕНИЯ, отбираем на отдельный блок компаратора.. который при превышении максимально допустимого уровня дает сигнал ошибки..
Все...
единственный щанс, на одновременный выход из строя и компаратора и блока предватирельного усиления вигнала с датчика температуры настолько ничтожен, что его можно считать пренебрежимо малым..
Добрый вечер. интересная тема начал делать эту станцию уже почти всё сделал , почитывал форум что бы не надоедать но вот задача появилась прошить адруино в этом деле я -0, . Обращаясь к вам Олег, о последовательности файлов что за чем залить в контроллер.
Вроде как предвидится свободное время, отчего же и не поиграться в схемотехнику?))
Подскажи пожалуйста уровни напряжений на терморезисторе и термопаре, которые можно считать достаточными для аварийного отключения (скажем 470 градусов, но если уровни могут быть разными, то какие должны быть и для чего..)
Полагаю Nano у вас есть! Поэтому качаете отсюда https://www.arduino.cc/en/Main/OldSoftwareReleases#previous программу Arduino IDE лучше версию 1.6.7 (она стабильней и программа на русском языке) из второго поста качайте прошивку (или по ардуиновски - скетч) после установки программы вы увидите, что скетч распознается как файл для Arduino IDE, запускайте его, программа откроется и вы увидите КОД скетча, далее подключайте Nano в USB идите в раздел ИНСТРУМЕНТЫ далее ПЛАТА и выбираете Ардуино НАНО, под ПЛАТОЙ есть раздел ПОРТ проверяйте чтобы он был активный COM1-COM3 (у всех по разному) и нажимаете ЗАГРУЗКА (груглая кнопка со стрелочкой в левом верхнем углу под надписью Файл) и смотрите за процессом, если ошибки не вылезли значит все случилось, елси будут ошибки - "красный текст" то надо разбираться.
В своих изысканиях я например уже эволюционировал :) перешел на T12 (Bakon 950D уже писал свои ощущения в форум но как то не разместилось видимо ошибка была) ручка тонкая, длинна 4 см, сумер ювелирная работа, нагрев моментальный, новые ощущения (почти как переход в автомобилях на класс выше), сейчас жду здесь на форуме отдельно разработку фена (корпус есть остальное покупать надо будет и не факт что дешевле выйден, но убежден что у Олега безопастность на порядки выше а фены горят бывает ...), но если не сложиться то куплю аналогичный ФЕН как Bakon в таком же корпусе (редко феном пользовался а он должен быть но компактный), так что призываю продолжить изыскания в области T12 (но только с компактной ручкой)
А что мешает прибубенить такой паяльник к данной станции то?!?!?! Нет ничего невозможного!
Я так понял там терморезистор стоит вместо термопары... Так это решаемо. Схема у автора данной ветки заточена. Осталось только текстолит разрисовать и вперед! Закончу свои труды и отрисую себе модуль для термопары. Хороший паяльник, надо осваивать.
Я сам моделировать не умею, только копирование и небольшие доработки (электроника хобби) да и уже не актуально, а Олег проговаривал что хочет продолжить на T12 но жала у них друг от друга отличаются (сопротивлением или еще чем) и нужны индивидуальные профили, вот ссылка на видео где один товаришь начал разработку в этом направление? но у него два канала по 3 жала и на каждое жало свой профиль.
Подскажи пожалуйста уровни напряжений на терморезисторе и термопаре, которые можно считать достаточными для аварийного отключения
Я всё же считаю, что текущих защит теперь вполне достаточно (после добавления дополнительной защиты).
Не перекрывается лишь случай, если зависнет МК при импульсе открытия канала фена, но и это можно устранить активацией ватчдога - после ребута станция перейдёт в отключенное состояние.
Но если нее пропала охота поизвращаться, то вот: канал фена - 19 мВ при 450 град., канал паяльника - 210 мВ при 400 град. Это у меня максимальные температуры, которые можно выставить.
Точные значения приводить нет смысла, т.к. они одинаковыми у всех всё равно не будут и нужно предусматривать подстроечные элементы.
Sergant пишет:
сейчас жду здесь на форуме отдельно разработку фена
Это можно сделать очень быстро, упростить плату и скетч на предмет выкидывания всего, что относится к паяльнику. Просто нет пока лишнего фена, нужно заказывать.
Пост #72
Стал настраивать схему для термопар и столкнулся с проблемой. Для канала паяльника. Подстроичником Начало выставил комнатную темперетуру по термометру в мультиметре 27 градусов. Включаю нагреватель паяльника. температура на дисплее стала подыматься быстрее чем по мультиметру. Догнал температуру по индикатору до 150 градусов, а на мультиметре где то 90 градусов. Отключаю нагреватель паяльника. Температура на дисплее начинает снижаться по 1-2 градуса, а на мультиметре поднимается почти до 180 градусов. Потом по мультиметру немного еще растет и затем начинает падать. Это мне все понятно. Пока произойдет отдача тепла жалу и т. д. Жду пока температура на дисплее спадет градусов до 100 (по мультиметру она больше на 50-60 градусов). Включение и отключение нагревателя паяльника делаю раза два три, чтобы жало получило нужную температуру. Далее подстроичником Шкала подгоняю температуру на дисплее к температуре на мультиметре. Даю остыть паяльнику и когда на мультиметре уже показывается комнатная температура, то на дисплее станции она выше на 30-40 градусов. Я опять ее выставляю на дисплее станции до комнатной и повторяю процесс опять. В конце получается таже ситуация. Т. е. показания на дисплее после остывания паяльника до комнатной температуры не соответствуют это самой комнатной температуре. Что я делаю не так? Или это операционник какой то глюкнутый? Операционник LM358. Пробовал несколько из этой партии, что купил.
Не надо отключать.
Нужно так: Выставить комнатную (подстр. "начало"), выставить кнопками заданную сперва не высокую, град. 100-200 и включить канал и смотреть за образцовым измерителем. Нужно, что бы температура стабилизировалась на каком-то значении, т.е. и по индикатору встала и по образцовому измерителю. К примеру, задали 200 град., стабилизировалась, по индикатору показывает 200, а по образцовому занижает - нужно потихоньку увеличивать сопротивление в обратной связи ("шкала"). Если не хватает, то увеличить постоянный резистолр в этой же цепи (ОС). Если по образцовому больше, чем по индикатору и подстроечника не хватает, то уменьшить постоянный резистор. Если видно, что фактическая температура (на образцовом) сильно "попёрла" вверх, то лучше отключить канал и увеличить сопротивление в цепи ОС, пока не поджарили паяльник, по идее уж лучше пусть измеренная завышает относительно реальной, чем занижает - тогда будет недогрев, что безопаснее.
Допустим, диапазона подстроечника хватило и удалось настроить близко по образцовому и по индикатору (учитывайте, что показания друг относительно друга будут выравниваться с запозданием, т.е. нужно чуть выждать). Поднимаем заданную температуру градусов до 350 (ну можно 400), ждём пока стабилизируется, подстраиваем "шкалой". Отключаем канал и идём пить чай, пока остывает до комнатной. Подстраиваем "началом" и включаем нагреватель. Ждём, пока стабилизируется. Подстраиваем разницу "шкалой" и опять отключаем, пусть остывает. Можно ещё разок-два повторить, что бы улеглось в диапазон. Как бы всё. Заодно и чаю напьётесь...
На небольшие отклонения от образцового особо не стОит заморачиваться - нелинейность характеристики термопары, несовершенство 358-го ОУ, тепловая инерция и разница между температурой термодатчика и поверхности жала всё равно не позволят выполнять точные измерения.
Спасибо за ответ. Я в принципе так и делал. Только вот этот самый баланс уже дня три не мог найти. Оказалась LM ка какая то левая что ли. В общем заменил и вроде в канале паяльника стало показывать температуру близкую к показаниям мультиметра. А в сталой LM ке в обратной цепи когда крутищ подстроичник показания комнатной температуры уходили градусов на 40. Да и общее сопротивление обратной связи при котором можно было выставлять начало шкалы получалось около 10к. Сейчас заменил LM ку и сопротивление обратной связи стало 47К постоянное и 47к подстроечное ( установленное на 20-25к). Буду теперь более точно подстраивать.
Олег доброго дня, у меня в планах собрать фен отдельно компактный, обратил внимание на эту разработку (станция) https://www.drive2.ru/b/458269575583143473/ думаю сделать исключитльно на фен, канал паялника не убирать но и не задейстовать. Хочется узнать ваше мнение по безопастности устройства +и - на ваш взляд? возможно в не далеких планах будете разрабатывать тогда подожду :)
Это то же самое, что и в этой теме, с кое-каким доработками и теми же недочётами: не особо стабильное удержание заданной температуры и спорные значения диапазонов преобразования выходного сигнала ОУ, вследствие чего может и не работать защита по перегреву. Ну и (конкретно по вашей ссылке) отсутствие реле защиты для канала фена, что я считаю крайне обязательным. Где-то там в теме была прошивка с добавленным реле защиты, но вопросы по работоспособности защиты остался. В принципе, достаточно просто уточнить диапазоны преобразования, что бы был запас по выходу ОУ.
КМК, лучше тогде его (паяльник) полностью "выкорчевать" - зачем занимать память и делать МК лишнюю работу?
Благо это несложно, что в той, что в моей версии...
Скорее всего, в первую очередь, я поиграюсь с паялом на Т12, а фен хочу заказать ещё один и сделать чисто фен-версию. Возможно, если получится, то и с программной разгонкой измерительного усилителя и кое-какой удобняшкой, что-бы не париться с настройками, как сейчас.
Да и что там разрабатывать-то, делов на один-два вечера, не торопясь... Практически всё готово же -
1. текущую прошивку "покромсать" на предмет выкидывания паяльника и применения дисплея поменьше (20х4 тут слишком избыточным будет).
2. аналогично упростить и схему, с небольшой корректировкой - сменить текущий пин на ШИМ вентилятора на другой, что бы можно было поиграть с частотой ШИМ (мало ли, звук будет беспокоить).
3. С учётом всех этих изменений можно применить одноплатный вариант от Руслана, так же выкинув всё, что относится к паяльнику и "утоптать" под СМД, для бОльшей компактности. Я бы только измерительный усилитель вынес в отдельный маленький модуль, цепляющийся в основной плате - можно попробовать и другие варианты усилителей, без значительных переделок.
Думаю, что тогда получится более интересный по качеству работы и безопасности (хотя и не более компактный) вариант...
В схемах фигурируют два симистора: BT139 и BT136. Какой вернее?
Это не транзисторы, а симисторы (симметричные тиристоры).
BT139 ставьте, будет надёжнее. 136-й по току (4А) сильно впритык, при заявленных китайцами 700 ватт (я сам не измерял, сколько он хавает по факту)...
Олег подскажите, как узнать с какой скорось ведутся замеры АЦП температур? Т.е сколько раз в секунду замеров температуры получается.
Функция analogRead()
Функция считывает значение с указанного аналогового входа. Большинство плат Arduino имеют 6 каналов (8 каналов у платы Mini и Nano, 16 у Mega) c 10-битным аналого-цифровым преобразователем (АЦП). Напряжение поданное на аналоговый вход, обычно от 0 до 5 вольт будет преобразовано в значение от 0 до 1023, это 1024 шага с разрешением 0.0049 Вольт. Разброс напряжение и шаг может быть изменен функцией analogReference().
Считывание значение с аналогового входа занимает примерно 100 микросекунд (0.0001 сек), т.е. максимальная частота считывания приблизительно 10,000 раз в секунду.
Вроде оно.
Здравствуйте,OlegK можно реализовать защиту(температура не растет или не падает к заданной в течение 10 сек),заранее благодарю за ответ.
По работе АналогРид уже выше ответил MkTwo, а конкретно по станции - не чаще 50 мсек (ограничено в коде),
да и функция оверсемплинга работает не так, как положено. Всмысле, толку от неё никакого. Никто не заметил и я в том числе ))
Да можно, по идее, только для какого случая?
КМК, тех защит, что есть сейчас, вроде хватает для всех аварийных ситуаций.
Т.е.
1. при кз в цепи термодатчика - измеренная температура ниже 10 град. - отключаем.
2. при обрыве в цепи термодатчика - измеренная температура выше любой заданной - отключаем.
3. при пробое регулирующего элемента температура растёт неконтролируемо и превышает заданную более чем на 50 град. - отключаем
4. Не аварийная ситуация: при обрыве регулирующего элемента температура не растёт, фен не греется, теоретически опасной ситуации нет, поэтому не отключаем. Визуально по дисплею сразу будет видно, что нагрев отсутствует.
Здраствуйте,просто при регулировке резистор R15(по схеме sunjob)у меня стаял подстроечный резистор, провод на него оборвало и получилось паяльник разогрелся до красна,так как температуру показывало 50градусов,а по заданию ему надо было нагреть до 250 градусов,заранее благодарю за ответ.
Хм...
Я, конечно, фантазировал и представлял некий случай, когда измерительный ОУ "сдохнет по хитрому" - на выходе есть значение, которое лежит в "нормальном диапазоне работы", к примеру 100 град и оно не меняется, а задано, к примеру, 300. Тогда станция будет пытаться "накочегарить" эти 300 град, пока не расплавится, но не думал, что это возможно реально ))
Сейчас прикину, куда такую защиту можно вкорячить...
ЗЫ. <код удалил, как нерабочий>
Не понял этой логики, почему вычитаем из текущей температуры, ведь как сказали температура была 50 г и не менялась. Сохраняется значение температуры и с пустя 10 сек температура осталась таже. Данное условие не сработает
if
(abs(GetSolderT - S_tmp) > 10
мне кажется нужно проверять SetSolderT.
Логика - нам нужно отслеживать состояние, когда температура не изменяется, т.е. измеренное значение.
Заданное значение, в данном случае, нам вроде и не и нужно.
ЗЫ. Код выше - фигня, работать не будет, нужно ещё подумать.
То что нужно отслеживать состояние растет или падает температура в зависевости измениласть ли установленная тем это понятно.
Код который выше был, не логичный был).
if
(abs(SetSolderT- S_tmp) > 10 может так попробуйте.
Как раз если установленная температура больше текущей и показания текущей и не менятеся ,и опасно данная авария. Поэтому мне кажется учитывать установленную тепмературу как раз и надо тоже.
Тут заморочка ещё в том, что состояний как минимум несколько -
1. в начале нагрева разница температур за какое-то время обязана быть
2. в точке стабилизации разницы нет или она мала (+/- пара градусов)
3. переходный режим - ещё не стабилизировались, но температура колеблется вблизи заданной и может совпасть так, что будут измерены два очень близких значения, что будет трактовано, как "неизменение температуры".
4. может ещё чего забыл...
По первому пункту можно проверять модуль раздницы установленной и тукущей температуры уменьшается или нет. Т.е при установки нового значения высчитываем модуль раздницы температур и при наборе темперытуры он должен уменьшаться.
OlegK, Русл@н, Подскажите пожалуйста, возможно ли использование arduino на базе atmega 368P-AU? В наличии просто есть, а из китая ждать долго... Прошивку собираюсь изпользовать из архива "Станция V2.0 RUSLAN"
pleshkovpa, можно, конечно.
Добрый вечер.
Пользуюсь вашей станцией и очень нравится. Есть только вопрос с предложением. Когда включен паяльник или фен и уменьшать температуру более 50 градусов, станция уходит в защиту, и появляется "!". Получается надо выключить уменьшить а потом опять включить, когда остынет. Пару раз на это натыкался.
Можно это исправить. Хотя не критично.
И последнее хочу переспросить зуммен нужен простой или со встроенным генератором?
С большой благодарностью автору.
Температуру лучше уменьшать ступенчато, градусов по 30-40 (изменить - чуть подождать, что бы успело подостыть). Особенно для паяльника, он более инерционен. Это, как бы издержки наличия защиты по перегреву, но на практиче, вроде не требуется регулярно намного изменять заданную температуру.
Если же при регулировке защита сработала, можно нажать кратковременно кнопку включения канала.
А вообще, нужно чуть увеличить время обработки удержания кнопок + и - с 200 до 500 мсек будет удобнее выставлять температуру длительным нажатием и задание будет медленнее изменяться.
После уменьшения фен на 70% ШИМ успевает сбивать температуру и защита не срабатывает.
Т.е.в обработчике кнопок ScanButtons():
Я использовал активный, кто-то из ребят и пассивный применял. В процедуре Beep() предусмотрены обе возможности:
Здравствуйте,OlegK почему вы убрали скетч по защите,заранее благодарю за ответ.
Убрал, т.к. первый вариант был слеплен наспех, он не мешал, но и работать не работал. Второй вариант срабатывал при неизменении температуры, но иногда, при выходе на стабилизацию или изменении задания, отключал канал, т.е. ложно срабатывал.
Сейчас пока тестирую черновой третий вариант )) У вас прошивка полностью моя залита или в чём-либо модифицированная?
Если моя, то можете попробовать тоже потестировать.
К примеру, для канала паяльника -
втыкаете этот кусок в процедуру WorkWithSolder() между защитой от перегрева
и включением защитного реле
и в самый конец скетча добавьте такую функцию -
Проверить работу защиты можно такими способами -
После получения текущей температуры GetSolderT, если она больше 200, то присвоить ей 200 град. Задание выставить, к примеру, на 300 град. тогда до 200 паяльник будет греться, а затем "зависнет" и через несколько секунд должен отключиться.
Либо вытащить предохранитель по цепи 24 вольт (на паяльник) и включить канал. Греть, естественно, он не будет, температура тоже будет стоять и должно произойти отключение.
Ну и то, что при работе и изменении температуры отключений происходить не должно.
...
Можно это исправить.
Самое простое - чуть изменить условие и врубать защиту не по превышению температуры над заданной, а тупо по максимальному значению, к примеру 410-450 град для паяльника (при макс. 400) и 460-500 град. для фена (при макс 450).
Тогда, при регулировке вниз не будет срабатывать защита из-за разницы заданной и измеренной 50 и более град. Особенно это касается паяльника.
Прошивку 1.2 с разными изменениями и этим в том числе, выложу после "обкатки".
Добрый вечер. Подключаюсь к теме. В процессе печатка и прочие плюшки. Вернее все оттравленно, черновой вариант, идет отладка... Так-же импульсный блок питания собственной разработки из убитого адаптера для зарядки ноутбука HP. Дождусь детальки только и в бой! С фотками, печаткой и разъяснениями.
Очень признателен автору за создание сего девайса. И вопрос:
Выложите пожалуйста скетч для среды Ардуино с библиотеками.
По комплектухе:
Дисплей: 2004 Crystal Liquid (синенький) + i2c адаптер
Опреационники: LM358
Мозг: Ардуино Про Мини от дядюшки Ляо. На борту ATMega168 5-ти вольтовая 16-ти мегагерцовая.
Вот такой: http://www.ebay.com/itm/Pro-Mini-Atmega168-Module-5V-16M-For-Arduino-Nan...
В данный момент жду металические стойки и конденсаторы...
Архив, по ссылке в сообщении #2 - библы в Libraries, ino-файл в папке SS3.
убрано
Самое простое - чуть изменить условие и врубать защиту не по превышению температуры над заданной, а тупо по максимальному значению, к примеру ... [skipped]
А ведь это абсолютно никак не поможет при овученных выше неисправностях схемы, по типу:
у меня стаял подстроечный резистор, провод на него оборвало и получилось паяльник разогрелся до красна,так как температуру показывало 50градусов,а по заданию ему надо было нагреть до 250 градусов
Я думаю. чо от подобного надо спасаться не столько программно, (ибо все подобные решения неминуемо будут завязаны на блок предварительного, назовем его так, усилителя), а на аппаратное примитивнейшее решение...
Сигнал с термистора (или термопары) мы, еще до ДО УСИЛЕНИЯ, отбираем на отдельный блок компаратора.. который при превышении максимально допустимого уровня дает сигнал ошибки..
Все...
единственный щанс, на одновременный выход из строя и компаратора и блока предватирельного усиления вигнала с датчика температуры настолько ничтожен, что его можно считать пренебрежимо малым..
По защите от "озвученных выше" смотрите выше, в #726. А то, "что не поможет" - это защита от кз или обрыва датчика/кабеля.
Сделайте.
Удачное и рабочее решение может найти благодарного пользователя.
Добрый вечер. интересная тема начал делать эту станцию уже почти всё сделал , почитывал форум что бы не надоедать но вот задача появилась прошить адруино в этом деле я -0, . Обращаясь к вам Олег, о последовательности файлов что за чем залить в контроллер.
Лучше на Ты, однако))
Вроде как предвидится свободное время, отчего же и не поиграться в схемотехнику?))
Подскажи пожалуйста уровни напряжений на терморезисторе и термопаре, которые можно считать достаточными для аварийного отключения (скажем 470 градусов, но если уровни могут быть разными, то какие должны быть и для чего..)
Полагаю Nano у вас есть! Поэтому качаете отсюда https://www.arduino.cc/en/Main/OldSoftwareReleases#previous программу Arduino IDE лучше версию 1.6.7 (она стабильней и программа на русском языке) из второго поста качайте прошивку (или по ардуиновски - скетч) после установки программы вы увидите, что скетч распознается как файл для Arduino IDE, запускайте его, программа откроется и вы увидите КОД скетча, далее подключайте Nano в USB идите в раздел ИНСТРУМЕНТЫ далее ПЛАТА и выбираете Ардуино НАНО, под ПЛАТОЙ есть раздел ПОРТ проверяйте чтобы он был активный COM1-COM3 (у всех по разному) и нажимаете ЗАГРУЗКА (груглая кнопка со стрелочкой в левом верхнем углу под надписью Файл) и смотрите за процессом, если ошибки не вылезли значит все случилось, елси будут ошибки - "красный текст" то надо разбираться.
Игорь 12 вот видео по прошивке ардуины если что не ясно спрашивайте, досниму и выложу
А вот и моя "тестовая" пятиэтажка!
Правда без деталей некоторых... Но мозга у нее уже работает!
А вот и моя "тестовая" пятиэтажка!
Правда без деталей некоторых... Но мозга у нее уже работает!
А печатками в SL не поделитесь? И небольшим описанием блока питания.
Уж очень красиво сделано )
Вечер добрый всем. загружал скейч SS_3 насколько я понял но пишет ошибка компиляции exit status 1
архив скачивал раза три но результат тот же , мож нужно ещё что- то делать , ну там библиотеку загрузить или требуется ваша помощь ато никак.
Ругаются на то ,что нет файла библиотеки для дисплея. В архиве должен быть. Скопируйте его в папку где хранятся библиотеки в IDE arduino
Скачайте мой архив и из него все библиотеки, библиотеки переместите в папку arduino-1.6.5-r5/libraries
Umkalab фотка супер.. вас не учили под спойлер прятать свое творчество? Ну или хотя-бы фотки кликабельного размера размещать?
Да учили... Ночью дело было...
Сейчас спрячу.
Эээммм... Не могу. Видимо за сроком давности нельзя изменить ответ.
А вот и моя "тестовая" пятиэтажка!
Правда без деталей некоторых... Но мозга у нее уже работает!
А печатками в SL не поделитесь? И небольшим описанием блока питания.
Уж очень красиво сделано )
Поделимся конечно, а почему же нет. Давайте сделаем так:
1) Приедут остальные детали
2) Допаяю всё это дело
3) Как следует протестирую
4) Собиру все в кучу и сюда на форум
Договорились?
В своих изысканиях я например уже эволюционировал :) перешел на T12 (Bakon 950D уже писал свои ощущения в форум но как то не разместилось видимо ошибка была) ручка тонкая, длинна 4 см, сумер ювелирная работа, нагрев моментальный, новые ощущения (почти как переход в автомобилях на класс выше), сейчас жду здесь на форуме отдельно разработку фена (корпус есть остальное покупать надо будет и не факт что дешевле выйден, но убежден что у Олега безопастность на порядки выше а фены горят бывает ...), но если не сложиться то куплю аналогичный ФЕН как Bakon в таком же корпусе (редко феном пользовался а он должен быть но компактный), так что призываю продолжить изыскания в области T12 (но только с компактной ручкой)
А что мешает прибубенить такой паяльник к данной станции то?!?!?! Нет ничего невозможного!
Я так понял там терморезистор стоит вместо термопары... Так это решаемо. Схема у автора данной ветки заточена. Осталось только текстолит разрисовать и вперед! Закончу свои труды и отрисую себе модуль для термопары. Хороший паяльник, надо осваивать.
Я сам моделировать не умею, только копирование и небольшие доработки (электроника хобби) да и уже не актуально, а Олег проговаривал что хочет продолжить на T12 но жала у них друг от друга отличаются (сопротивлением или еще чем) и нужны индивидуальные профили, вот ссылка на видео где один товаришь начал разработку в этом направление? но у него два канала по 3 жала и на каждое жало свой профиль.
Я всё же считаю, что текущих защит теперь вполне достаточно (после добавления дополнительной защиты).
Не перекрывается лишь случай, если зависнет МК при импульсе открытия канала фена, но и это можно устранить активацией ватчдога - после ребута станция перейдёт в отключенное состояние.
Но если нее пропала охота поизвращаться, то вот: канал фена - 19 мВ при 450 град., канал паяльника - 210 мВ при 400 град. Это у меня максимальные температуры, которые можно выставить.
Точные значения приводить нет смысла, т.к. они одинаковыми у всех всё равно не будут и нужно предусматривать подстроечные элементы.
Это можно сделать очень быстро, упростить плату и скетч на предмет выкидывания всего, что относится к паяльнику. Просто нет пока лишнего фена, нужно заказывать.