Выпекаем печатные платы — DIY Reflow Oven.

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

Базой послужила лидловская мини-духовка, доставшаяся мне за 5 евро на местной интернет-барахолке. Хотелось бы всю электронику разместить внутри, но размеры не позволили.

На Али приобрел дисплей на базе SPFD5408

У таких дисплеев обычно есть резистивный touch screen, но работает он с ардуино отвратительно. Немного поигравшись, плюнул на него и поставил обычный энкодер — дешево, сердито и надежно.
Тут первая полезная идея — когда у ардуины ног не хватает — для энкодера можно использовать единственный аналоговый вход.

Ресурсов такой ввод практически не отнимает, если все сделать в прерывании:
Дополнительная информация

#include "scmRTOS.h"
#include "processes.h"
#include "Arduino.h"
#include "encoder.h"

void encoder_init(void)
{
  ADCSRA = 0xAF;			// Enable ADC, interrupt, auto trigger, clock clk/12
  ADCSRB = 0x05;          // Timer/Counter1 compare match B
  ADMUX = 0x47;   // A& input, Vref=Vcc
  // Set up TIMER 1 - ADC sampler
  TCNT1=0;
  OCR1B = 32000;
  ICR1 = 64000;
  TCCR1A = 0x00;
  TCCR1B = 0x19;
}

ISR(ADC_vect)
{
  static bool encoder_A_prev;
  static bool encoder_switch_prev;
  bool encoder_A = false;
  bool encoder_B = false;
  bool encoder_switch = false;
  uint16_t ADC_value;
  uint8_t EncMsg;

  TIFR1 = 1<<OCF1B;
  ADC_value = ADC;
  if (ADC_value<100) encoder_switch = true;
  else
  {
	if (ADC_value<470)
	{
	  // both
	  encoder_A = true;
	  encoder_B = true;
	}
	else
	{
	  if (ADC_value<615) encoder_A = true;  // pin A
	  else
	  {
	    if (ADC_value<815) encoder_B = true; // pin B
	  }
	}
  }

  if(encoder_switch)
  {
    if(!encoder_switch_prev)
    {
	  OS::TISRW ISR;
	  EncMsg=0;  // switch
      EncoderMsg = EncMsg;
      EncoderMsg.send_isr();
    }
  }
  else
  {
    if(!encoder_A && encoder_A_prev)
    {    // positive ->0
	  OS::TISRW ISR;
      if(encoder_B) EncMsg=1;  // CW
      else          EncMsg=2;  //CCW
      EncoderMsg = EncMsg;
      EncoderMsg.send_isr();
    }
    encoder_A_prev = encoder_A;
  }
  encoder_switch_prev = encoder_switch;
}


Если кто-то не поленился открыть код — он увидел еще одну идею, реализованную в этой печке — в ардуино используется многозадачная операционная система.
Это моя любимая система, которую я ставлю куда можно и куда нельзя — scmRTOS. Система в исходниках лежит здесь
Занимает она меньше килобайта и я не вижу причин не использовать ее где только можно. Где нельзя, впрочем, тоже.
Документация на великом могучем здесь, операционку писали уже давно наши люди, авторов всегда можно найти здесь.
Как смог, адаптировал эту систему для ардуино.
В качестве датчика используется термопара, примотанная к сетке внутри печки синей изолентой термостойким каптоновым скотчем.

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

Система управления собрана на двух платах — силовая и управление. Силовая была заказана в Китае (просто одну и ту же плату я использовал для нескольких разных устройств), управление сделано на макетке.


Коробочка, как обычно, напечатана на 3D принтере.

К сожалению, когда делал — ничего не сфотографировал. А сейчас разбирать не хочется: если что-то работает — не трогай.
Размер EEPROM AVR позволяет сохранить несколько профилей пайки.

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


Когда плата небольшая или лень делать трафарет — пасту можно нанести экструдером.

В итоге получается примерно так

Котя проверяет качество пайки

Буду рад, если кто-то найдет что-нибудь полезное для себя.
Добавить в избранное +182 +265
+
avatar
+21
Котя проверяет качество пайки
лишь бы он флюс не помогал смыть…
+
avatar
  • ABATAPA
  • 06 апреля 2021, 13:45
+14
Печка? Это ж сколько там жарить нужно.
Один галогеновый прожектор и всё то же самое — и процесс будет занимать менее 2 минут.

Пайка, если честно, не очень:
+
avatar
+11
Это вручную сделано, а с атаксией попасть паяльником в нужное место непросто.
+
avatar
  • ABATAPA
  • 06 апреля 2021, 14:04
+2
А, тогда понятно.
+
avatar
  • vigera
  • 06 апреля 2021, 14:42
+9
с атаксией попасть паяльником
Спасибо за впервые увиденнное мной слово.

Гугл сообщает что:
Это нервно-мышечное заболевание, которое может носить генетический характер, а также развивается при серьёзном гиповитаминозе витамина B12 и как следствие церебрального инсульта.
Если не секрет, чем именно это лично у Вас обусловлено?
(Любопытствую, замечая что в свои 56 и при весьма неплохой общей спортивной кондиции руки при пайке имеют тенденцию трястись в разы интенсивнее, чем бывало по молодости).
+
avatar
+36
Это при аутоиммунном заболевании такая гадость образовалась — из-за этого и на пенсию преждевременно выгнали. Я и хожу с большим трудом, и говорить нормально не могу — если все перечислять, то это будет медицинская энциклопедия. Хотя до этого даже с простудой больничных практически не было — все развалилось в считанные недели. Просто невезуха. Хотя тоже относительно — у многих случается намного хуже, насмотрелся. А старше Вас я всего на пару лет.
+
avatar
+4
Вы — супер! Дай вам бог здоровья.
+
avatar
  • mfiless
  • 06 апреля 2021, 14:59
