DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 14138|回复: 9
打印 上一主题 下一主题

SMT 台式回流焊(软件对照翻译的,将就能看懂吧)

  [复制链接]
跳转到指定楼层
楼主
发表于 2012-1-12 22:32:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SMT 台式回流焊 (part 1)
by Andrew on  3 Jun 2009
(软件对照翻译的,将就能看懂吧,哪位翻译水平好的,请指导下啊)

My soldering iron is dirt cheap, low power and pretty poor for soldering SMT components.   After looking at the price of a more suitable replacement I decided that it was worth looking at the option of making an SMT Reflow oven from a mini/toaster oven, it would cost less than a decent temperature controlled iron and be fun to create.
我的烙铁是便宜,低功耗和漂亮的焊接SMT元件的穷人。寻找一个更合适的替代品的价格后,我决定,这是值得在选项使SMT回流焊炉从一个小型/电烤箱,它的成本比一个体面的温度控制铁少,很有趣创建。

The Oven
I seem to be suffering from several of the symptoms of lead poisoning already, so use lead-free solder and want to continue, which means a higher temperature is required.

烤箱
我似乎已经患有铅中毒的症状,可以从几个,所以使用无铅焊料,并希望继续,这意味着需要较高的温度。

Googling for lead-free solder reflow temperature profiles gives lots of results from both solder and parts manufacturers (Altera, Wolfson Micro, Lattice Semiconductor, and Kester), and the 'standard': IPC/JEDEC J-STD-020D.1.  These suggest that a max temperature of between 235-255°C is required and the ability to ramp up the temperature towards the max to reduce the time at the high temperatures (30 seconds within 5% of the max).

无铅回流焊温度曲线的谷歌搜索,焊料和零部件厂商(Altera公司,欧胜微,莱迪思半导体公司,与凯斯特),“标准”的结果,大量的IPC / JEDEC的J-STD-020D.1。这些建议的最高温度在235-255A之间°C的需要和能力,提高对最高温度的时间,以减少在高温(30秒内最大的5%)。

This is tough for a mini oven, many are advertised with a maximum of 220°C.  However, some experiments recording the temperature of my parents cheap Hinari Tiny Top with a thermocouple attached to a multimeter, showed that it could get up to over 255°C (the ovens thermostat seems to cut out at around 260°C - less than the rated 280°C) despite only using 630 Watts.  The only caveat is that as it approached the maximum it could only raise the temperatures by about 0.5-1.0°C/Second. However, the oven was also loosing a lot of heat, particularly from the top, so some insulation may help things.

迷你烤箱,这是艰难的,许多人都标榜最大220A°C。然而,记录了我的父母HINARI廉价微型热电偶连接到万用表顶部的温度,一些实验表明,它可以得到超过255A°(烤箱温控器似乎削减约260A°C间 - 小于额定280A℃)尽管只用630瓦。唯一需要注意的是,因为它接近最大只能提高约0.5-1.0A°C /秒的温度。然而,烤箱,也失去了大量的热量,尤其是从顶部,这样可以帮助一些保温事情。

I considered some of the more powerful ovens (1300-2500W), in particular one with a fan would have been good to regulate the temperature around the oven, but they have correspondingly larger spaces to heat - 10-24 litres - compared with the smaller 6.5 litres.  I decided to go with a Hinari HTP033:

我认为一些更强大的烤炉(1300-2500W),特别是粉丝之一,本来很好的调节烤箱周围的温度,但他们有相对较大的空间热 - 10-24升 - 相比,具有较小6.5公升。我与HINARI HTP033的决定去:

  • It has two heating elements which allows for more slightly more fine grained temperature control (rather than on/off of a single element)
  • Has a transparent door allowing the reflow process to be monitored
  • The housing looks easily to insulate and modifiable
  • £20 delivered from ebay (Amazon were out of stock)
1.It有两个加热元件可以更轻微更细粒度的温度控制(而不是一个单一的元素/ OFF)
2.Has一个透明的门,让回流过程进行监测
3,房屋看起来很容易隔离和修改
4.A£20,从易趣交付(亚马逊缺货)

The Plan
  • Insulate Mini Oven.
  • Thermocouple to monitor temperature.
  • Microcontroller monitoring the temperature and controlling the heater elements.
  • USB interface for control/uploading and downloading temperature profiles.
