日照時間を測ることによって、水晶不使用・時刻合わせ不必要なのに一年を通じてほぼ同じ時間に自動消灯する、明暗検知機能付きの玄関灯

Last-modified: 2009-12-18 (金) 23:48:03

(2009-7-26)本ページの成果をそっくりそのまま使って新しいものを作りました。このEEスイッチ改造のページの方が本ページより簡単に書いてあるので最初に見るページとしてお薦めです。内容的には9割以上の方にこっちのページを先にご覧頂きたいと思います。本ページのものと外見は違いますが、プログラムは共通だし、回路も殆ど同じです。

初出 2006-9-10
最終更新 2009-8-8
製作時期 2005-11、改造2009-4,7
本ページのタイトルでは一応「玄関灯」と銘打っていますが、本ページの回路とマイコンプログラムは屋外照明全般に適用できるものです。私自身もこのページで別の種類の照明に適用しています。
 

マイコン追加、簡易電源への変更、スイッチ追加と3度の改造を経た現状
brht-sense_1_s.jpg
メインの基板の下に簡易電源の基板を重ねて設置しています。
光センサ(フォトトランジスタTPS615)は蛍光灯自身の出す光の遮蔽の関係で残念ながら内部には装着できず、写真のようにすぐ下の外部に取り付けてあります。これは後付けの工作である以上、仕方のないところです。
スイッチは自動消灯後に手動で点灯させるのが目的ですが、正確な仕様は以下のようになっています。「残点灯時間が1時間未満の場合に残点灯時間を1時間に延長します。消灯しているときは残点灯時間が0とみなされます。つまり周りが暗い時、残り点灯時間が1時間以内もしくは消灯後にスイッチを押すと、そこから1時間(再)点灯します。」

 

 当ホームページの電子工作系コンテンツで最も簡単なものです。2009年4月にPICを追加する改造をおこないました。
 単純に明暗を検知して自動点灯・消灯するだけでは夜間ずっと点灯したままになってしまうので、電気料金を節約したい人はやはり手動でスイッチを入・切する必要があります。そこで日没時に自動的に点灯して、夜のほぼ定まった時間に自動的に消灯する機能を安くてメンテナンスフリーな機構を使って実現してみました。(2009-7-26)スイッチを追加して灯りの手元で手動で点灯できるようにしました。

 

 時計に従って夜のある定まった時間に自動消灯する論理は簡単ですが、それを実現するには狂わない時計もしくは時々の時刻合わせが必要になり、様々な面であまりよろしくありません。そこで日々、日照時間を測定し、それに従って点灯している時間を自動調整する機能を持つことによって、時刻合わせも水晶発振子も必要としない安くてメンテナンスフリーの機構を実現しました。

 

 具体的には、自動点灯にも使用する明暗検知センサーで日照時間を測定します。測定した日照時間が約9時間から約16時間の間の場合にそれに応じて自動点灯後の点灯している時間を調節してほぼ定まった時間に消灯するように動作します。日照時間は天候や地域によって違いがあるので本州での冬至の時期のものよりある程度は短い日照時間まで対応していますし、夏至の時期のものよりある程度は長い日照時間にまで対応しています。日照時間が対応範囲外の場合の点灯している時間はデフォルトの時間(私が設定している時間は4時間)となります。

 

 このような仕様の装置は、明暗検知センサーを製造するメーカーならどこでも思いつくものだと思いますが、メーカーが商品とするには様々な問題があります。仕様を実現するにはマイコンが必要になります。マイコンが動作する為には5V以下の直流電源が必要になるので100V交流からの変換装置が必要になります。するとそのコストと耐久性が問題になってきます。また直流電源を得たならあと僅かな追加コストで電波時計モジュールを導入することもできるので日照時間を頼りにする仕様は商品として実現するには中途半端だと言うこともできるでしょう。それからこのような仕様にはで示したような制限も付いてきます。全購入者にそれを理解してもらうのは困難かもしれません。点灯している時間をユーザがカスタマイズする為のインターフェースを設けようとするとさらにコストアップしてしまいます。従ってこのような(中途半端な)仕様の装置は今のところ自作ならではというところでしょう。しかしどこかのメーカーさんに販売して欲しいものです。全国・全世界の単純な明暗センサーが付けられ、スイッチが常時入れっぱなしの照明で費やされる電力の無駄は相当な量に上るでしょう。省エネが叫ばれる今の時代、玄関灯だけではなく門柱灯等、家の外回りの照明全般に取り付けることが一般化してもいいと思います。(防犯の為に街灯を点けたままにしましょうという動きもありますが...)


 手持ちの8ピンのPIC12F683を使用しました。
 カストマイズ等については下からダウンロードできるソースを見て頂く必要がありますが、うちでは一年を通じて大体22時30分頃に自動消灯する設定にして使用しています。ただしそもそも天候に多少影響を受ける日照時間が頼りなのであまりに小刻みな調整をすることに意味がない上、ソースを簡素化する為に単純な一次関数を使用して計算しているだけなので自動調整の細かさはそれほど多段階ではなく32段階に留めています。一次関数なのでたとえば冬至と夏至で消灯時間が一致するように調整しても春分の日・秋分の日あたりでは消灯時間が少しずれます。また日の出・日の入り時(特に日の出時)の曇天等も消灯時間をずらす要因となります。消灯時間は厳密なものではありません。
 この装置を普段スイッチを入れっぱなしにして運用するのは当然ですが、日の出後にスイッチを入れた場合、点灯している時間はデフォルトの時間となります。この装置の取り付けを昼間におこなった場合は当然日の出後にスイッチを入れたケースにあたるので、初日の夜に点灯している時間はデフォルトの時間となります。

 

