電子工作69 – 半田ごて用安全タイマーの製作

 

 

概要

   半田ごてを使う時、歳のせいもあって、いつも電源を消し忘れ火事を引き起こすのではと気になる。 そこで電池で動く簡単な安全タイマーを製作することにした。

 

製作にあたって考えていたこと

1)    12F629を使い、電池で駆動する。

2)    半田ごてのON/OFFには電子リレー(SSR: Solid State Relay)を使う。

3)    タイマーの駆動時間は10分と30分の2種。

4)    タイマーの駆動時間が終了したら電子ブザーが15分間鳴る。止めるにはReset SWを押してタイマーを再始動させるか、電源SWを切る。これで電源切り忘れによる電池の消耗を防ぐ

 

回路図

  下図のように、電源には単4電池3本(4.5V)をケースに入れて使う。SSR動作時の電流消費が10mA弱であること、ブザーで電源SWの消し忘れを防げることなどから電池で十分と考えた。さらに出来るだけ電池の消耗を抑えるためLED (R) の電流制限抵抗の価を出来るだけ大きく10Kとし、またSSRとGP5の間にも動作に支障のないことを確認の上、出来るだけ大きい900Wの抵抗を入れた。これらによって消費電流10mA弱が達成出来た。タイマーの通電時間はGP0につないだTime Select SWで10分か30分を選択出来る。上記のLED (R) はSSRがONの時点灯する。

 

SSR(S108T02)とGP5の間に入れる抵抗(R)に関して:

電池の消耗を出来るだけ抑えるため抵抗値(R)、流れる電流値(I)、SSRの動作(ON/OFF)の関係を調べた。下表にその結果を示す。これらの値から900Wが丁度良い抵抗値と考え採用した。

R

I (mA)

SSRのON/OFF

2.2K

7.48

OFF

1.5K

8.10

ON

900W

9.30

ON

330W

13.55

ON

33W

24.87

ON

5W

25.68

ON

0W(抵抗なし)

26.29

ON

電池電圧: 4.5V; 電流(I)は電池の+側端子にテスターを直列に入れて測定

 

 

左の写真が完成した装置の外観で、左端のSWは10/30分切替え用、次がLED、ResetSW、電源SWと並ぶ。右の写真はその内部。 

 

結果&コメント

1)     正常に動作することが確認された。

2)     通電時間が終了した後ブザーが鳴るので電池の電源SWの消し忘れが防げる。

3)     材料費は1500円ほど。

4)     予備実験でSSR(¥280)を2個壊してしまった。内蔵LEDに過大電流を流してしまったようだ。マニュアルによると電流の推薦値16−24mA、最大値50mA。

5)     改良プログラムを最下部に添付(2013.11.30)。Reset SWを押すことなく、Time Select SWだけでSSRがON中に自由に10minや30minを選べるようになった。ただこれによってタイマーの時間が狂ってきたので修正した。10min: 67−>63、30min: 201―>189

 

プログラム

先ずTime Select SWの入力(10min/30 min)を読み、15minならSSRとLED (R)をONにして15min待ち、ついでSSRとLED (R)をOFFにする。そしてブザーを15分鳴らして終了する。一方30minの場合もSSRとLED (R)をONにする時間を30minに延長する以外は15minの場合と同じルーチンを行って終了する。ブザー音の発生にはPicBasic ProのSoundというユニークなコマンドを使う

 ‘********************************************

'Soldering-iron Timer.bas  2013.11.20

'Program for 12F629

'*********Pin connections*********

'Pin1: Vdd(5v)

'Pin8: Vss(GND)

'Pin4: Reset(MCLR)

'Pin2: To SSR

'Pin5: To Buzzer

'Pin7: To Timer select SW

'Pin3: To LED(R) for SSR->ON

'*********Program*********

CMCON=7  'Comparator off

TRISIO=%001001

TimeSelectSW var GPIO.0

Buzzer var GPIO.2

SSR var GPIO.5

LEDSSRON var GPIO.4

m var byte

n var byte

 

Buzzer=0

SSR=0

LEDSSRON=0

 

IF TimeSelectSW=1 Then

Goto ShortTime

Else

Goto LongTime