计划
1.Insulate迷你烤箱。
2.Thermocouple监测温度。
3.Microcontroller温度监测和控制加热元件。
4.USB接口控制/上传和下载的温度分布。

As stated above - if the ovens heating elements aren't quick enough, then using a microcontroller to control the temperature is redundant overkill.  Its just enough to turn on the oven, put the board in when the temperature gets high enough, then turn off and open the door when the maximum temperature is achieved.  If this was the case the backup plan was to just add an LCD screen showing the current temperature and use the oven manually.

如上所述 - 如果微波炉加热元件是不够快,然后用微控制器来控制温度是多余的矫枉过正。它只是足够的打开烤箱,当温度足够高的板,然后关闭并打开门时的最高温度达到。如果这是这样的备份计划是只需添加一个液晶显示屏,显示当前的温度和手动使用烤箱。

Thermocouple
I thought that measuring the temperature would be simply a matter of connecting a thermocouple (which creates a voltage difference based on the temperature difference between the two metals in its probe) to an Analogue to Digital Converter in some configuration and reading off the temperature value, but it appears to be a fairly non trivial task.  Luckily there are a number of off the shelf integrated circuits that the thermocouple can be connected to directly and produce a digital temperature reading.  I choose the MAX6675, which provides 0.25°C resolution from 0-1023°C on a simple to use SPI output in an 8 pin SOIC.
Testing
To get temperatures from the oven a Teensy at90usb162 board was used to poll the temperature every second and send it to the USB, where it was copied into a spreadsheet.
Chart below shows two test runs of the oven with both elements on (I turned off the oven earlier on the second run).

Surprisingly it got up to to well over 300°C, before I cut the power, with no sign of a thermostat limiter.   The temperature rises at roughly 0.9°C a second to 200°C then slows down to about 0.5°C/Sec. to 250°C.  Although the slow down towards the peak is disappointing - this is probably just about usable although it would be better to reduce the time spent near the maximum.The amount of heat escaping from the oven is fairly excessive - the temperature of the top of the oven was approaching 100°C so some insulation will help to increase the gradient.
Insulation
After some research I chose to use Reflect-A-Gold sheet for insulation, this aerospace/automotive heat insulation isn't the cheapest available but was fairly easy to use and claims to reflect 80% of radiant heat up to 850°F.

The HTP033 is made of riveted sheet metal with a slightly thicker back plate to keep it rigid, after drilling out 4 rivets the oven basically falls apart.  The side and top comes away from the internals of the oven allowing it to be just about completely wrapped with the Reflect-A-Gold sheet.  Most of the oven had two layers of sheet, with several layers around the edges of the door to increase the closeness of the fit (without there was a 5mm gap with the door closed).

Results after insulation are are shown below, the oven was turned off as close as possible to 245 °Centigrade.

After insulation the oven temperature increases by about 1°C/S. to 200°C and 0.75°C/S. after that (Compared with 0.9°C/S. and 0.5°C/S. respectively for the uninsulated oven).   Temperature inside the case behind the ovens controls went up to about 50-60 °C - perhaps still a little too hot to house the electronics.
Conclusions and Future Work
I'm fairly happy with the performance of the oven, considering its cost and size.   Next steps are:

  • More temperature tests to see if the performance can be increased.
  • Do some test 'reflows' - just turning on the oven and turning off when it reaches the maximum temperature to see what temperature is required by the solder and how good the results are.
  • Develop a controller/relay board and investigate controlling the heating elements under processor control.

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1 分享分享 支持支持 反对反对
沙发
 楼主| 发表于 2012-1-12 22:33:35 | 只看该作者