+4
Тяжелая физическая работа очень сильно влияет на точность попадания паяльником в нужное место пайки и в дополнение к этому возрастная дальнозоркость.
P.S. Мы с вами одного возраста.
+
avatar
  • vigera
  • 06 апреля 2021, 15:08
+2
возрастная дальнозоркость.
Насчёт влияния тяжёлой физической работы, крайне редко и отрывисто практикуя её в жизни, ничего толкового сказать не могу, а вот после околочасового бега на 10км, практикуемого мной регулярно, действительно и с попаданием паяльником в SMD и с фокусировкой зрения проблемы :)
Благо что длится это недолго.

На у возрастная дальнозоркость (пресбиопия) легко обходится пайкой в очках нужных диоптрий.
+
avatar
  • mfiless
  • 06 апреля 2021, 15:22
+2
Пришлось работать на стройке несколько лет, поэтому такой вот опыт.
С молодости хожу в очках и в них зрение единица. При пайке очки нужно снимать и кроме того брать линзу.
+
avatar
0
> и с фокусировкой зрения проблемы

Бегать в темноте с фонариком: зрение привыкает фокусироваться на небольшой дистанции.

ЗЫ Шутка :) У меня от такого голова болеть начинает, но есть люди, которым норм.
ЗЗЫ сам бегаю 3-7км 2-3 раза в течение рабочей недели и 8-12 (редко больше) по субботам, темп примерно ваш.
+
avatar
  • bigvlad
  • 15 апреля 2021, 20:58
-1
777 лайков этому господину!
+
avatar
+7
И правда, зачем возиться, закручивать шурупы отверткой? Один удар молотком — и готово!

P.S. Термопрофили — они придумываются вовсе не потому, что производители не знакомы с номенклатурой прожекторов…
+
avatar
  • ABATAPA
  • 06 апреля 2021, 16:01
+2
Только вот с массивной медленной инерционной печкой соответствовать профилю вообще нереально, а с галогенкой, включаемой контроллером в режиме PID, можно добиться точного (насколько это возможно вообще) соответствия, что подтверждено огромным числом людей, повторивших одно из множество воплощений.
+
avatar
0
галогенкой, включаемой контроллером в режиме PID, можно добиться точного
вообще-то нельзя :) точнее +- лапоть
+
avatar
  • Redan
  • 06 апреля 2021, 20:06
+1
Если мне память не изменяет, галогенка плохо подходит под PID регулирование из за гистерезиса. В идеале собрать такую печку на керамических нагревательных элементах. Тем более что площадь большая не нужна, можно сделать размером с лист а5, этого я думаю хватит.
+
avatar
  • ABATAPA
  • 06 апреля 2021, 22:07
0
Отлично подходит.
+
avatar
  • DDimann
  • 07 апреля 2021, 08:39
+3
Можно подумать, у керамики гистерезис меньше…
+
avatar
  • alex323
  • 06 апреля 2021, 20:47
+1
Только вот с массивной медленной инерционной печкой
Эта печка совсем не массивна и не инерционна. Жестяной коробок — откуда там массивность и тепловая инерция.
А вот мощность нагрева мала, поэтому долго выходит на режим, отсюда и несоответствие термопрофилю. Тут бы ТЭНов еще добавить…
+
avatar
  • ABATAPA
  • 06 апреля 2021, 22:09
0
откуда там массивность и тепловая инерция.
От ТЭНов, конечно. С налогенкой она включается вспышками, точность поддержания очень высока. Выключили лампу — излучения почти нет, разница в сотни раз за долю секунды. А с ТЭНом — выключили, и нет разницы…
+
avatar
  • alex323
  • 06 апреля 2021, 22:18
0
Вы просто инерционных печей не видели.
+
avatar
0
Тандыр? Русская печка? Вы про них? :)
+
avatar
+8
Один галогеновый прожектор и всё то же самое — и процесс будет занимать менее 2 минут.
Ок открываем даташит на рандомный компонент, листаем в конец документа и что мы видим.

Оказывается есть рекомендации производителя по температурному профилю пайки. Так чтобы компонент хорошо припаялся но при этом минимальный риск перегрева. Твой же совет из разряда «По рецепту нужно запекать курицу полтора часа при 180 градусах, но это очень долго. Давай вместо этого запекать 20 минут при 600 градусах».
+
avatar
+13
с галогенкой проблема не в 600 градусах, а в том что разные предметы/материалы поглощают и соотвественно излучают потом по разному. может оказаться, что припой под галогенкой 245С, а микросхема уже 400С.
+
avatar
+2
оказаться, что припой под галогенкой 245С, а микросхема уже 400С
именно
+
avatar
  • Z2K
  • 07 апреля 2021, 10:52
0
А если сделать зеркальную маску над полупроводниковыми елементами — так как паяльную.
+
avatar
  • Lenar
  • 07 апреля 2021, 13:40
+1
Включаешь последовательно 3-4 лампы, длина волны сильно смещается в ик спектр, дополнительно ставишь ик фильтр в виде стекло-керамической поверхности, и вот уже совсем другой результат.
+
avatar
+4
Если пропустить preheat, то компонент скорее всего припаяется норм. И на всяких резисторах-конденсаторах-контроллерах, без mems-компонентов, на работу это не повлияет. Проблема будет, например, в паяльной пасте: при быстром нагреве флюс не испаряется, а вскипает, разнося шарики припоя по большей площади. В итоге между контактов не тонкая пленка остатков флюса, а куски припоя на липком слое, который еще и сопротивлением поменьше текстолита и воздуха обладает.
+
avatar
+2
скорее всего припаяется норм
Скорее всего да, но не слышу уверенности в голосе. И когда другого выхода нет, то можно конечно и галагенкой, с самодельным ИК паяльникос сделанным из автомобильного прикуривателя и много чем ещё. Но это не значит, что такие методы пайки являются правильными. Если хочется сделать не абы как, а сделать хорошо, то лучше придерживаться рекомендаций производителя.
+
avatar
+1
Массивные могут не припаяться, потому что не прогреются. Мелочь припаяется. Так-то я тоже за пайку по термопрофилю :)
+
avatar
  • ailcat
  • 06 апреля 2021, 18:10
