title0a.gif

Memorandumの小部屋

本ページは金銭授受を伴う行為を含むAuctionや商用Web Pageからの無断リンク・無断参照を禁じます。
無断リンク・無断参照が判明した時点で然るべき処置をとらさせて頂きます。


電池ボックス電子工作(その3)

どこでもデコレーションライトホタル

1.背景

 PICマイコンを使い始めた頃から、ぴかぴか点滅するのではなく、フィラメント式の電球のように点滅時にゆっくり光量が変化するクリスマスツリー用のデコレーションライトを製作しようと思っていました。 しかし、毎年いつの間にか年末が近づき、タイミングを逸していました。 今年2003年にはキットの小部屋の「光るゲンジ (SR-199)」を製作して、クリスマスツリー用のデコレーションライトだけではなくホタルもできるのではと思い、とうとう今年こそはタイミング的に合う時期にデコレーションライトを製作すうることにしました。(蛍は来年用)

 「どこでも デコレーションライトホタル」の製作で意外と困っていたのがLEDです。 デコレーションライトですから、それなりの数が必要になります。 構想を練っている段階で、秋月電子から電池ボックス(フタ付きプラスチック・スイッチ付)が、また、100円ショップのザ・ダイソーからザ・ライトの「デコレーションプチライト」が発売されるようになり、これらを組み合わせることににました。

 今回使用した「デコレーションプチライト」は電池ボックス電子工作(その1)  ちょこ置き集音ワイヤレスマイクでも紹介していますが、このなかの常時点灯タイプの(LED20個)を使用します。 下記写真は緑色LEDのタイプです。 後述の製作例では赤色LEDのタイプを使用しています。 なお、実際にLEDを今回の製作で利用した際に、3個ほどLEDリード線ハンダ付け不良と思われる接触不良がありました。 100円ショップ商品であることを忘れてはいけないようです。

 

【 デコレーションプチライト パッケージ外観 】

 パッケージから取り出した写真を下記に示します。 常時点灯タイプではLEDは全て並列に接続されています。(本当?) 電流制限用抵抗もしくは回路が見あたりません。 パッケージには3V/0.25Aと記載されており、LED1個当たり約10mAになりますがいいのかなーーー。 でも、こんなこと(常識)を考えては100円ショップ商品は開発できないでしょうね。

【 内部状態 】

 この商品は部品取りとしてLED以外にスライドスイッチも流用できます。 下の写真のようにスライドスイッチに取り付け用が穴もあいており、部品取りして流用可能です。 当然、電池ボックスも他に利用できます。

【 スイッチ部拡大 】

 

2.どこでもデコレーションライトホタルの仕様

 2.1 基本仕様

 「どこでもデコレーションライトホタル」の仕様を下記します。  

表1 どこでもコレーションライトホタルの仕様
項 目 内  容
電源 単三乾電池3本(4.5V)

 PICマイコンとしては2V程度でも動作しますが、LEDの点灯を考えれば、3Vは必要です。 単三乾電池2本(3V)で動作させる場合には電流制限抵抗やLEDの数の見直しが必要です。

出力系統数 LED 8系統独立制御

1系統LED2個直列接続

CPU

PIC16F84A

CR発振 (可変抵抗により発振周波数変更)

LED光量調整方法  人間の目の残像現象を利用したTRC方式 (Time Ratio Contorol : 時間比制御) 。 つまり、発振周波数を固定し、Dutyを0〜100%に変えることによりLED点灯時間割合を変え、人間の目の残像現象を利用して光量を制御することにします。
省エネ機能  今回は乾電池駆動のため、少しでも長く乾電池を使用できるように省エネ機能を設けます。 今回はPICマイコンのRBポート出力をソース源として使用しますので、LEDの駆動電流を調整は電流制限抵抗の抵抗値を変えることで簡単に実現できます。 しかし、8系統もあると、抵抗値を変更することも大変です。

 今回、光量調整をDutyで制御しています。 このように光量調整をディジタル的に制御していますので、この省エネモードもディジタル的に行うことにします。 最も簡単な方法はLoopカウンタが1サイクルする周波数より高い周波数でチョッピングすることでLEDの電流を低減する方法です。

 今回、PICマイコンをCR発振としています。 このとき、15番ピン(OSC2)には発振周波数の1/4の周波数のクロックが出力されています。 このクロックを使用して全LEDをチョッピングすることでLEDの消費電流を低減します。 また、ジャンパーピンで省エネ機能を無効にすることもできるようにします。