SMT Table Top Reflow Oven (part 2): Controlling the Heater Elements
by Andrew on 27 Aug 2009
In a previous article I described insulation of a mini/toaster oven with the aim of using it for table top reflow soldering.  Some manual tests have been encouraging.  This article documents creation of the circuitry required to turn the ovens heating elements on and off under control of a microcontroller.  I'm still not convinced that the oven can increase its temperature fast enough to warrant attempting to recreate a 'proper' reflow profile, but even if not,  using a microcontroller to log and display the temperature and turn off the heating elements when the peak is reached will still be worthwhile.
The circuitry below involves mains electricity, don't try this unless you are sure you know what you are doing - check, test and insulate repeatedly and thoroughly.  There are a number of commercial relay control boards available, for example Futurlec and Elector.
The Hinari HTP033 oven has two elements and a total power rating of 630W - so each draws just over 1.3A at 240V (UK mains voltage), this obviously can't be provided directly from a microcontroller IO pin but requires some kind of relay.  There's a huge range of relays available - I choose a IMO SRRHN-1C-S-5VDC, this can operate at 5Volts, draws 100mA (I actually found it took under 75mA) and is fairly cheap (a few £).  Although a 5V device can be driven from a microcontroller IO pin, 100mA is too high a load, 40mA is the maximum for most AVR Microcontroller IO pins, although the maximum current drain for the entire device is around 200mA, so 40mA can only be driven on a few IO pins at once.
Driving the relayA simple transistor/resistor circuit can be used to control the relay with much lower power drain.  Basically the transistor (I used a 2N2222A) is being used as a current amplifying switch. When the transistor is being used in on/off mode - only approximate mental/back of the envelope maths are needed to calculate the values of the resistors (Search Google for more background).
From the transistors datasheet, when the 100mA of current required to power the relay flows from collector to emittor the transistor will provide a minimum gain of just under 100 - so atleast 1mA  needs to flow into the transistors base, if the IO pin is high at 5V and there's a 1V voltage drop from the transistors base to emitter, a resistor of 4K will provide this (R = V/I = (5V-1V)/1mA).  To cope with less gain and a lower Vbe voltage, it's best to provide much more current to I used a 1330R and measured 3.5mA going into the base of the transistor when on.
Resistor R2 connects the base to ground when the input is unconnected.  This ensures the relay will be safely turned off during microcontroller startup.  The 10K resistor ensures the current flowing through it when the input is high will be low.
The relay is just a coil of wire which acts as an electromagnet when current flows through it, unfortunately when the power is switched off it will act as an inductor pumping current back into the circuit - the diode protects the transistor when this happens by providing a 'return path' to the 5V supply.
InstallationThe circuit (2 of them) was simple enough to build on a Prototype/Vero board (pictured above) and housed in a plastic box to protect from earthing.  I bypassed the ovens element and timer controls and passed the live mains wire to the relay box with an output to each of the elements.
Some brief tests with an Arduino turning on the relay control pins showed that the relevant oven element came on perfectly, with a reasuring click from the relay as it switched.Now I have more control over the ovens elements the plan is to do more extensive testing to see how controllable the temperature is.
板凳
 楼主| 发表于 2012-1-12 22:34:48 | 只看该作者
SMT Table Top Reflow Oven (part 3): Final Build
by Andrew on 28 Nov 2011
Two previous articles described the my attempts to create a Reflow Oven.I finally thought it time to document the final construction.

ThermocoupleReading a K-Type Thermcouple from a microcontroller with a MAX6675 chip was described here.  I ruined several thermocouple wires when they got snagged/bent and the wire broke.  To reduce the time to replace a wire I wrapped two together with kapton tape, so the backup can be plugged in if the first breaks.  The two wires also makes the cable less likely to bend and break, particularly when further wrapped in some heatshrink tubing.The thermocouple was inserted through a hole in the oven and position just above the centre of the tray.
The MAX6675 code was wrapped in a simple C++ class with a read() method to return the temperature multiplied by 4 (as it comes back from the MAX6675) as an integer.See MAX6675.h and MAX6675.cpp
Rotary EncoderBy removing the existing front panel switches it was possible to mount a rotary encoder using the existing holes and fixtures.
Rotary Encoder Fit into the space from the ovens timer and 'on/off bar control' knobs.

