Ezt a digitális forrasztóállomást fél éve építettem és azóta szinte csak ezt használom. Az ötletet innen vettem, de ATmega324-es MCU-t és egy Proxima-01 típusú LCD-t használtam. A páka Solomon SL20E/SL30E típusú. Mágnesek rögzítik a pákatartót a doboz tetejére:
{width="320"
height="240"}
{width="320"
height="240"}
Ha kell, a pákát a tartóval együtt könnyedén le lehet venni:
A forrasztóállomás belseje:
{width="320"
height="240"}
{width="320"
height="240"}
Én is beépítettem a pákába egy termisztort (talán KTY83-110 típusút), de végül nem használtam fel, mert a páka hegyében levő érzékelő elég pontosnak bizonyult. Egy külső hőmérővel lemértem, hogy adott ADC érték mellett milyen hőmérsékletű a páka hegye:
test1d.txt fájlban van az adott hőmérséklethez tartozó AD érték:
31 30
80 40
110 62
140 90
165 120
195 150
215 175
240 200
300 200
370 250
380 260
400 280
Majd az octave nevű programmal (MATLAB nyílt forrású klónja) egy másodfokú függvényt illesztettem a görbére (ami a fájlban van leírva):
## Load the data into (x,y)
data = load ('test1d.txt');
xdata = data(:,2);
ydata = data(:,1);
## Fit a 2nd order polynomialorder = 2;
p = polyfit (xdata, ydata, order);
## Evaluate the fitted polynomialx = linspace (min(xdata), max(xdata), 101)
y = polyval (p, x);
## Plotplot (x, y, '-', xdata, ydata, 's')
legend ('Fitted polynomial', 'Original Data')
ppause
Az együtthatók (fordított sorrendben) a következők lettek:
p =
1.6446e-03 8.8415e-01 3.1238e+01A C programomban a szűrt adc1Filt ADC értékből azután így kapom meg a hőmérsékletet:
float adc1Filt = 0.0f; // Ide 0..1023 kerulhet
const float a = 1.6446e-03;
const float b = 8.8415e-01;
const float c = 3.1238e+01;
float temp_C = c + adc1Filt * b + adc1Filt * adc1Filt * a;
A forrasztópáka 10 perc után magától kikapcsol, ekkor csippan is egyet.
{width="320"
height="240"}
{width="320"
height="256"}