+6
Если пропустить Preheat на бессвинцовом припое — элемент вообще не припаяется.
На свинцовых — велик риск получить «холодную пайку» крупных SMD-элементов.


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

Убираем предварительный подогрев — и в горячей фазе расплавленное олово «зависает» в слое канифоли. Если к этому добавить еще и быстрое остывание — то канифоль из паяльной пасты вскипит и не даст олову создать надежную электрическую цепь между выводом и площадкой платы.
Свинцовые припои значительно более текучи, поэтому с ними гораздо проще — но крупные SMD элементы сами по себе неплохой теплоотвод, и не факт что их выводы успеют достаточно нагреться за время «горячей» фазы.
+
avatar
  • Z2K
  • 07 апреля 2021, 10:55
0
Сколько нюансов :((
+
avatar
0
Del.
+
avatar
  • ailcat
  • 12 апреля 2021, 14:22
0
Там химически немного другой процесс, но «вскипание» проще для понимания.
Пруфов не подскажу, я уже больше 10 лет к производству отношения не имею :)
+
avatar
0
припаяется оно нормально, а вот работать — не факт
+
avatar
+2
Вы комментарий-то читали или просто ключевые слова распарсили и на них возражение написали?
+
avatar
0
читали. поймите, профиль в даташите это не только для того, что бы нормально припаялось
+
avatar
0
Не читали. Потому что если читать комментарий, то становится понятно, что там есть тезис «простые компоненты паяются без preheat норм, но могут быть разные проблемы с другим», с которым вы пытаетесь спорить, отвечая «припаяется оно нормально, а вот работать — не факт». Ну, как бы, я это и писал.
+
avatar
  • Lenar
  • 07 апреля 2021, 13:45
+1
преднагрев это фаза активации флюса, не стоит пропускать, тут вопрос скорее в химии а не в физике.
+
avatar
-1
Если площадки не заляпанная руками и окисленная медь, а HASL/золото/органика, то активности флюса хватит и в процессе просто нагрева до оплавления.
+
avatar
  • ABATAPA
  • 06 апреля 2021, 16:06
-2
Оказывается есть рекомендации производителя по температурному профилю пайки.
Спасибо, К. О.
Даже если принять 2 минуты буквально, то есть и другие компоненты с другими профилями.

Речь была о том, что в случае конструкции с мощной галогенкой и отражателями и контроллером можно добиться быстрого и точного нагрева (по профилю, по профилю), чего нельзя сделать в духовке с тенами.
+
avatar
  • ailcat
  • 06 апреля 2021, 18:16
+1
Можно — если греть лампами не саму плату, а композитную пластину с малой тепловой инерцией, тепло от которой уже передается на плату. Так, собственно, и делают печи для штучного производства (только вместо галогенок — инфракрасные излучатели).

Ну а в серийном производстве плату просто протаскивают через конвеерную печь с многозонным нагревом (в каждой зоне — своя температура)
+
avatar
0
галогеновый прожектор и всё то же самое — и процесс будет занимать менее 2 минут
у вас с ним не будет профиля пайки
+
avatar
  • ABATAPA
  • 06 апреля 2021, 22:01
0
С чего бы? С контроллером — будет. Тысячи людей сделали это.
+
avatar
-1
По-моему, и в обычных фабричных печках стоит галогенка, весь секрет в том, что она работает с изрядным недокалом.
У меня в нижнем подогревателе плат тоже стоят на вид галогенки, только там нити накала гораздо длиньше и при нагреве едва светятся красным.
+
avatar
  • ailcat
  • 12 апреля 2021, 14:18
0
Это не галогенки, а инфракрасные излучатели.
И греть они должны не саму плату, а конвекционную пластину (в теории композитную, у китайцев не удивит и просто металл). И уже пластина передает тепло паяемой плате.
+
avatar
0
+
avatar
+4
за rtso и трюк с енкодером на налоговом пине спасибо.
+
avatar
+1
Очень интересно, спасибо. А не могли бы Вы переложить файлы с мейл.ру на другое облако, например на гугл диск- мейл.ру, к сожалению сейчас доступна не всем читателям муськи.
+
avatar
0
Напишите в личку — скину почтой
+
avatar
  • CuMr
  • 06 апреля 2021, 16:02
-10
+
avatar
-2
За трик с аналоговым энкодером — отдельно спасибо — давно знал, как это можно было сделать, но было лень )
Утащил.

Про печку — лучше галогенку с отражателем — и быстрее будет и качество лучше, и светить можно только на определенное место.
+
avatar
  • ailcat
  • 06 апреля 2021, 18:17
+1
Только для свинцовых припоев и без крупных SMD-конденсаторов
+
avatar
0
А можете стенсил почётче сфоткать и вообще привести примеры разрешения резки.
Я пробовал по двум слоям каптонового скотча, минимальная ширина реза около 0.5 мм получалась и то, через два слоя криво, только по одному слою красиво было.
+
avatar
0
Прозрачку фотоаппарат плохо берет, я эту-то фотографию замучился делать.
+
avatar
0
И да, как вы ПИД калибровали? Насколько точный профиль получается? Остывает ли с нужной скоростью?
+
avatar
0
Остывает плохо — приходится дверку открывать. ПИД откалиброван строго на глаз :) — вообще не помню, как там сделано, но на нагрев работает неплохо.
+
avatar
  • ewavr
  • 06 апреля 2021, 17:03
