電子工作57 – 電池式ラジオ用簡易外付けスリープタイマ−(30分、2時間)の製作

 

概要

携帯式の電池で動くラジオを数台持っているが、いずれも一定時間が来たら自動的に電源が切れるいわゆるスリープタイマー(=オフタイマ−)機能を備えていない。そんな訳でPICとPICBasic Proを使って外付けの簡単なスリープタイマーを製作してみることにした。

 

 

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

1)     電源電池の直列ラインの一部(電池電極とケースの接触部)を物理的に離し、そこから2本の線を出しPICとフォトリレーでその部分の導通を制御する。

2)     出来るだけ簡単な構造にする。

3)     電池駆動なので省エネ方法を検討する。

 

回路図

  下の様に簡単な回路になった。ラジオの電源電池の一個所をスプリング力に抗して物理的に離し、その間にプラスチック片(絶縁体)を挟んだ2枚の導線付き銅片を入れる(似たような構造ならどんな形でもOK)。この部分は自作する必要がある。また電池収納フタがきちんと閉まるようにする必要もある。このラジオから取りだした2本の線をフォトリレーに接続する。途中に連続/タイマー選択SWを入れてある。連続にすればラジオは電源SWを入れると連続して動作する。またタイマーを選べばタイマー時間選択SWで電源がOFFになる時間を30分か2時間に設定出来る。フォトリレーの内蔵LEDが点灯すると、そのピン4と6間が数メガWから数Wに低下し導通してラジオの電源が入る。外付けのLEDが導通しているかどうかを示す。このスリープタイマーはプログラムがEndコマンドで終わるルーチンのためか電池の電源SWをONにして起動させようとすると誤動作を起こす。したがって起動は原則Reset SWを押して行う。スリープタイマーの消費電流は動作中で約1.25mA、Endコマンドで終了した後(待機電流)は1.1mAと極端に低下する。単4電池を2本でも結構長持ちしそうだ。例えば、1日5時間スリープタイマーを動作させるとすると1.25mAx5h=6.25mAh。月30日とすると6.25mAhx30=187.5mAh。単4乾電池で450mAh位とされているので優に2カ月以上は持ちそうだ。

 

                    自作したラジオ電源の分離取り出し端子: プラスチック板が挟んであり、

一方は電池電極、他方はケースの端子に接触する                           左の端子が電池ケースの中で挟まれている状態

 

                                     実験中: 12F629が上方の中央に見える。下方右手の黒い物体が電池ボックス。

                                            下方にはSONYのICF−4900IIラジオが見える。電源SWは電子式である。

使用する部品の数が少ないのが分かる。

 

結果&コメント

1)     使用法 (SONYのICF−4900IIでタイマーモード30分を使う場合)

a)       連続/タイマー選択SWでタイマーを、タイマー時間選択SWで30分を選択する。

b)       電池の電源SWを入れる。

c)       Reset SWを押し、LEDの点灯を確認する。

d)       ラジオの電源SWを押し、ラジオのLEDの点灯を確認する。

e)       後は選局、音量調整などしてラジオを聴く。

f)        タイマーの30分が切れ、再び再生したければ、上の” c) Reset SWを押す” 以下の操作を繰り返す。

注: バックアップ電流が1mA前後と小さいので通常は電源SWをONにしておいて良い。連続/タイマー選択SWで連続を選ぶ場合は省エネのため電源SWを切っておく。

2)        最初PBPのSleepコマンドを使って超省エネを図ろうとした。しかし今回の目的には“End”コマンドで同じ役目を果たすことが分かった。複雑な割込みも使わずに済んだ。

3)        SONYのICF−4900IIの電源を入れラジオを聴くと7−20mAの電流を消費することが分かった。このフォトリレーは200mA以上の電流を扱えるので問題なし。

4)        メカニカル電源SWを持つ電池式ラジオの場合、ResetSWを押すと直ぐ電源が入るので、上記電子式電源SW を持つSONYの場合より操作が一つ省ける。

5)        使ってみるとなかなか便利。上記SONYの場合、設定時間が来る前にReset SWを短く押すと時間が再設定され、さらにラジオの電源も切れない。

6)        今回はタイマーの選択時間は2つであったが、その数を増やす場合は省エネに関して検討が必要(例えばWeak pull-upを使うとか)

7)        材料費は合計で1000円ほど・

 

プログラム

  このプログラムは以下のように簡単である。PBPのEndコマンドで終わると省エネモードに入り SleepコマンドがLoopをつくって実行し続けるのと同じ役目をするという。実際Endで停止すると消費電流は1.1mAに低下した。

'**********************************************

'RadioControllerSimpA.bas 2011.6. 10 Works!!

'12F629 used

'Compiled by PICBasic Pro

'Continuous, 30-min and 2-hrs timer (3 modes)

 

'***** Pin Connection *****

'Pin 1 - Vdd (+3V) batteries

'Pin 8 - GND

'Pin 4 (GP3) - to Reset SW and Vdd via 10K

