PICを使った半田ごてタイマーの製作

[公開:any]

[電子工作/PIC]
[PIC,PIC12F683,トランスレス電源,mikroC]

origin 2007-10-06


 構想

最近のセラミックヒータの半田ごては、予熱時間が短くて便利です。それでも使いたいときにサッと使えないと不便ですよね。で、つけっぱなしにしておくと、忘れてしまって翌日までそのままなんてことが数回(非常に危険)ありました。

サッと使えない不便は我慢するとしても、つけっぱなしで忘れるのはなんとか防ぎたい。

ということで、半田ごてタイマーを作ってみました。

 設計

PICを使ったOFFタイマーを作ります。PICは、その性能にほれ込んで大量に買い込んだPIC12F683。タイマーだけならもったいないけど仕方がないですね。

基本動作は、プッシュボタン入力で、リレーを保持。リレーは基盤用の小型パワーリレーを使用します。AC125V3Aの定格ですから、通常の半田ごてなら問題なしでしょう。でも、間違いがあるといけないので2Aのヒューズで保護します。
OFFまでの時間は、1時間ときめて、10分ごとにアラームで経過時間を鳴動。つまり、10分でピッ、20分でピッピッ・・・60分でピロピロとなってリレーをオフという単純なつくりとします。

PICの電源は、電子マスカットさんを参考にトランスレス電源とします。ブレットボード上で負荷試験したところ、60mAまでは5.0V、80mAで4.5Vの容量があります。
パワーリレー単体の動作で80mA以上の電流が必要となりますが、リレーコイルに10Ωの抵抗を直列接続して電流制限を行いました。動作時電圧4.5V程度でPICの電源も問題ないようです。

ac_timer.PNG

 製作

メタライズド・・コンデンサ(なまえ忘れた)が大きいですが、パワーリレーも含めて秋月電子の小さい基盤に収まるように配置しました。

DSC00849.jpg

タカチのプラスチックケースに組み込みます。AC100Vラインがあるのでショートには注意が必要です。
パワーリレーを通るACラインはちょっと太目の配線とします。とはいっても、1A以下なのでAWG20程度でも問題ないでしょう。

DSC00850.jpg

PICのプログラムは、mikroCのデモ版を使用します。デモ版の制限は、HEXが2Kワードを超える出力ができないことですが、PIC12F683のROMは2Kなので制限なしに開発できます。

タイマーですが、用途から正確な時間は必要ありませんので、PICは内蔵クロック125KHzで動作させます。

ソースプログラム (mikroCのソースファイルとなっています。)

/**
* AC Timer
* 12F683 Timer0 interrupt
* Device Flags:
* _CP_OFF  _MCLRE_OFF _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT
*
*  1/OSC * 4 * Pres(OPTION_REG last 3bit) * TMR0
*/
unsigned int cnt;

void interrupt() {
    if(INTCON.T0IF) {
        INTCON.T0IF = 0;
        cnt++;
    }
}

void main() {
    unsigned int i;
    unsigned int lp;

    OSCCON = 0b00010000;        // 125KHz internal clock
    TRISIO = 0b00000100;          // GP2 input,other output
    ANSEL = 0b00000000;         // GP0-5 Digital Output
    GPIO = 0b00000000;           // GPIO 0 clear
    CMCON0 = 0b00000111;         // Comparator not use

    OPTION_REG = 0b00000111;     // Pull-up Enable and prs=111:1/256
    WPU = 0b00000100;             // GP2 pull-up on

    INTCON.T0IE = 1;            // Timer0 interrupt enable
    INTCON.GIE = 0;                // General interrupt enable

    cnt = 0;
    lp = 0;
    GPIO.F0 = 1;

    do {
        if(Button(&GPIO, 2, 1, 0)) {    // sw on
            INTCON.GIE = 1;
            cnt = 0;
            GPIO.F4 = 1;                // count led on
            GPIO.F0 = 0;                // power led off
        }

        if(cnt > 286) {                    // inside loop count check
            lp++;
            for(i = 0; i < lp; i++) {   // short sound
                GPIO.F1 = 1;            // Bzz on
                Delay_ms(200);
                GPIO.F1 = 0;            // Bzz off
                Delay_ms(1000);
            }
            cnt = 0;
        }

        if(lp > 5) {
            GPIO.F4 = 0;
            INTCON.GIE = 0;
            for(i = 0; i < 30; i++) {   // long sound
                GPIO.F1 = 1;
                Delay_ms(200);
                GPIO.F1 = 0;
            }
            lp = 0;
            GPIO.F0 = 1;
        }
    }while(1);
}


 完成

これで半田ごてのきり忘れがなくなります。電源を切り忘れても10分ごとにピッとなるので、「オッ、半田ごてつけっぱなしだ」と気がつきます。

DSC00851.jpg


▲ページ Top へ...