0
Помню еще какой-то советский хроматограф — там дверцу открывал моторчик, если нужна была большая скорость охлаждения.
+
avatar
0
Можно и вентилятор приточный установить для ускорения охлаждения.
+
avatar
+1
А какой получился реальный термопрофиль?
В промышленных печках на выходе стоят мощные вентиляторы холодного воздуха.

генерации прерываний при переходе фазы сетевого напряжения через ноль
С какой целью?
+
avatar
+1
В самом начале там было фазовое управление, от которого потом отказался. Но все равно лучше включить тиристор в нужный момент.
Реальный примерно как и запланированный, остывание затянуто даже при открытой дверце.
+
avatar
  • alex323
  • 06 апреля 2021, 22:21
+2
Я так понимаю, теперь управление целочисленное? Тогда удобнее оптодрайвер с детектором нуля, например MOC3083.
+
avatar
  • Lenar
  • 07 апреля 2021, 13:48
0
на остывание можно принудительную вентиляцию также через пид.
+
avatar
  • ACE
  • 06 апреля 2021, 14:37
+8
Делаю сейчас себе печку. Купил б.у.шную, утеплил базальтовой тканью, по первым тестам набирает температуру неплохо. Места в ней оказалось достаточно много, чтобы всё запихнуть внутрь. Конвекцию и лампу оставил. За основу электроники взял Tiny Reflow Controller, благо там есть и плата и исходники прошивки. Экранчик OLED, мелковат, но мне он очень нравится. Проект немного переделал под свои детали, в прошивку добавил больше термопрофилей (например, сушка пластика). И ещё добавил сервомоторчик, приоткрывающий дверцу в нужный момент для более быстрого охлаждения. И надо будет панель из оргстекла вырезать, заместо штатной накладки, она закроет все дырки.

Фотки

+
avatar
+3
Я маленький экран не вижу вообще. А для пластика я эту печку тоже использовал — посмотрите фотографию лазера, нам внутри завитая трубка — я ее в этой печке и завивал.
+
avatar
+2
бегло просмотрел ваш код. есть пару вопросов по Ардуино.

у вас есть *.ino файл и потом еще main.cpp с одинаковым кодом? зачем дубляж?
в процессе 01 у вас закоментирован Ардуино стиль объявление/инициализация SPI (сточка 59) и используется прямой способ через регистры. почему так?

спрашиваю, тк интересно попробовать scmRTOS с Ардуино. вы так же писали что допиливали scmRTOS, что конкретно и зачем? не компилировалось Ардуино? в заранее спасибо.
+
avatar
+1
у вас есть *.ino файл и потом еще main.cpp с одинаковым кодом? зачем дубляж?
Это у Sloeber спросить надо — он автоматически пытается создать код, который в Arduoino IDE работать будет
в процессе 01 у вас закоментирован Ардуино стиль объявление/инициализация SPI (сточка 59
Скорее всего, что-то быстро потестировать надо было, а потом убрал. Регистры предпочитаю — по крайней мере все предсказуемо.
что конкретно и зачем. заранее спасибо.
Там допилок — несколько строк в одном файле, поищите «arduino» в комментариях.
А зачем — наверно, так полагается :) Я его допиливал и для stm32duino для stm32f1 и stm32f4, и для platformio без arduino.
+
avatar
0
Спасибо, нашёл.

Есть ещё вопрос по управлению динистором. Как я понял вы в своём коде ищите переход через ноль, потом запускаете таймер равный одному полупереуду сети и открываете динистор на весь таймер или его часть. Не проще было бы тупо открывать/закрывать динистор с началом нуля и регулировать мощность путем пропуска полупереудов. Я щас переделываю под себя hot air gun reflow station и там как раз именно второй подход. Увидел ваш и теперь не знаю.

Вы случайно фен не писали smcRTOS?
+
avatar
0
откровенно говоря, просто не помню — вы посмотрите даты, когда это писалось. Раз вы это нашли — значит, я вас обманул и там все-таки фазовая регулировка.
Но фазовая регулировка быстрее и при нормальной реализации, лучше.
Фен у меня лет десять назад купленный, вполне устраивает — так что не писал.
+
avatar
0
про быстрее и точнее согласен. останусь, на пропусках полупереудов. так проще.

последний вопрос. посмотрел примеры для smcRTOS для AVR там используется Timer1 для RTOS. я прав или можно использовать что-то другое? дело в том что Timer1 для ATmega328P завязан на D9 и D10 и ломает «analogWrite()» на этих пинах. остальные таймеры у Arduino тоже в работе. можно ли как то наш любимый «millis()» прикрутить в качестве опорника для ticks?
+
avatar
+1
Все это делалось настолько давно… Но я использовал только таймер.
И, насколько помнится, после этого delay не работал — нужно менять на sleep из smcRTOS
Для ардуины я где-то здесь еще только smcRTOS выкладывал, может даже более поздняя версия.
+
avatar
0
понятно. вещь хорошая, но 100% совместимости с Arduino нет. Жалко.
+
avatar
  • mike888
  • 06 апреля 2021, 16:27