全LED点灯機能  LEDの点灯チェックをするために、全LED点灯機能を設けます。
パターン選択機能  点滅するパターンを4通りのなかから1つを選択できるようにします。 4通りのパターンのうち1つはPICマイコンのEEPROMで設定、残りの3パターンはプロクラム中にあらかじめ設定されたパターンです。 つまり自由に調整できるのはEEPROMの1パターンです。
出力論理設定 点滅パターンの中に出力論理設定を設けています。 各出力毎に正負論理を設定できます。 
ケース 秋月電子通商の「電池ボックス 単3×4本用(フタ付プラスチック・スイッチ付)[SBH-341-AS]」を使用。

 

 2.2 点滅パターンのしくみ

2.2.1  点滅パターン全体動作

モード 状 態
モード0 消灯(Offサイクル)
モード1 光量アップ(Off→On変化)
モード2 点灯(Onサイクル)
モード3 光量ダウン(On→Off変化)

 

2.2.2 Loopカウンタ関連

2.2.3 サイクル関連

2.2.4 光量変化関連

 光量アップ(Off→On変化) : 新規Loopカウンタレジスタ = 前回Loopカウンタレジスタ + ステップ数

 光量ダウン(On→Off変化) : 新規Loopカウンタレジスタ = 前回Loopカウンタレジスタ − ステップ数

 

3.どこでもデコレーションライトホタルの製作

3.1 回路図

  「どこでもデコレーションライトホタル」の回路図を下記に掲載します。

【 回路図 】

表 ジャンパーピン設定一覧
Jumper 信 号 PIC 動   作
J1 Turn on all LEDs RA0  Short(Low)で全LEDを点灯。 LEDの動作(配線)チェックにご利用下さい。
J1 N Parameter RA1  Open(High)でN Parameter無効。(無効時N=1に相当)。

 Short(Low)でN Parameter有効。 Select0,1で選択された選択パターンデータ中のN Parameterの値が使用されます。 N=0のときはN=1と見なします。

J1 Select0 RA2 点滅パターン選択
  
No. Select0 Select1 選択パターン
パターン0 Open(High) Open(High) EEPROMで設定された点滅パターン。 
(デコレーション用パターン1)
パターン1 Short(Low) Open(High) プログラム中に格納された点滅パターン。
(ホタルパターン)
パターン2 Open(High) Short(Low) プログラム中に格納された点滅パターン。
(デコレーション用パターン2)
パターン3 Short(Low) Short(Low) プログラム中に格納された点滅パターン。
(デコレーション用パターン3)

モード選択は常時チェックしていますので、途中でモード変更することが可能です。

 

J1 Select1 RA3
J1 RA4  Open(High)で通常動作。 Short(Low)で一時停止。 上記例ではOpen(High)。
J2 Power Down  Openで省エネ有効。 Shortで省エネ無効。

 

3.2 プログラム

 PICマイコンのHEXファイルを下記に掲載します。 下記ファイルを秋月電子の「AKI−PICプログラマーキットVer3」で書き込んで下さい。

 

 「どこでもデコレーションライトホタル」用PIC16F84A  プログラム (jsk20_fr5.hex)

 

 このHEXファイルのパラメータを下記します。