Endif

 

ShortTime: '10-min timer

High SSR

high LEDSSRON

For m=1 to 67  '10 min  67 - decided though exp. 67は実験的に決めた(電源電圧によって値が変わる?)

Pause 10000  '10 sec

Next m

Low SSR

Low LEDSSRON

Goto BuzzerON

 

LongTime: '30-min timer

High SSR

high LEDSSRON

For m=1 to 201  '30 min  201 - decided though exp. 201は実験的に決めた

Pause 10000  '10 sec

Next m

Low SSR

Low LEDSSRON

Goto BuzzerON

 

BuzzerON:

For m=1 to 15 '15-min buzzer timer ブザーを15分鳴らして終了。電池を節約する対策。

For n=1 to 120

Sound Buzzer,[150,50] 'drive the piezo buzzer - piri,piri,piri,.... PicBasic Pro独自のコマンド。鳴ってる間にResetSWで再始動したり、電源を切って終了する。

Pause 500  '0.5 sec

Next n

Next m

 

End

'********* End of Program ***********

 'Note:

   'melabs U2 Programmer's configurations for 12F629:

   'Oscillator - INTOSC; WDTE – Eable; PWRTE - Disable

   'MCLR - Reset ; BODEN - Enable; CD - Disable; CDP – Disable

 

 

プログラムの改良(2013.11.30)

  Time Select SWが10min(または30min)の状態で電源SWをONにし、途中でTime Select SWを、Reset SWを押すことなく、30min(または10min)に変えると10minの状態が続くことが分かった。SSRに通電中にReset SWを押すことなくTime Select SWだけで自由に10minや30minを選べる様にしたかった。すなわちプログラム中のShortTimeとLongTimeルーチンの中にTime Select SWの状態をチェックする機能を入れ、Time Select SWの状態がはじめと変わったらTopに飛んで最初からやり直す様にした。実際に動かしてテスト中にこの不都合を発見した。

‘********************************************

'Soldering-iron TimerA.bas  2013.11.30 modified to change the time mode from 10-min to 30-min or vice versa while counting time simply by changing the Time Select SW but without pressing Reset SW

'Program for 12F629

'*********Pin connections*********

'Pin1: Vdd(5v)

'Pin8: Vss(GND)

'Pin4: Reset(MCLR)

'Pin2: To SSR

'Pin5: To Buzzer

'Pin7: To Timer select SW

'Pin3: To LED(R) for SSR->ON

'*********Program*********

CMCON=7  'Comparator off

TRISIO=%001001

TimeSelectSW var GPIO.0

Buzzer var GPIO.2

SSR var GPIO.5

LEDSSRON var GPIO.4

m var byte

n var byte

 

Top:  ‘2013.11.30 newly added

Buzzer=0

SSR=0

LEDSSRON=0

 

IF TimeSelectSW=1 Then

Goto ShortTime

Else

Goto LongTime

Endif

 

ShortTime: '10-min timer

High SSR

high LEDSSRON

For m=1 to 63  '10 min  63 - decided though exp.

Pause 10000  '10 sec

If TimeSelectSW=0 Then  ‘Following 4 lines newly added 2013.11.30 ここから4行でTime Select SWが30-minではないかをチェック、もしYesならTopへ飛ぶ

Goto Top

Else

Endif

Next m

Low SSR

Low LEDSSRON

Goto BuzzerON

 

LongTime: '30-min timer

High SSR

high LEDSSRON

For m=1 to 189  '30 min  189 - decided though exp.

Pause 10000  '10 sec

If TimeSelectSW=1 Then   ‘Following 4 lines newly added 2013.11.30 ここから4行でTime Select SWが10-minではないかをチェック、もしYesならTopへ飛ぶ

Goto Top

Else

Endif 

Next m

Low SSR

Low LEDSSRON

Goto BuzzerON

 

BuzzerON:

For m=1 to 15 '15-min buzzer timer

For n=1 to 120

Sound Buzzer,[150,50] 'drive the piezo buzzer - pri,piri,piri,....

Pause 500  '0.5 sec

Next n

Next m

 

End

'********* End of Program ***********

 

Menu Pageへ戻る

Topへ戻る