0
Что помешало поставить отптрон с переходом через ноль типа МОС3063 и не городить огород программный. Либо использовать готовое электроное реле, в котором уже всё собрано.
И вобще не очень понял, есть же PID контроллер температуры REX-C100, цена не безумная, неплохо работает, как раз заточен под грелки.
Если только хобби, слепить аналог на ардуине, тогда понятно
+
avatar
0
MOC3063 не мешает, но для того чтоб контролировать температуру активной(не реактивной) нарузки нужна обратная связь и достаточно регулятор типа P, а лучше PID. Вот через детектор нуля эта обратная связь и получается. А с MOC3063 — этот как водить машину с закрытыми глазами.

Регуляторы видел. Даже лежит один промышленный, но управление и информативность у него желает лучшего. Оно и понятно. Их используют по принципу один раз настроил на одну температуру и забыл на 10 лет.
+
avatar
  • mike888
  • 06 апреля 2021, 16:50
0
Ну температура в регуляторах меняется несложно, а поддержание они обеспечивают неплохое, главное разместить датчик в нужном месте. Для работы с платами менять температуру особо часто не нужно. Изобретать велосипед можно, но лучше направить усилия туда что не делают, ещё есть такие области :)
И опять же, для работы просто покупается оборудование, после подсчёта экономики. Никто не ваяет на коленке то что есть готовое и не стоит безумных денег. Считается окупаемость и целесообразность, после чего выбирается вариант.
+
avatar
  • Blambik
  • 06 апреля 2021, 21:08
+1
для того чтоб контролировать температуру активной(не реактивной) нарузки нужна обратная связь и достаточно регулятор типа P, а лучше PID. Вот через детектор нуля эта обратная связь и получается
Хм… Кажется Я не уловил мысли, но имхо — обратная связь для контроля температуры обеспечивается не детектором нуля, а датчиком температуры. А детектор нуля нужен вообще то для совсем другого.
+
avatar
0
Да. Вы правы. Не правильвыразился. Детектор нужен для pid.
+
avatar
+1
о помешало поставить отптрон с переходом через ноль
А как насчет фазовой регулировки?
PID контроллер температуры REX-C10
А он температурные профиля для пайки поддерживает?
+
avatar
0
Почему scmRTOS? Только из-за размера?
+
avatar
+2
Не, это религия такая, типа летающий макаронный монстр.
А реально — это минимальная система, где есть именно необходимый минимум. Когда более-менее сложную программу пишешь — все равно делаешь что-то типа диспетчера. А зачем каждый раз писать, если есть готовый?
+
avatar
0
Не, я имею ввиду, почему она, а не другие RTOS? Я обычно FreeRTOS закладываю.
+
avatar
+2
Проще, меньше — да и просто привык. FreeRTOS тоже использовал — но была какая-то особая нужда, какая — уже не помню.
Кстати, здесь, например, тоже scmRTOS крутится, только между нами :)
+
avatar
  • Oksion
  • 06 апреля 2021, 16:35
+5
Стенсилы? Вы серьезно, аж уху больно :) да и не сразу понятно о чем речь, есть ведь русское слово, «трафарет» (на самом деле не русское), ну к чему эти англицизмы? Звучит ведь явно хуже
+
avatar
+2
Вы знаете, я уже 20 лет как не живу в России и иногда подобрать слово мне сложно. Но спасибо, теперь я вспомнил, что надо было написать. Поправил.
+
avatar
  • Oksion
  • 06 апреля 2021, 20:02
0
А, ясно, ну тогда вопрос снят так сказать
+
avatar
+3
Я лично обжигаю платы в конвейерном режиме.
Когда-то тоже хотел сделать печку подобную сабжевой,
но для меня она не подходит т.к. некоторое количество деталей
при обжиге смещаются и вернуть их на место лучше
пока припой находится в расплавленном состоянии.
Применил готовое китайское изделие с минимальными доработками
под свои нужды: добавлен колпак с подсветкой для вытяжки
и управление периферией(подсветка, вытяжка, отключение ТЭНа).
Вот что получилось:
Производительность относительно невысокая ~2мин. на стандартную
плату(100*100).
За раз обжигаются сразу 2 платы, но можно и 4 если проворства хватит))
Для меня в приоритете было минимизировать необходимость перепайки
убежавших деталей в процессе обжига, чем нажечь много в кривь и в кось.
Разумеется очень нужен хороший вентилятор для вытяжки.

Да, эстетическая составляющая оставляет желать лучшего)
Но пока, если честно, не вижу что еще имеет смысл переделывать.
+
avatar
+2
Сделано очень хорошо, маленькое «но»
При пайке детали должны наоборот, сами приползать на место за счет поверхностного натяжения, даже если криво установлены. Если не приползают — что то не то с разводкой.
+
avatar
  • mike888
  • 06 апреля 2021, 17:26
0
Как бы их на каплю клея сажают при автоматической сборке, наверняка видели красную точку по центру детали, когда её снимаешь с платы.
+
avatar
+10
Ну я вообще то в прошлой жизни (то бишь до пенсии) для очень крупной фирмы платы разрабатывал (слишком хорошо известной :) ) — теоретически должен иметь какое-то представление. И клеят детали в основном, когда монтаж двухсторонний.
+
avatar
  • mike888
  • 06 апреля 2021, 18:03
-4
Если не брать дешёвую бытовуху, где никто не клеит ничего и детали могут стоять как получилось, то более менее солидные производители их клеют, даже на одностороних, поскольку исправлять, если что то сместилось выйдет дороже
+
avatar
+5

Видимо, фирма совсем дешевка.
+
avatar
0
AGM-88, разносившие Югославию — их рук дело?
Объясните там непонятливым (плиз): mySKU.me/blog/misc/85223.html#comment3820876
+
avatar
0
C'est la vie. Когда динамит изобрели — говорят, что им пни собирались корчевать.
С другой стороны, в кармане у каждого телефоны, набитые в том числе их микросхемами. Выкинуть их в знак протеста?
По личным причинам, я стараюсь не использовать в своих последних разработках изделия TI. Но не всегда получается. Иногда найти замену сложно.
+
avatar
  • alex323
  • 06 апреля 2021, 22:28