表 パラメータ説明
名   称 内容 / 設定値
Mode  プログラム起動時のモード設定値。 モード0,1,2,3に対応して、0,1,2,3のいずれかを設定する。
Offカウンタ  Offカウンタ設定値。 LEDが消灯する期間の設定。 適切な設定範囲は1〜255。
ステップ数  光量変化の割合を決めるステップ数。 設定範囲は 1〜255。 0を設定すると、光量変化の一つ前の状態を維持する。
Onカウンタ  Onカウンタ設定値。 LEDが点灯する期間の設定。 適切な設定範囲は1〜255。
サイクルカウンタ初期値  プログラム起動時のサイクルカウンタ初期値 各LED点灯位相差設定用。 適切な設定範囲は1〜Offカウンタもしくは1〜Onカウンタの値。 この値が有効なのはモード0・モード2の場合。
Loopカウンタ初期値  プログラム起動時のLoopウンタ初期値 各LED点灯位相差設定用。 設定範囲は0〜255。 適切な設定範囲は1〜ステップ数の値。 この値が有効なのはモード1・モード3の場合。
初期N Parameter  パラメータ1〜3の場合に、各パラメータが選択された初回にのみ設定されるN パラメータの値。(各LED毎に設定する。)   設定範囲は 1〜255。 あまり大きくするとLEDが変化しないようい見える。

パラメータ0(EEPROM)では設定エリア無し。

N Parameter  N パラメータの値。(全LEDに対してこの値がが適用される。)   設定範囲は 1〜255。 あまり大きくするとLEDが変化しないようい見える。

 パラメータ0はこの値のみ使用される。 パラメータ1〜3では初回のみ上記の「初期N Parameter」が使用され、2回目以降はこの「N Parameter」が適用される。

出力論理  RB0〜RB'7の出力論理をビット単位で設定する。 本ピットとRB0〜RB7のビットが一対一で対応している。
 0:正論理 1:負論理

 

 パターン0はEEPROMに格納してありますので下表を参考に修正してオリジナルの動作を作成することができます。

表 パターン0設定値
LED 名  称 パターン0
EEPROM
番地 /データ
パターン1 パターン2 パターン3
RB0 Mode 00h / 00h 00h 00h 00h
Offカウンタ 01h / 28h 7Fh 2Fh 10h
ステップ数 02h / 0Fh 0Fh 0Fh 10h
Onカウンタ 03h / E0h 02h FFh 10h
サイクルカウンタ初期値 04h / 28h 3Fh 3Fh 10h
Loopカウンタ初期値 05h / 00h 00h 00h 00h
初期N Parameter - 04h 04h 04h
RB1 Mode 06h / 00h 00h 00h 00h
Offカウンタ 07h / 3Fh CCh 3Fh 10h
ステップ数 08h / 0Fh 12h 0Fh 10h
Onカウンタ 09h / EFh 05h EFh 10h
サイクルカウンタ初期値 0Ah /2Fh 10h 1Fh (*a) 08h
Loopカウンタ初期値 0Bh / 00h 00h 00h 00h
初期N Parameter - 04h 01h 04h
RB2 Mode 0Ch / 01h 01h 01h 01h
Offカウンタ 0Dh /28h EFh 3Fh 10h
ステップ数 0Eh / 0Fh 08h 0Fh 10h
Onカウンタ 0Fh / E0h 03h DFh 10h
サイクルカウンタ初期値 10h / 00h 00h 00h 00h
Loopカウンタ初期値 11h / 00h 7F 0Fh 00h
初期N Parameter - 04h 04h 04h
RB3 Mode 12h / 01h 01h 01h 01h
Offカウンタ 13h / 3Fh DFh 3Fh 10h
ステップ数 14h / 0Fh 0Ch 0Fh 10h
Onカウンタ 15h / EFh 04h CFh 10h
サイクルカウンタ初期値 16h / 00h 00h 00h 00h
Loopカウンタ初期値 17h / 80h 40h 3Fh 80h
初期N Parameter - 04h 04h 04h
RB4 Mode 18h / 02h 02h 02h 02h
Offカウンタ 19h / 28h F0h 3Fh 10h
ステップ数 1Ah / 0Fh 09h 0Fh 10h
Onカウンタ 1Bh / E0h 05h BFh 10h
サイクルカウンタ初期値 1Ch / E0h 03h BFh 10h
Loopカウンタ初期値 1Dh / 00h 00h 00h 00h
初期N Parameter - 04h 04h 04h
RB5 Mode 1Eh / 02h 02h 02h 02h
Offカウンタ 1Fh / 3Fh EFh 3Fh 10h
ステップ数 20h / 0Fh 11h 0Fh 10h
Onカウンタ 21h / EFh 02h AFh 10h
サイクルカウンタ初期値 22h / 60h 02h 20h 08h
Loopカウンタ初期値 23h / 00h 00h 00h 00h
初期N Parameter - 04h 04h 04h
RB6 Mode 24h / 03h 03h 03h 03h
Offカウンタ 25h / 28h EEh 3Fh 10h
ステップ数 26h / 0Fh 07h 18h 10h
Onカウンタ 27h / E0h 03h 9Fh 10h
サイクルカウンタ初期値 28h / 00h 00h 00h 00h
Loopカウンタ初期値 29h / 7Fh 7Fh C0h FFh
初期N Parameter - 04h 04h 04h
RB7 Mode 2Ah / 03h 04h 03h 03h
Offカウンタ 2Bh / 3Fh DDh 2Fh 10h
ステップ数 2Ch / 0Fh 0Eh 19h 10h
Onカウンタ 2Dh / EFh 04h 8Fh 10h
サイクルカウンタ初期値 2Eh / 00h 00h 00h 00h
Loopカウンタ初期値 2Fh / FFh 00h 2Fh 80h
初期N Parameter - 04h 04h 04h
N Parameter(全LEDに適用) 30h / 04h 04h 04h 04h
出力論理(RBの各ビットに対応) 31h / 00h 00h 00h 00h