'Pin 5 (GP2) - Photo relay drive

'Pin 6 (GP1) - Time select SW (30min or 2hrs)

 

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

CMCON=7

TRISIO=%001010

TimeSltSWIn var GPIO.1

RelayDrvOut var GPIO.2

I var Byte   '<256

 

TimeSltSWIn=0

RelayDrvOut=0

 

If TimeSltSWIn=1 Then Timer30min  '30-min or 2-hr Select SW   ここで30分か2時間いずれを選択したかの情報を取り込む

Goto Timer2hr

 

Timer30min:                  '30分タイマー

High RelayDrvOut  'Relay -> ON

I=0

For I=1 To 30  '30--min timer

Pause 60000 '60 sec

Next I

Low RelayDrvOut  'Relay -> OFF

Goto Finishing

 

Timer2hr:                    '2時間タイマー

High RelayDrvOut  'Relay -> ON

I=0

For I=1 To 120  '2-hr timer

Pause 60000 '60 sec

Next I

Low RelayDrvOut  'Relay -> OFF

Goto Finishing

 

Finishing:

End  'Entering into a semi-sleep mode consuming little power このEndコマンドはSleepコマンドと同じような役目をする。ただし無限に停止。Resetで起きる。最重要!!!

'****** End of program*******

 'Note:

   'melabs U2 Programmer's configurations for 12F629:

   'Oscillator - INTOSC; WDTE - Enable; PWRTE – Enable             

   'MCLR - Reset; BODEN - Diable; CD - Disable; CDP - Disable.        *BODENをEnableにすると消費電流が40−50mA上昇するのでDisableにしないといけない。

 

 

電池式ラジオ用簡易外付けスリープタイマ−改良版(30分、1時間、2時間、3時間)の製作 (2011.6.12追加)

   タイマーの設定時間を2個増やして4個にした。今回課題になった点は、出来るだけ電池が持つようにタイマー時間選択SWに接続するプルアップ抵抗(500KW)とGNDに落とす抵抗(47KW)の値をどうするかであった。実験を行って決めた。その結果、スリープタイマーの消費電流は動作中で約1.40mA、Endコマンドで終了した後(待機電流)は約7.0mAと前述の場合に比べ多少増加したが、それでも電池は十分長持ちすると思われる。

 

プログラム

  このプログラムは基本的には上記の'RadioControllerSimpA.basと同じで、1時間と3時間を数えるルーチンを新たに加えただけである。

'********************************************** 

'RadioControllerSimpMSW1.bas 2011.6.12  works OK

'12F629 used

'Compiled by PICBasic Pro

'Continuous, 30-min, 1-m 2- and 3-hr timer (4 modes)

 

'***** Pin Connection *****

'Pin 1 - Vdd (+3V) batteries

'Pin 8 - GND

'Pin 4 (GP3) - to Reset SW and Vdd via 10K

'Pin 5 (GP2) - Photo relay drive

'Pin 7 (GP0) - SW 30 min

'Pin 6 (GP1) - SW 1 hr

'Pin 3 (GP4) - SW 2 hr

'Pin 2 (GP5) - SW 3 hr

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

CMCON=7

TRISIO=%111011

TMR30min var GPIO.0

TMR1hr var GPIO.1

TMR2hr var GPIO.4

TMR3hr var GPIO.5

RelayDrvOut var GPIO.2

I var Byte   '<256

 

RelayDrvOut=0

 

If TMR30min=0 Then Timer30min  '4 SW selections 30分、1,2,3時間と4つの選択肢

If TMR1hr=0 Then Timer1hr

If TMR2hr=0 Then Timer2hr

If TMR3hr=0 Then Timer3hr

 

Timer30min:

High RelayDrvOut  'Relay -> ON

I=0

For I=1 To 30  '30-min timer

'For I=1 To 2   'Temp 6.11

Pause 60000 '60 sec

Next I

Low RelayDrvOut  'Relay -> OFF

Goto Finishing

 

Timer1hr:

High RelayDrvOut  'Relay -> ON

I=0

For I=1 To 60  '1-hr timer

Pause 60000 '60 sec

Next I

Low RelayDrvOut  'Relay -> OFF

Goto Finishing

 

Timer2hr:

High RelayDrvOut  'Relay -> ON

I=0

For I=1 To 120  '2-hr timer

Pause 60000 '60 sec

Next I

Low RelayDrvOut  'Relay -> OFF

Goto Finishing

 

Timer3hr:

High RelayDrvOut  'Relay -> ON

I=0

For I=1 To 180  '3-hr timer

Pause 60000 '60 sec

Next I

Low RelayDrvOut  'Relay -> OFF

Goto Finishing

 

Finishing:

End

 

'****** End of program*******

 'Note:

   'melabs U2 Programmer's configurations for 12F629:

   'Oscillator - INTOSC; WDTE - Enable; PWRTE - Enable

   'MCLR - Reset; BODEN - Diable; CD - Disable; CDP - Disable.

 

Menu Pageへ戻る

Topへ戻る