Decoding was done as described here, except that the Arduino interrupt mechanism was used:
attachInterrupt(0, knob_turned, CHANGE);attachInterrupt(1, knob_turned, CHANGE);
This will result in the knobturned() method being called when pins 2 and 3 (connected to the rotary encoder) change level.
void knob_turned(){  _delay_ms(1);  int pin0 = digitalRead(ENCODER_LEFT);  int pin1 = digitalRead(ENCODER_RIGHT);  if (pin0 != pinValues[0]) {    rotary_encoder_change(0, pin0);  } else if (pin1 != pinValues[1]) {    rotary_encoder_change(1, pin1);  }}void rotary_encoder_change(uint8_t changedPin, uint8_t value){  pinValues[changedPin] = value;  // only increment for each 'click' of the dial - when both pins have gone back to 0  if (value == 0 && pinValues[0] == pinValues[1]) {    unsigned long this_change = millis();    // if the change is within 50ms of the last then move 10 positions rather than 1    short multiplier = (last_changed != 0 && (this_change - last_changed) < 50) ? 10 : 1;    target_temp += ((changedPin) ? 1 : -1) * multiplier;    last_changed = this_change;}
The
delay_ms(1) is used to debounce the encoder (the Arduino delay() method can't be used from within an interrupt).Currently the target maximum temperature is set by the rotary encoder - to speed selection, the time when the last change happened is recorded and if the next change occurs within 50ms the temperature is incremented/decremented by 10 rather than 1.
The default Arduino interrupt library only supports 2 external interrupts - rather than resorting to AVR lib interrupt routine to capture when the push button is pressed - I simply polled it in the loop() method (which runs every 200ms).  Pushing the button is used to turn the device on and off.
LEDThe original oven had some kind of bulb that's powered by mains when the elements are on, this was replaced with a red LED controlled from the Arduino.  Rather than using a current limiting resistor I just connected to one of the PWM pins (9) and used analogWrite to power for a fraction of the time:
  analogWrite(9, 70);

LCDI wanted the oven to be self contained so the screen needs to be big enough to display what's going on and to and display options etc.  A 2x8 LCD was a little small, 2x16 just about big enough for all the information.  There was no way to really house it neatly in the existing front panel so it was positioned vertically and some brushed aluminium sheet used to create a new panel.
New front panel showing LCD, Dial, and on/off LED button.

The standard LiquidCrystal Arduino library was used with the LCD connected to the analogue pins:
  LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);

The display was updated every 200 milliseconds.  The current test sketch display is shown below, the display code is in the update_display() method in the sketch.
Close up of the Aluminium panel, with LCD showing actual Temperature, rate of change (°C/Second), whether the heating elements are on, the time since heating session started, and the target temperature.

ControlAfter completing the front panel construction I fitted the Arduino into an ABS box on the back of the oven - its cooler there and is easier to get to.
Arduino housed in ABS Box on back of oven.

I had originally intended to use a predefined reflow profile and a PID algorithm, but testing showed that with both the heater elements full on the oven reached peak (240°C) in approximately 300 seconds.  The preheat is a little short and the soak and reflow stages a little long:
Temp/Time chart (for empty oven).

Using a PID algorithm won't make the reflow stage any quicker.  To test I've used a small Arduino script that lets the user select the maximum temperature, the heating elements are then turned on until the max is reached.  Usually open the door to increase the cooling rate.
The source can be found here, a few tests have shown acceptable results.
First Reflow solder test: SOIC 16, perhaps to little solder.

I'd bridged a few of the pads with smear of paste but the reflow process has successfully 'sucked' the solder onto the pad apart from a few beads.
   
Closeup of solder joint.

ConclusionsI've been using the oven for awhile now on simple boards with some success - the boards have been fairly simple and haven't had to fix any issues.  I'm still deciding whether to spend the time implementing (and more importantly tuning) a PID controller for the oven.  My feeling is that the ovens elements can't be made to increase/decrease the ovens temperature quick enough to make it worthwhile.
Others say that applying solder paste by hand and using an oven is as time consuming as using a soldering iron, but I find the process quicker, cleaner (even with a solder fume extractor), and less of an eyestrain - I find it easier to hold a syringe of paste under a microscope than a soldering iron.

地板
发表于 2012-8-3 19:23:15 | 只看该作者
看看吧....
5#
发表于 2012-8-13 09:47:15 | 只看该作者
好东西~谢分享~~
6#
发表于 2012-9-4 16:00:47 | 只看该作者
看看吧....
7#
发表于 2012-9-13 13:43:37 | 只看该作者
太有才了
8#
发表于 2015-10-28 22:14:15 | 只看该作者
这个很好,学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-23 09:29 , 耗时 0.100921 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表