(*a : 本来は04hのつもりでしたが、修正漏れをしていたようです。 支障がないのでそのままとしています。)

3.3 製作例

 上記回路で製作した例を下記します。 LED部分は「デコレーションプチライト」のLEDを1個ずつばらして、2個を直列に接続し直して配線しています。 今回は電池ボックスとLED間の配線は赤黒の単線をツイストして製作しましたが、0.08mm2リのリボンケーブル(フラットケーブル)を使用すればもっと配線太さを細くしてスリムにできると思います。

 

【 完成外観 】

 

 電池ボックスの中の様子です。 LED用の配線が合計で16本ありますので口出し部が相当込み入っています。

【 電池ボックス内部 】

 

 製作途中で仕様を変更したため、一部の部品を無理矢理追加しました。 決して適切な部品配置ではありませんが参考にして下さい。


【 基板外観 】

 

3.3 製作結果

 全LED点灯時の消費電流を下表に示します。 4V程度までは支障無く使用できます。

電源電圧 [V} 省エネモード
消費電流 [mA]
通常モード
消費電流 [mA]
備   考
5.25 36.2 78.6    
5.0 34.2 69    
4.75 31.9 58.6    
4.5 29.2 47.7    
4.0 22.3 27.1    
3.5 6.68 8.92    
3.0 0.73 0.78  LEDはほとんど点灯していない。 PICマイコンは動作している。 この電圧以下ではLEDが点灯していることを確認できないので、LEDの数や電流制限抵抗の見直しをする必要有り。 また、発振周波数も低下していく。 
1.9 - -  今回の回路でPICマイコンが起動できる最低電圧。

 

 ホタル設定値(パターン1)のLED駆動信号波形を下記に掲載します。 この程度で光量が徐々に変化しているように見えます。

【 ホタル設定値(パターン1)のLED駆動信号波形 】

 

 試作(デバッグ)基板でLEDを順番に並べた状態と、製作例でLEDを16個ばらばらに配置したときの様子を動画にて公開します。 写真をクリックするとWMVファイルにアクセスできますのでWindows Media Playerでご覧願います。 なお、撮影時、LEDが明るすぎたため電源電圧を3Vにしています。

パターン

試作基板(下側がRB0、上側がRB7) 製作例(LED16個)
パターン0

デコレーション用
パターン1

(EEPROM)

無 し
パターン1

ホタル
パターン

(Program)

パターン2

デコレーション用パターン2

(Program)

 

無 し

パターン3

デコレーション用パターン3
(フラッシャ)

(Program)

これが一番良さそうです。

  


【プログラム書き込みサービス】 

 本ページで紹介しましたPICマイコンの書き込みサービスを行っています。 詳細はプログラム書き込みサービスのページを参照願います。


 本ページの製作に用いる部品を有償で提供します。 提供内容の詳細はパーツ有償サービスのページを参照願います。 


 Memorandumの小部屋 へ戻る      ホームページへ戻る


End of This Page.