明るさに応じてLEDを光らせる_PICアナログコンパレータの利用

デジタル屏風では、屋外で騒音を検知してLEDを光らせる騒音警告看板を開発しています。フォトダイオードとLEDをPICマイコンで制御する方式です。PICマイコンは、アナログコンパレータが利用できるPIC16F1778(秋月電子で230円/個)を使用しています。

今回は屋外で電池で起動するので、省電力が重要課題です。特に昼間はLEDがついていても気が付かないので、夜間のみLEDを光らせるという工夫が必要になります。明るさを検知するのはフォトトランジスタ(秋月電子で50円/個)です。

今回の動作検証は、以下の2つのポイントです。

①PIC16F1778のピンの出力で、フォトトランジスタが明るさを検知できること

②PIC16F1778のアナログコンパレータの出力を検知して、明るければPICマイコンをスリープ状態にすること、暗ければLEDを点灯させること

①PIC16F1778のピンの出力で、フォトトランジスタが明るさを検知できること

フォトトランジスタが常に起動された状態であると、電流も消費してしまいます。フォトトランジスタをPICマイコンのピンの出力で動作させ、明るい時にはPICマイコンをsleepさせることにより、フォトトランジスタの消費電力も抑えようと意図しました。PICマイコンのPINの出力はPICマイコンへの供給電圧より若干下がるとの認識ですが、フォトトランジスタのコレクターエミッタ間電圧(データシートにより0.7Vから5Vの範囲)が充足できれば、問題なく動作するということでしょう。正常動作を確認しました。

②PIC16F1778のアナログコンパレータの出力を検知して、明るければPICマイコンをスリープ状態にすること、暗ければLEDを点灯させること

PICのアナログコンパレータの重要な役割として、入力する2つの電圧を比較すること、比較結果によって出力を変えることがあります。比較結果の出力でLEDを光らせるのであれば下のような回路で実装可能で、プログラムでの制御は不要です。

しかし今回は、アナログコンパレータの比較結果に応じて、PICをsleepさせるかどうかを判断する必要があるので、比較結果をプログラム中でアクセスする必要があります。PICのMCC(MPLAB Code Configurator)では、アナログコンパレータごとに比較結果判定関数を提供しています。以下はCMP2というアナログコンパレータの出力を判断する関数です。

この関数をmainプログラム中で呼び出し、アナログコンパレータの比較結果を取り込むことができました。

これで明るい時にはPICマイコン自身をsleepさせることにより、省電力の仕組みが実現できそうです。

 

 

 

 

 

Follow me!

次の記事

MOSFETの利用経験