+1
Детали убегают в случае, если что-то не в порядке с нанесение пасты (мало или мимо нанесена) или деталь одним концом легла мимо контактной площадки.
+
avatar
  • CuMr
  • 07 апреля 2021, 04:32
0
Еще могут быть косяки с трафаретом или трассировкой.
+
avatar
  • Blambik
  • 06 апреля 2021, 21:12
+3
Уже давно никто ничего не клеит, ну только если платы давно разработанны под адгезию :) И даже на две стороны — не клеют :)
+
avatar
0
У меня сборка(нанесение пасты и расстановка) ручная.
Капать клей, это дополнительная операция и расходы времени и средств.
Не очень рентабельно получится
+
avatar
  • mike888
  • 06 апреля 2021, 20:03
0
В ручном режиме нет смысла в клее, да и нет смысла в сборке своими руками, китайцы делают и платы и монтаж, это обходится дешевле, естественно если это серия. А штучные проще паяльником и феном. Даже грелка не нужна. Городить огород ради того чтобы запаять пару BGA нет никакого смысла, проще отдать, благо сейчас оборудование чуть ли не на каждом углу.
+
avatar
+3
— Поручик, вы любите детей?
— Нет-с! Но сам процесс!!!
+
avatar
+1
Не, паяльником это пройденный этап.
Долго, трудоёмко и не красиво.

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

В Китае наверняка делать дешевле, но заработать на кусочек хлебушка хотелось бы самому, а не отдавать все китайцам.

Феном греть платы 100*100мм будет совсем тяжело, да и у меня же сделана вытяжка что бы дымом не дышать.
+
avatar
  • mike888
  • 06 апреля 2021, 20:52
0
Зарабатывать на сборке плат?? Это только на хлеб без масла и прочих излишеств.
Ещё понятно макеты, какой то эксклюзив, но производство совсем неинтересная тема в плане денег
+
avatar
  • Blambik
  • 06 апреля 2021, 21:18
0
Все зависит от колличества, когда пару сотен — можно отдать и на РМ, хотя щас и пару десятков Китай запаяет, а если еще и их комплектацию заказывать то интересные цены получаются
+
avatar
  • CuMr
  • 07 апреля 2021, 04:35
0
Печко быстрее и удобнее просто на порядки. А если еще и трафарет есть…
+
avatar
  • CuMr
  • 07 апреля 2021, 04:33
0
Фиксить футпринты, трафареты, трассировку. Ничего не должно ни убегать ни подниматься (надгробный камень). Инфы в интернетах по этим вопросам — завались.
+
avatar
  • u3712
  • 06 апреля 2021, 17:36
0
Есть еще «надгробный камень». ))
+
avatar
0
Да, я слышал про поверхностное натяжение.
Но на платах иногда детали все равно уползают.
Возможно, что дело в низкотемпературной пасте, которую я использую в последнее время. Температура ее плавления от 138°С, а это гораздо ниже, чем температура плавления привоя которым залужены вывода SMD-компонентов.
Жаль нет возможность попробовать обычную пасту и печку вроде вашей.
Возможно получится быстрее.
Хотя, тратить на процедуру обжига не час, а половину, не большая получится экономия времени.
+
avatar
0
да отличная у вас печка для домашнего и мелкосерийного применения, и то, что все поправить руками можно — это же только плюс. Даже если что-то неудачно с разводкой — результат все равно будет достигнут — а это главное.
+
avatar
  • Blambik
  • 06 апреля 2021, 21:19
0
Если не секрет, шо за паста?
+
avatar
0
Конечно не секрет.
Я брал вот эту вот.
Вполне нормальная паста.
+
avatar
  • chsn
  • 09 апреля 2021, 08:08
0
вот.
не вот
+
avatar
0
Действительно, почему-то ссылка перестала работать.
Ссылка№1
Ссылка№2.
Так должно работать.
+
avatar
  • CuMr
  • 07 апреля 2021, 04:36
0
А смысл паять такой низкотемпературной пастой? Чем не подошла обычная?
+
avatar
0
Да все предельно просто:
была предыдущая печка полностью самодельная, собранная из подручных средств и по своему разумения.
ТЭН от внутрянки теплоизолировать достаточно хорошо не получилось в результате чего корпус прогревался градусов до 50-60.
При таком нагреве пластиковые кнопки себя не очень хорошо чувствовали)
Уменьшение температуры — затрудняло и затягивало процесс обжига.
С новой печкой обычная паста спекалась нормально, но низкотемпературная не требует такого нагрева ТЭНа, что логично.
В обоих случаях за деталями нужен присмотр и требуется корректировка.
Хотя… всей этой эпопее предшествовала пробная печка с транспортной лентой. Там вообще получался полуавтоматический режим обжига. Но возникшие затруднения решить не получилась и она отправилась на шкаф)
+
avatar
  • Romureg
  • 06 апреля 2021, 17:56
0
Имею похожее изделие, простое как правда и работает замечательно. НО — профили не поддерживает.

На самом деле можно легко скрестить с обозреваемым.
+
avatar
+2
C аналоговым энкодером идея шикарная. К стыду своему, раньше не видел. А иногда бывает, что пинов не хватает, особенно на каких-нибудь мелких ESP-шках :)
+
avatar
  • Willis
  • 06 апреля 2021, 17:17
