Introduction: DIY Soldering Station With OLED Display
Follows the steps to build a simple temperature controlled soldering station. You will need some basic electronic knowledge in order to build this smoothly.
This soldering station is using laptop adapter as the power supply, laptop adapter voltage can be 19V to 24V.
Step 1: Getting Ready Materials
1. soldering handle, hakko 936 compatible.
2. arduino nano or compatibles.
3. 0.96 inch I2C OLED display (128 * 64 pixels)
4. MCP602 or MCP601
5. LM7805, 5V voltage regulator.
6. BJT KN2222 or equivalents.
7. MOSFET, CSD18534KCS (RDSon =10.2mOhm with VGS=4.5V) or other power mosfet that can be turned on by VGS of 5V. Take note of the RDSon for the VGS of around 5V since the Arduino nano pin that will be used to control the mosfet is 5V. Smaller RDS on will be better.
10. capacitors: Electrolytic 50V 47uF or more, 0.1 uF ceramic or multilayer cap
11. GX16-5 Pin
12. donut board, jumper wires, soldering iron etc.
Step 2: Characterization of Temperature Sensor
I bought a new heating element, and replace the one that comes with the soldering handle because I spoiled it when i wrongly connected power supply to the temperature sensor terminal assuming it as heating element terminal (the insulation of the temperature sensor melted).
the newly bought heating element has the heating element resistance of around 4Ohms, and temperature sensor's resistance around 37 Ohms at room temperature of 30 degree Celsius. I power up the heating element and start measuring the temperature with thermocouple, and recorded down the corresponding resistance at temperature interval of 10 degree Celsius. The results is very linear. I plot the graph with excel, insert graph, Scatter (x,y). then right click at the points on the graph to add trendline (choose linear fit). Right click the trendline, Format trendline and tick display equation on chart to let excel to find out the equation for the line. with the equation we can calculate temperature from the resistance of the PTC temperature sensor of the heater.
Step 3: Constant Current Source Circuit
i start with constant current source to measure the resistance of the temperature sensor. with a known constant current, it is easy to calculate the resistance by measuring the voltage over the temperature sensor. According to Ohm's Law, the resistance is Voltage divided by Current (V/I), where I is the known constant current source value.
The resistance range of the temperature sensor is from around 30 to 100 Ohm for the temperature ranging from 30 to 400. If we choose around 20 mA, the output voltage range (V=IR) will be from 0.6V to 2V which is in the range readable by arduino analog input pin. It will provide some tolerance in case of the temperature above 400 degree celcius which will produce voltage more than 2V. 2V divide 400 give resolution of 5mV per degree celcius. arduino 10 bits ADC with 5V reference has resolution 4.88mV, which means roughly each increment in adc value corresponding to 1 degree celcius increment. You can use different current source value to get better accuracy.
when comes to the real current source circuit as shown in picture, 47 Ohm resistor is used as the feedback resistor. The reference voltage is generated from the 5V voltage regulator by using voltage divider (47k Ohm with 10k Ohm divider) to give voltage reference of around 0.877V, and is subject to some tolerance because the resistors used is not accurate. With this voltage reference, the constant current is calculated as 0.877/Rfb =0.877/47=18.66mA.
The actual current measured from the current source using multimeter is around 19 mA. You can test changing load with different resistors with different values and measure the current. The current will maintained to be 19mA.
The op Amp used here is MCP602 and the BJT transistor is KN2222. Remember to power the op amp Mcp602 with 5V and add some 0.1uF ceramic or multilayer capacitor to the 5V/Gnd pin of the MCP602.
Step 4: Mosfet Control Circuitry
Mosfet is used to control the current flow through the heating element. I have high current Mosfet sample from TI, CSD18534KCS. This nice mosfet which has low on resistance eventhough is turned on with only 5V.
The circuit mosfet is shown as above, 47ohms low resistance to gate is to make sure the PWM pulse from Arduino in good square shape. The pull down 100k Ohm resistor is to make sure the mosfet Gate pin will not float at any time which may cause damage to mosfet.
Step 5: Powering LM7805 From 24V
I am going to power up the whole soldering station with 24V power supply. I chose to use external LM7805 (TO220 package) instead of the 5V regulator on Nano because I am no very confident with the current capability of that small regulator.
24V input seems to be a little too high for LM7805 which we will going to use to power the op amp circuitry and arduino nano. Picture shows a simple BJT circuit to drop some voltage for the regulator. The voltage going to the regulator can be calculated as 24x[2.2/(1+2.2)]-0.6 V = 15.4V, assuming that BJT's VBE is 0.6V.
We can also add polarity protection by adding a diode 1N4007 before the 24V going into the transistor's collector pin. this will also further drop a little voltage.
Step 6: Target Temperature Control
To set target temperature, I used a potentiometer connected to Nano pin A1. Nano will read the value of potentiometer and map to temperature value between 0 to 400 degree celcius.
Step 7: Complete Circuitry
Complete circuitry is shown in the picture.
Remaining part is the coding:
arduino code is attached. The code ultilize Adafruit library for the OLED. The main source code is adapted from Matthias Wagner, www.k-pank.de/so, Get.A.Soldering.Station@gmail.com with some modification to use the I2C OLED.
Integral term is added apart from the proportional to eliminate steady state error.
PWM frequency used is aroun 31kHz.
I limit the PWM to maximum 180 (maximum 255) because i doubt the current capability of my power supply.
the heater resistance is measured to be around 4Ohm. For PWM value of 180, the voltage over the heating element is around 180/255 *24V =16.94V. This means the current will be around 16.94V/ 4Ohm = 4.2 Ampere. Please adjust the maximum PWM in the code to match the maximum current capacity or your power supply.