📜 ⬆️ ⬇️

Modernization of industrial infrared station, or how to do it initially. Part 1


Being a master of repairing digital equipment and laptops, there was an urgent need for an Infrared (IR) soldering station, but since ready-made kits cost us in Ukraine prohibitively expensive, there were two options for discussion: 1) Assemble from scratch 2) Assemble from blocks. I chose the second option, since it is less time-consuming and expensive, and on the same day I purchased the lower preheater of the AOYUE Int 883 boards. As for me, cheap and cheerful, and in principle for my tasks it’s the most. But in the process of work, shortcomings and “bugs” were identified and a decision was made to eliminate and modernize.
There are a lot of photos under the cut, the purpose of the article is to show how easy it is to connect complex devices with PCs and automate the process.
Traffic! Lots of photo material!

Let's start with a review of the preheater.

AOYUE Int 883


I borrowed the primary description here , since basically there’s no point in repeating the same thing.
The case is solid, made of not thin metal (mostly iron, the front panel is aluminum, reflectors are also aluminum), does not bend, does not creak, the quality of processing and painting is good, there are ventilation holes on the bottom and side. Below are four rubber legs, "clearance" - about 2 cm, i.e. he will definitely not warm the table. The grid between the quartz heater and the working area is aluminum, with two transverse steel holding “strings” - this is bad, because it will bend and swell, as demonstrated in the work. A temperature controller, a jack for connecting external thermocouples and a power switch are located on the front, a power cord and a fuse are located at the back.

Next, the heater. The heater is made of quartz tubes, with a capacity of 1.5 kW (which is quite enough), the size of the heater is 260x295 (what is stated in the specifications is the grid field). This size is suitable for large boards, including full-size dekstopov. The reflector is aluminum, it is mounted on the aluminum brackets to the bottom of the heater, there is not much heat down and there is not much heat on the sides, the body only heats up slightly.


Control means - PID controller with 3 modes of operation and 3 thermocouples: internal on the heater and two external on the flexible hose.
0 mode allows you to set the temperature on the internal sensor (400 maximum), while 2 external thermocouples can be used for monitoring (in the process, you can see their data).
Mode 1 sets the temperature by feedback from an external thermocouple, while the temperature sensor can be placed, say, on / under the board. The remaining sensors are monitored.
Mode 2 - work on thermoprofile, thermoprofile just one, but with 6 steps. This solution of the developers is not very clear - it would be better to make 2 thermal profiles with 3 steps each. The maximum duration of each step is 200 seconds, the temperature is 250. That is, The total duration of a thermal profile can be 20 minutes, this is sufficient for all tasks.
I didn’t really like the PID job, in general, it is quite suitable for pre-heating purposes, but it could be better. There are flaws in temperature regulation, for example, if you set a high heating rate, then there is an “overshoot”, possibly associated with the inertia of heaters (which is strange, it seems that quartz is better than ceramics in this regard, but at least with the simplest PID ceramics worked better).
External thermal sensors are made in the form of flexible metal hoses, wire with an alloy sticks out from the end of the hose. On the one hand it is convenient, flexible hoses allow you to mount the sensor to the board without any problems, on the other hand, there is a flaw in the form of a sticking wire. Still did not like the fact that the sensor socket in front, sometimes interfere.

Initially, the thermo table showed the temperature in "parrots". There are trimmers for each sensor on the regulator board. So problems with calibration should not arise.
The quality of the soldering and mounting of the electronics is quite tolerable (for China), the triacs (there are two of them, BTA20) are located on an aluminum radiator (thermal paste is present) of a large area, besides being blown by a fan. The electronics are separated from the heater by an aluminum screen.



Table-holder boards. Actually, in addition to a large heating area, this is another advantage of the heater, since I have not seen a single cheap heater with a decent table-holder boards.
The table was made quite well, the workmanship does not cause any special questions, it was done simply and efficiently. In addition to the two main plates-holders, there are lower “supports” with bolts and nuts that prevent the board from sagging during heating, as well as 4 hooks from the main plates. The latter is convenient to use for mounting small boards, for example video cards. The design of the lower holders is not quite comfortable, but it is fully operational. Minus - the bolts are designed for the holes of desktop boards, i.e. in the hole notebooks do not climb. On the other hand, no one bothers to put the board directly on the bolts, or buy the necessary one and change it.