0
А можете в общих чертах пояснить суть этой идеи для непрограммистов/«копирайтеров»?
+
avatar
+3
Трёхногий цифровой энкодер коммутирует резисторы, превращая три цифровых нуля/единицы в аналоговый сигнал. А АЦП конттроллера плюс сооветствующий программный код делает обратную операцию.
+
avatar
+3
Красиво сказали :)
Почти
Ротор поля наподобие дивергенции градуирует себя вдоль спина и там, внутре…
+
avatar
+1
А внутрё у ей неонка.
+
avatar
  • alex323
  • 06 апреля 2021, 22:32
+2
C аналоговым энкодером идея шикарная.
Действительно шикарная идея — использовать STM32. В нем таймеры могут аппаратно с энкодерами работать. И, кстати, очень эффективно подавляют дребезг.
+
avatar
  • Zurabik
  • 07 апреля 2021, 07:13
0
Мне кажется в данной схеме не очень нужна большая скорость обновления экрана. И для освобождения ножек, можно было управлять дисплеем через два сдвиговых регистра. Используя три ножки вместо 13.
+
avatar
  • ACE
  • 06 апреля 2021, 17:45
0
Меня смущает вот этот код:
if(!encoder_A && encoder_A_prev)
    {    // positive ->0
          OS::TISRW ISR;
      if(encoder_B) EncMsg=1;  // CW
      else          EncMsg=2;  //CCW
      EncoderMsg = EncMsg;
      EncoderMsg.send_isr();
    }
    encoder_A_prev = encoder_A;

Если энкодер будет шевелиться около точки изменения канала А (дребезг по каналу А, канал B не меняется), код будет воспринимать это как вращение в одну сторону. Так как обрабатывается только переход из 1 в 0. Обратный переход игнорируется, а он может быть следствием дребезга контакта. И тогда следующий переход 1 в 0 будет воспринят как ещё один шаг, а по факту его не было.
+
avatar
+1
вроде все работает, и там конденсатор стоит, чтобы понапрасну не дребезжало.
+
avatar
+3
Да лучше обрабатывать 4 состояния (два прошлых A и B, и два текущих A и B). Автору скорее всего повезло из-за того исполнение кода очень медленное или тикер очень длинный и все дребезги просто не успевают проскочить. Я с таким столкнулся когда писал библиотеку для энкодера на Arduino AVR. Работало по двум состояниям отлично. А на быстром stm32 или esp8266 мусор и ложные срабатывания (и это уже с конденсаторами). Потом переписал на проверку четырёх состояний и все завертелось. Исходники тут.
+
avatar
+2
Так АЦП и конденсатор же — вот я ничего и не заметил.
А на STM таймер аппаратно энкодер обрабатывает — вообще задумываться особо не о чем.
+
avatar
0
А на STM таймер аппаратно энкодер обрабатывает
я так не умею. а как на stm32duino аппаратно завести энкодер?
+
avatar
+4
да запросто (spoiler не работает почему-то)

#include "Arduino.h"
#include "scmRTOS.h"
#include  "processes.h"
#include <libmaple/bkp.h>
#include <libmaple/pwr.h>

TProc04 Proc04;

OS::message<uint8_t> EncoderMsg;

void TIM2_IRQHandler(void);
void PB4_IRQHandler(void);

void EncoderInit()
{
  //define the Timer channels as inputs.
  pinMode(PB3,  INPUT_PULLUP);  //channel A
  pinMode(PA15, INPUT_PULLUP);  //channel B
  pinMode(PB4,  INPUT_PULLUP);  //switch
  attachInterrupt(PB4, PB4_IRQHandler, FALLING);

  RCC_BASE->APB1ENR |= RCC_APB1ENR_TIM2EN;
  AFIO_BASE->MAPR |= AFIO_MAPR_SWJ_CFG_NO_JTAG_SW; // JTAG-DP Disabled, SW-DP Enabled
  AFIO_BASE->MAPR |= AFIO_MAPR_TIM2_REMAP_PA15_PB3_PA2_PA3; // remap pins

  //configure timer as encoder
  TIMER2->regs.gen->ARR = 1;  // interruption every click
  TIMER2->regs.gen->CCMR1 = TIMER_CCMR1_CC1S_INPUT_TI2 | TIMER_CCMR1_CC2S_INPUT_TI1; // inputs
  TIMER2->regs.gen->CCMR1 |= TIMER_CCMR1_IC1F | TIMER_CCMR1_IC2F;  // filter max
  TIMER2->regs.gen->CCER = TIMER_CCER_CC1P | TIMER_CCER_CC2P;      // falling edge
  TIMER2->regs.gen->CCER |= TIMER_CCER_CC1E | TIMER_CCER_CC2E;     // CCR1 & CCR2 enabled
  TIMER2->regs.gen->SMCR = TIMER_SMCR_SMS_ENCODER3;                // encoder mode

  // Interrupts
  TIMER2->regs.gen->SR &=~TIMER_SR_UIF;    // clear UIF flag
  TIMER2->regs.gen->CR1 |= TIMER_CR1_URS;
  TIMER2->regs.gen->CNT = 0x0;
  timer_attach_interrupt(TIMER2, 0, TIM2_IRQHandler);
  TIMER2->regs.gen->EGR |= TIMER_EGR_UG;  // important!
  TIMER2->regs.gen->CR1 |= TIMER_CR1_CEN;

}