[2009年の改造前の説明]
 明暗センサ・ユニットはホームセンターで売っていますが、既存の機器の内部に組み込むには適していません。そこで自作です。
 本来なら掲載の価値もないような簡単すぎる工作ですが、逆にこんな装置でもデバイスが元々持つ大きなヒステリシス特性のお陰で十分実用になることを示す例として取り上げました。
 特に高性能は期待していなかったのですが、フォトトランジスタを使用したおかげで市販の明暗センサ・ユニットより高感度を実現し、省エネにつながりました。

 

 どうせ作るなら赤外線センサ方式がより便利なのでしょうが、当時丁度、本機向きの部品が余っていましたので製作した次第です。

 

[改造前]
brht-sense_2_s.jpg
[改造後]
brht-sense_3_s.jpg

 

回路図(当初の)

brht-sense_circt_s.png
超適当な回路

 

BSch3V形式(zip圧縮)

(2009-4-12追記)すみません。実際には100kΩの抵抗は付けていませんでした。

回路図(2009-4のPIC追加に続き2009-7のスイッチ追加後)

こちらの回路図の方が最初からPIC使用を前提で作ったのでよりシンプルになっていてお薦めです。

 

↓この回路図の使用は控えることをお薦めします。
brht-sense_circt-kai_s.png

 

BSch3V形式(zip圧縮)
brht-sense_circt-kai.zip (念を押しますがこの回路図の使用は控えることをお薦めします。)
蛍光灯消灯・点灯時につられて回路の電源が不安定になるのに対応する為に2200μFのコンデンサを追加しています。これほどの大容量は必要ないと思いますが、手元にあったものを使いました。

 

ICソケットからPIC12F683を取り外し、代わりに5番ピンと6番ピンを直結すると改造前の回路と同等になります。

ソース

プログラム(asm)はほぼそのままこのような構造になっています。

初期化
    分周用変数を初期化
    便宜上ここで前回のセンサー値を明と記録(明暗どちらでもいい)
    便宜上ここで前回の(論理的な)明暗を明と記録
    便宜上ここで今回の(論理的な)明暗を明と記録
    リレーをOFF
    日の出を検知したフラグをNO
割り込みルーチン(タイマにより定期的に呼び出し)の始まり
    スイッチが押されたときの処理
    (スイッチが押されていて且つ前回の明暗が暗で且つ
     点灯カウンタが設定値以下の場合、残り点灯時間を
     設定値まで延長する=消灯時に一定時間だけ再点灯する)
    分周処理(つまりX回に一度しか以降の処理をおこなわない)
    今回の(論理的な)明暗・決定ルーチンを呼び出し
    前回が明の場合、
        今回は明の場合、
            日の出を検知したフラグがYESの場合、
                日照時間カウンタをインクリメント
                割り込みルーチンの最後へ
            日の出を検知したフラグがNOの場合、
                何もしない。
                割り込みルーチンの最後へ
        今回は暗の場合、
            点灯可能時間決定ルーチンの呼び出し
             (日照時間の計測カウントに従って、点灯可能時間を決定する)
            点灯カウンタを初期化
            リレーをON
            割り込みルーチンの最後へ
    前回が暗の場合、
        今回は明の場合、
            日の出を検知したフラグをYES(既にYESでも)
            日照時間カウンタを初期化
            リレーをOFF(既にOFFでも)
            割り込みルーチンの最後へ
        今回は暗の場合、
            リレーが既にONの場合、
                点灯カウンタをデクリメント
                点灯カウンタが0になった場合、
                    リレーをOFF
                割り込みルーチンの最後へ
            リレーが既にOFFの場合、
                何もしない
                割り込みルーチンの最後へ