The flaws are revealed personally by me. The board mounting table was originally sharpened for XBOX boards and needs some work. Attempting to calibrate the temperature sensors slightly improved the situation, but at the very least it remains unpleasant, in time to work, to adjust the temperature and often you chick the temperature sensors, which is critical since their position gets lost and if the solder melts, you can disrupt the parts. In the control center, the function of recording thermal profiles is written through the ass by Hindus, and I really could not properly learn how to use it.

Formulation of the problem


1) Complete alteration of the control unit, namely: throwing out the old control unit in the trash, we assemble our unit with the possibility of monitoring and control from the PC.
2) Assemble also a PC controlled top heating unit
3) Achieve perfect and normal temperature display.

Implementation


Since time is short and it’s necessary to work with and use an IR station, it’s not permissible to interrupt its work at a critical time, because I have chosen the simplest options.
1) On the prototyping board, the control unit for the lower heater and the upper one was assembled, as well as the data collection from the sensors and the data exchange interface with the PC.
2) Arduino bootloader is used as a filling for microcontrollers and fast debugging
3) As a control on the PC, Visual Basic .NET was chosen.

Control unit, circuit, test (debug) version

Let's start with the scheme. Below is a diagram of the test block for debugging.
It consists of two Atmega8 and Atmega 168 microcontrollers. The first MK serves as a USB converter - RSR232. The second MK will be the executive unit. For now, a simple thermistor is soldered for test debugging.

Final result

After you collect the block, you need to flash the MK
Firmware for Atmega8 and Fyuzy
The firmware for Atmega 168 is taken from the folder with the Arduino IDE arduino \ hardware \ arduino \ bootloaders \ atmega \ ATmegaBOOT_168_diecimila.hex
Fyyu for firmware LOW: 0xff HIGH: 0xdd
If there are difficulties with the firmware, I'll sign it in more detail.
After assembly and firmware, our board should work perfectly in the Arduino IDE and is called Arduino Diecimila or Duemilanove w / ATmega168 there.
If everything worked for you, then we will run our test sketch to collect thermocouple readings.
int temperatura;
void setup()
{
Serial.begin(115200);
}
void loop()
{
char ler = 'n';
if(Serial.available()>0)
{
ler=Serial.read();
}
if(ler=='a')
{
delay(10);
temperatura = analogRead(0);
temperatura = (5* temperatura * 100)/1024;
Serial.print(temperatura);
}
}

With the boards so far finished. And let's start writing software for the PC.
')
Thermocouple data display program

I wrote in Visual Studio 2010 in Visual Basic .NET because it's easier for me.
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ports As String() = SerialPort1.GetPortNames()
Dim port As String
For Each port In ports
ComboBox1.Items.Add(port)
Next port
End Sub

Private Sub ConnectToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ConnectToolStripMenuItem.Click
SerialPort1.BaudRate = 115200
SerialPort1.DataBits = 8
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.PortName = ComboBox1.Text
Try
SerialPort1.Open()
Timer1.Start()

Catch ex As Exception

End Try
End Sub

Private Sub DisconnectToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DisconnectToolStripMenuItem.Click
Try
Timer1.Stop()
SerialPort1.Close()

Catch ex As Exception

End Try
End Sub

Private Sub RefreshPortsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RefreshPortsToolStripMenuItem.Click
ComboBox1.Items.Clear()
Dim ports As String() = SerialPort1.GetPortNames()
Dim port As String
For Each port In ports
ComboBox1.Items.Add(port)
Next port
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Try
SerialPort1.Write("a")
System.Threading.Thread.Sleep(250)
Dim i As Integer = SerialPort1.ReadExisting
Chart1.Series("Series1").Points.AddY(i)
Label1.Text = "Temperatura actual" + i.ToString()
Catch ex As Exception

End Try
End Sub

Private Sub Chart1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Chart1.Click

End Sub
End Class


This program, when connected to the board, will display the thermocouple reading as a graph (why? In the next part).
It looks like this


At the moment everything. This is only an introduction and all development will continue in the next part.
I will be glad to answer any questions.

Source: https://habr.com/ru/post/138044/


All Articles