namespace OS
{
  template<> void TProc04::exec()
  {  
    uint16_t MileCounter;
    //BKP_BASE->DR1;
    RCC_BASE->APB1ENR |= RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN;
    EncoderInit();
    for (;;)
    {
      OS::sleep(1000);
      MileCounter = BKP_BASE->DR1;
      //Serial.println(MileCounter);
      MileCounter++;
      PWR_BASE->CR |= PWR_CR_DBP;  // enable BPK
      BKP_BASE->DR1 = MileCounter;      
      PWR_BASE->CR &= ~PWR_CR_DBP;
      /*
      if (EncoderMsg.is_non_empty())
      {
        uint8_t msg;
        EncoderMsg.out(msg);
    	  EncoderMsg.reset();
        Serial.println("enc=");
        Serial.println(msg);
      } 
      */     
	  }
  }
}

void TIM2_IRQHandler(void)
{
  uint8_t Action;
  OS::TISRW ISR;
  if (TIMER2->regs.gen->CR1 & TIMER_CR1_DIR) Action=2;
  else                                       Action=1;
  EncoderMsg = Action;
  EncoderMsg.send_isr();
}

void PB4_IRQHandler(void)
{
  uint8_t Action;
  OS::TISRW ISR;
  Action = 0;
  EncoderMsg = Action;
  EncoderMsg.send_isr();
}
+
avatar
0
спасибо
+
avatar
0
вот ещё для чибиос
+
avatar
-11
+
avatar
+10
Спасибо, и вы будьте здоровы.
+
avatar
  • MaBo
  • 06 апреля 2021, 21:26
+4
viktor13, скажите, а зачем вы это написали?
+
avatar
0
Какая у вас модель станка лазерной резки?
+
avatar
0
самый дешевый 40-ваттный китайский, немного допиленный (как всегда :) )
+
avatar
  • Demon47
  • 07 апреля 2021, 07:08
0
Подскажите, а что такое майлар и где его брать? Беглый запрос в гугл не дал удовлетворительного ответа… Я обычно делаю на таком же лазере трафарет из ПВХ 0,5 мм, затем немного мелкой шкурочкой, чтобы убрать оплавленные борта, т.к. они задают большую толщину слоя пасты. Под контроллеры корпусов типа TQFP делаю одно общее отверстие на каждую сторону выводов, только меньше по высоте почти вдвое, чтобы пасты доза была меньше, т.к. если всю площадь вырезать, то она ляжет с избытком и зальет все ноги, придется потом проходить паяльником. Делается все это потому, что лазер 0,5 мм ПВХ с отверстием под каждый вывод микросхемы все сплавляет нахрен… Может потому что слишком мощный (у меня 35 Вт), или ПВХ сильно плавкий… Это и по вашему фото видно.
+
avatar
  • CuMr
  • 07 апреля 2021, 08:12
0
0.5мм — сильно много. Обычно трафарет 0,2-0,25мм.
+
avatar
0
С майларом такая же история, как и с ксероксом — вообще-то это определенный вид фирменного пластика, но так сейчас многие похожие пластики называют. Где берут — не знаю, мне на заводе, который печатную электронику производят, остаток рулона подарили — мне точно до конца жизни хватит :) Трафарет, что на фотографии — далеко не лучший, что я делал. Единственный, который остался не выброшенный после пайки.
Да, и трафарет обязательно нужно растром резать — по периметру не получается. Края сильно оплавляются.

Еще бы трафаретный принтер — руками очень тяжело ровно положить и потом ровно снять, ничего не размазав.
+
avatar
+3
Лавсан
Mylar это бренд DuPont, под которым они продают плёнки из полиэтилентерефталата, он же лавсан
+
avatar
  • Uho
  • 07 апреля 2021, 11:27
+2
Если бы уже не имел печки, то собрал бы такую. По функционалу они очень похожы с той что у меня. Отличается дисплеем и наверное принципом управления. Дисплей у этой больше нравится. Я свою больше использую как нижний подогрев, но у нее есть и режим запайки с несколькими профилями. Собирал по разработке Эдуарда. Эго сайт с печкой www.eddy.com.ua/archives/264 .
+
avatar
0
Печка выглядит очень приятно и, главное, компактно. А что вы за нагреватель использовали?
Ссылка появилась — утюг, оказывается. У какого утюга такой большой и плоский нагреватель?
+
avatar
  • Uho
  • 07 апреля 2021, 11:41
0
Нагреватель турецкий Orion 500W, Сейчас бы поставил кварц. С керамикой сложно выдержать профиль из за инерционности.
+
avatar
+1
Моя «печка» ) более 10 лет уже работает.
+
avatar
0
Хорошая статья. Я долго облизывался на разработку автора, ибо требуется нечто подобное по работе, только управляющее двумя нагревателями, последовательно включающимися. Но потом понял, что неофиту, вроде меня, эту разработку не повторить. Вот если б были скетчи для Ардуино IDE…
+
avatar
0
не боги горшки обжигают — при наличии стольких библиотек из ардуино всегда что-то можно слепить. Может, не красивое, но функциональное. Я, наверно, переборщил со сложностью — но у меня просто было много свободного времени.
+
avatar
0
kotmorse, возможно, вам удастся найти интересующее вас решение на базе arduino в этой теме ссылка. А также в теме для общих вопросов ссылка.Там достаточно универсальные решения, несколько поддерживаемых веток и возможности адаптирования кода под разные задачи.
+
avatar
  • adlerm1
  • 13 апреля 2021, 09:50
0
Представляю мысли инженеров, которые смотрят на эту плату с сетевым напряжением разведенную «ардуинщиком»…
Автор, твое изделие, в таком виде, опасно. А «выстрелит» оно или нет, дело случая.
+
avatar
  • jam_yps
  • 14 апреля 2021, 13:48
0
Лаком вскрыть, — работать будет. Без лака — опасно…
+
avatar
  • CuMr
  • 14 апреля 2021, 14:03
0
этой плате лак не поможет.
+
avatar
0
Уговорили, убираю.