動的半田ごてセラミックヒータ抵抗測定ユニット

概要

半田ごてのヒータにはニクロムヒータとセラミックヒータがあります。 セラミックヒータの温度と抵抗値の特性は、温度が上昇すると抵抗値が高くなります。 手持ちの半田ごて(20W)を実際に調べてみますと、OFF時には、約170Ω、ON時(半田付けが出来るくらいに温まった状態)には、約500Ωありました。 この温度による抵抗の変化を動的(通常に半田ごてにAC100Vを通電しながら)に測定するユニットを作成してみました。 これを応用すると精度の高い“半田ごて温度調整器“が出来そうです。

動作原理

半田ごてには、AC100Vをブリッジダイオードで正弦波を全波に変換した電圧V0を加えます。

半田ごてには、更にVdd(+5V)からダイオードを経由して約4.4Vの電圧V1も同様に加えます。

電圧V0が0Vになるタイミングをブリッジダイオードとフォトカプラで得ます。(PICの割り込み信号に使用)

電圧V0が0Vになるタイミングでは、電圧V1が半田ごてのセラミックヒータ抵抗R0+1Ωの抵抗R1に加えられます。

抵抗R1の両端電圧V2をオペアンプで約101倍に増幅します。

PICのA/D変換でこの増幅された電圧V2を取り込みます。

PIC内部でV2を換算します。
V2=(V2×(5V÷1024))÷101

この電圧V2と抵抗R1より電流I1を求めます。
I1=V2÷R1

電圧V1と電圧V2と電流I1より、セラミックヒータ抵抗R0を求めます。
R0=(V1-V2)÷I1

回路図

ソースコード

//********************************************************************** /* 『動的半田ごてヒータ抵抗測定ユニット』 ※半田ごてに電圧を加えたままで、ヒータ抵抗が測定できます。 ※ヒータ抵抗は温度が上昇すると抵抗値が上がっていきます。 ※これを応用することにより、半田ごての温度を調整することが出来そうです。 */ //********************************************************************** static unsigned char FLAG; void interrupt(){ if (INTCON.INTF == 1) { INTCON.INTF = 0; PORTA.F2 = ~PORTA.F2; FLAG = 1; } } //********************************************************************** unsigned int measurement() { unsigned int ad, max, min, cnt; // ad = 0; max = 0; min = 1024; for (cnt = 0; cnt < 100; cnt++) { ad = Adc_Read(1); max = ad > max ? ad : max; min = ad < min ? ad : min; } return (max); } //********************************************************************** void main() { static unsigned char buf[6], cnt; static unsigned int ad; static double v1, r1, i1; // OSCCON = 0b01110000; // クロックは8Mhz CMCON = 0b00000111; // コンパレータは使用しない。 // Ａ／Ｄ変換を使用する。 ANSEL = 0b00000010; // ポートを初期化する。 TRISA = 0b00111010; TRISB = 0b00001111; // 入力割り込みの設定 INTCON.INTE = 1; INTCON.INTF = 0; OPTION_REG.INTEDG = 1; // ＬＣＤを初期化する。 Lcd_Custom_Config(&PORTB,4,5,6,7,&PORTA,0,7,6); Lcd_Custom_Cmd(LCD_CURSOR_OFF); Lcd_Custom_Cmd(LCD_CLEAR); Lcd_Custom_Out(1, 1, "HeaterResistance"); Delay_ms(500); Lcd_Custom_Cmd(LCD_CLEAR); // INTCON.PEIE = 1; // これ以降の処理で割り込みを許可する。 INTCON.GIE = 1; // これ以降の処理で割り込みを許可する。 // FLAG = 0; while (1) { ad = 0; for (cnt = 0; cnt < 30; cnt++) { while (FLAG == 0) ; FLAG = 0; ad += measurement(); } ad = ad / 30; v1 = ((double)ad * 4.8828125) / 101.0; i1 = v1 / 1.0; r1 = (4400 - v1) / i1; // WordToStr(r1, buf); Lcd_Custom_Out(1, 1, buf); buf[0] = 0xF4; // Ω buf[1] = 0x00; Lcd_Custom_Out(1, 6, buf); // WordToStr(v1, buf); Lcd_Custom_Out(2, 1, buf); Lcd_Custom_Out(2, 6, "mV"); // WordToStr(i1, buf); Lcd_Custom_Out(2, 9, buf); Lcd_Custom_Out(2, 14, "mA"); } } //**********************************************************************

動作確認

いつものブレッドボードで動作確認しました。 AC100Vを使用しますので取り扱いにはご注意ください。

フォトカプラの入力電圧と出力電圧の波形です。 電圧が0Vになるタイミングをこれで得ることができます。

半田ごてに通電していないときのセラミックヒータ抵抗の値です。

半田ごてに通電し始めた時のセラミックヒータ抵抗の値です。

半田ごてに通電し、十分温まった時のセラミックヒータ抵抗の値です。

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細 This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details