割り込みルーチンの最後
    今回の(論理的な)明暗を前回の(論理的な)明暗にコピー
割り込みルーチンの終わり
点灯可能時間決定ルーチン
    まず点灯可能時間にデフォルトの時間を設定
    次に日照時間カウンタに従い点灯時間を決定
    return
今回の論理的な明暗・決定ルーチン
(2度続けて同じ値を検知した場合のみ有効とみなすルーチン)
    return

MPASM形式
ダウンロード  ee-switch-reform.asm
   2009-8-1更新
屋外照明汎用のプログラムです。ファイル名はあまり気にしないで下さい。
こっち用のソースと兼用です。
※ieの場合、直接開けないことがあるようです。
※私が作った回路について言えば、両ページの回路間でリレーの使い方が反転しているのですが、それは作る人が選択すればいい部分なので、このページの回路用のソースは掲載しないことにします。

 

(2009-6-9記)
 今までRC発振時の補正値が動作周波数毎に大きく違うということを知りませんでした。というか「同じであって欲しい」との仮定に基づいてプログラムを作っていましたが、実際に違うということを確認しましたので、プログラムを修正しました。
 今度のプログラムではチップの動作周波数自体は動作確認時と実運用時で同じ値を用いることにして、実運用時の分周は自前でおこなうように改めました。
 また分周後の実質上の(仕様上の)動作周波数を31.25kHzに下げましたので細かな明暗の変化に"より"邪魔されにくくなっています。
 もし気温によるRC発振のずれが想定外に大きければ問題となります。皆さんはセラロックを使いましょう。また自前で分周せずに、水晶を使って実際に31.25kHzで動作させるか、調整が大変ですがRC発振で実際に31.25kHz"あたりの周波数"で動作させると大幅に消費電力を低くできます。
(2009-4-28記)
最初にアップしたソース中のケース1の方法aの説明は間違っています。

ヒステリシス特性

(2009-8-8記)初期の状態に関する既述です。
 空の明るさのように非常にゆっくりと変化するものを検知するセンサ・システムでは、ヒステリシス特性がないと過渡期に点滅してしまったりしますが、本機では全くそういうことはありません。

 

 もちろん、それはトランジスタの正の温度特性がもたらす大きなヒステリシス特性のお陰です。

 

センサ感度

 明暗センサ・ユニットを自作することのメリットは感度を好みに設定できることです。

 

 実際には使わなかったのですが、基板には感度調整用に抵抗を増減するためのスペースをあらかじめ設けてあります。
 ただ、本機の場合は最初から、人間が「そろそろ灯りをつけようかな」と思う暗さで点灯する状態でしたので、あらためて調整の必要はありませんでした。

 

 温度変化を考慮していない回路ですが、特に季節によって動作に違いは感じていません。

 

電子回路の電源に(携帯の充電器の)スイッチング式ACアダプタを使用していることについて

(2009-8-8記)初期の状態に関する既述です。
(2007-7-18追加) どこの家にも古い携帯の充電器は1個や2個余っているでしょうから、本ページのような作例を紹介することは拙くはないと思いますし、私自身も実際にとてもお手軽に作ることができました。しかしこれでは耐久性に少し不安が残りますし、何となくですが作品としての完成度が低い感がします。

 

このページに、ACアダプタもトランスも使わずに商用交流100Vから5V直流をお手軽に(そして簡易的に)取り出す手法が載っています。私も次に作るとしたら(予定はありませんが)、この手法を用いたいと思っています。

 

(2009-6-9追記)現在は上記リンクの内容に近い方式の電源を作成して交換済みです。

 

ご要望、ご意見、質問を下のフォームにどうぞ
(でもここより、掲示板書き込みフォームのページに書いて頂いた方が気づき易いと思います。)