(Last update:2016/02/17)
【きっかけ】
キャンプを始めて 1年半が経過。市販のアウトドア用品にどんなものがあるかだいぶ判ってきたのだが、真鍮製の液体燃料ランタンやキャンドルランタンはあるのに何故か
LED ランタンがない。ってか、市販の LED ランタンはどれもこれも大陸製で安物感満載なものばかり(爆)
そこで真鍮製の LED ランタンを自分で作ってみることにした ^^;
【設計方針】
「明るい LED ランタン」はたくさん市販されているので、今回は常夜灯運用をメインとし、明るさよりも稼働時間を延ばす方向で設計する。
・三段階調光
・蛍点滅あり
・周囲の明るさによる自動停止・再開機能モード搭載
・周囲の明るさに影響を受けない、通常のランタンモード搭載
・単三電池 or 単三ニッケル水素電池 3本で動作
・過放電防止機能
・屋外使用可能な防水
・点灯モードは EEPROM に記憶・復元
【ハードウエア】
LED は放熱基板付きの電球色 3W パワー LED OSM5XME3C1S
(秋月で入手)を使用。最大定格電流は 700mA で 180 ルーメンとソコソコ明るい。
これを PIC12F1822 による PWM 制御で最大 200mA の定電流ドライブし、照度を抑えて使用する。
LED ドライブトランジスタは Ic max = 500mA の 2SC1213 を使用する。(Ic
max = 150mA の 2SC1815 では ×)
電池は単三ニッケル水素電池 x 3本。電圧が 3V まで低下したら充電が必要になったことを知らせ、2.7V
で低電圧を検出して動作を停止する。
このため放電完了電圧が同じ 2.7V 付近のリチュウムイオン電池でも運用 OK。
乾電池だと明るさは up するが、上記過放電防止機能が働くためエネルギーを完全に搾り出せないのが難点
^^;
なお、フォトトランジスタを接続しなければ設定モードに関係なく周囲の明るさとは無関係な「普通のランタン」となる。
【ソフトウエア】
今回も開発言語はアセンブラ(爆)
もともとは鉄板 LED ランタン GENTOS
EX-777XP のファーム交換用に開発していたものを流用。
クロックは 4MHz, PWM は周期 1KHz。
PWM はハードウエア PWM。キースキャンも含めて割り込みは使用せず、ほぼ
20ms 毎のポーリング処理。
周囲の明るさはフォトトランジスタで検出してアナログ入力で判定。電源電圧は
1/2 に分圧して内部基準電圧 2.048V と比較して測定する。
充電が必要な電圧(3.0V)を切るとサブ LED が 2秒間隔で点滅し始める。
さらに 2.7V 以下になるとメイン LED を消して、サブ LED を 1秒間隔で点滅させて低電圧停止を通知する。この際、サブ
LED 消灯期間( 1秒間)は SLEEP + WDT 復帰で省電力化している。
なお、起動時に RA3 をスキャンし、H なら PWM の出力を Active Low に(=ハイサイド制御)、L
なら Active High に(=ローサイド制御)にする。GENTOS EX-777XP はハイサイド制御なので、将来的にはファームをこれに交換してしまおうという腹積もりなのだ
^^;
【回路設計のポイント】
LED のドライブは稼働時間と放熱を考えて最大 200mA の定電流ドライブとする。実測値は
140mA (@3.6V) 〜 200mA (@4.5V)。
動作電圧は昇圧 5V も考えたが、実測してみると消費電流が増えたので中止し、素直に電源電圧
= 電池電圧とした。(=電圧により輝度が変化)
【キー操作仕様】
・長押し( 2秒押し):電源 ON, OFF(OFF 時 PIC はスリープモードへ移行)
・通常押し:モード切替
【仕様詳細】
・動作モード:
モード番号 | 動作 | 明るさ検出 | サブ LED | 3.6V 時の 実測消費電流 |
稼働時間 (@2100mA/h 電池) |
PWM DUTY |
|
蛍点滅 | なし | 常点灯 | 平均 20mA | 100時間 | 0% 〜75% |
2 | Low | なし | 常点灯 | 20mA | 100時間 | 10% |
3 | Mid | なし | 常点灯 | 60mA | 35時間 | 50% |
4 | High | なし | 常点灯 | 140mA | 15時間 | 100% |
5 | 蛍点滅 | あり | 消灯 | 平均 20mA | 100時間 | 0% 〜 75% |
6 | Low | あり | 消灯 | 20mA | 100時間 | 10% |
7 | Mid | あり | 消灯 | 60mA | 35時間 | 50% |
8 | High | あり | 消灯 | 140mA | 15時間 | 100% |
・動作電圧: 2.7V 〜 5.0V
・過放電防止機能: 2.7V が 5秒継続したら動作停止、以降 3.3V が 5秒継続するまでサブ
LED を点滅。キー操作も受け付けない
・明るさ検出: 5秒で動作、5秒暗くなったら自動復帰する
【ケース】
今回は真鍮製マリンランプ、日本船燈の白灯を使用する。
もともとは AC 電源仕様なので中に電球が入っているが、これを外すと結構広い空間が確保でき、電池や制御基板をうまく嵌め込める。
【実装】
今回のパワー LED は放熱基板に実装されており 100mA 程度なら別途放熱は不要。200mA
ドライブだと熱を持ち始めたのでステンレス製のナットに秋月で売っている放熱接着剤で接着固定した。
さて LED の光はレンズ状のモールドによって上方向に集中してしまう。そこでヤスリでモールド上面を平らに削り散乱させるとともに、100円ショップで使えそうなモノを物色し、マニュキユアボトルの蓋を被せることで光をより散乱するようにした。
ケースの上蓋に反射板を設置。反射板といっても厚紙に金色の色紙を張って上蓋に貼り付けただけ(爆)だが、これでだいぶ周囲に光が散乱するようになった
^^
一方、フォトトランジスタは基板上に実装すると LED からの光を拾ってしまい誤動作するのでコネクタピンで別途接続するようにした。
基板は単三電池ボックスにホットボンドで固定。この電池ボックスは秋月で売られているスイッチ付きのものだが、ランプの内径にピッタリで固定不要なのがイイ。
【1号機使用感】
やはり真鍮製マリンランプ、安物 LED ランタンとは違って高級感あり ^^
メイン照明にするには照度不足ながら、就寝時の常夜灯やテーブル照明用なら十分実用になる。また蛍点滅にして屋外設置したところ、サイトマーカーとして十分実用的であった。
また過放電防止機能のおかげでニッケル水素電池やリチュウムイオン電池を安心して使えるのも便利
^^
なおこのマリンランプは底面に孔が空いているが、本来の使い方どおり吊るして使うぶんには雨が降っても問題無さそうである。
ただサイズがちょっとデカイのが難点かも ^^;
ちなみに単三電池・電球色 LED の鉄板ランタン EX-1977IS
は連続稼働時間 Low 30時間、High 12時間。本作品では 100時間のモードがあるし、電池が
3本で済むぶん使い勝手は悪くないと思うのだがいかがだろうか。
【さらに改造】 (2016/01/30 追記)
さて、上記状態で 2年ほど使用してみたわけだが、マーカーとして使うには(電池の持ちも含めて)十分ながら、やはりもう少し輝度を上げてテーブルランプとしても使いたい、という欲求が
^^;
そのために、
・LED ドライブ電流を 400mA に(ただしジャンパピンで 200mA にも変更可能)
・LED を横方向に実装する
・DC/DC コンバーターを投入してエネルギー効率に配慮
・外部電源入力を可能に
という方向で2号機を製作。
【LED の実装方法】
2号機製作の 1つめのポイントは LED の実装。
ヒートシンクを兼ねるステンレス製の六角ナットに 1W のパワー LED を 6つ接着(もちろん、放熱用のシリコーンボンド使用)し、光を横方向へ出すのと十分な放熱を実現。
特に LED のピンをラジオペンチで折り戻して宙に浮かせているところがミソで、念のためナットの間にはポリイミドテープ(カプトンテープ)を貼って絶縁を保証している。
【防水について】
2つめのポイントは防水。
外部電源入力可能とするには DC コネクタを実装せねばならず防水が問題となる。
もともとこのランプには電源コードを引き込むための穴が空いており、ちょうど外形
5.5mm の DC ジャックがピッタリと嵌め込めることから、DC ジャックにゴム製の保護キャップ(
amazon で買えた ^^; )を装着することである程度の防水を確保することにした。
また探してみると防水タクトスイッチも市販されており
@o@ (しかもこれも amazon で買えた ^^; )、防水問題は全面解決
^^
タクトスイッチ用の穴とフォトトランジスタ用の穴を2つ空け、DC ジャックとともにホットボンドで固定して完成
^^
ちなみにスイッチ類のホットボンド固定は手が入りにくく、位置を合わせながら接着するのは結構大変な作業デシタ
^^;
【2号機使用感】
LED ドライブ電流を倍の 400mA にしたことで十分明るくなり、ソコソコ実用的なテーブルランプになりマシタ
^^
また 1号機ではスイッチを操作するには蓋を開けて手を突っ込まなくてはならなかったわけだが、2号機ではスイッチを側面で操作できて極めて快適に
^^
さらに外部電源入力が可能になり、必要ならジャンパピンでドライブ電流を
200mA に下げられるようになって短期泊、長期泊のどちらもカバー。運用性はさらに高まったと思いマス
^^
まさに理想のランタンができマシタ ^^
【今回の失敗】
USB から給電して LED を外付けコントロールする別形態バージョンを製作したところ、何故か動作中にハングアップしてしまう症状が発生。
いろいろと調べてみると、PIC12F1822 のハードウエアバグであることが判明。(Errata
詳細はこちら)
具体的には、A/D 変換終了ビットが正常に機能せずに無限ループに入ってしまう、というもの。
そこで A/D 変換実行後、十分な時間待ってからマニュアルで A/D 変換を終了させることで解決。(v3.0
でフィックス、クロック 4MHz で 50us 待ち)
しかしこの原因究明に二日もかかってしまった ^^;;;;
ちなみにこの症状が出なかった製作済みのものはチップのリビジョンが新しく、このバグが
Fix されていて影響が出なかった模様。
一方、新しく作った方は昔買ったリビジョンが古いもの(rev A6)だったせいなのではないかと
^^;
【プログラム】
v3.0 変更点
・蛍点滅をより美しくした
・PIC12F1822 チップ自体のバグに対応
v3.1 変更点
・蛍点滅時の最大 DUTY を 75% に変更(電池運用時の稼働時間延長のため)
プログラム (HEX ファイル) 2016/02/17 ver 3.1 |
Brass_LED_Lantern_v3.1.zip |