LEDを光センサーとして使う。

LEDを光センサーとして使いたくて発電方式で試してみた。発電量が微弱すぎて感度/ノイズ/安定度などの問題がなかなか解決できず悩んでいたところ次のサイトが大変参考になった。参考元のサイトの記事はぜひ一度読んでみることをお勧めしたい。

LEDを光センサーとして使い、照明強度を計測

この方法はLEDの寄生容量に蓄えられた電荷の自己放電時間がLEDへの入射光量(発電量)に比例することを応用したものだ。

この方法ならVDDからGNDまで確実に電圧が変化するため入射光量範囲も広く安定度も高そうだ。他の方法がADC/オペアンプ/コンパレータなどを必要とするのに対しGPIO1本だけで済んでしまう点が素晴らしい。さらにGPIO2本仕様にすれば点灯も行えるようになる...これ考えた人、天才!

雨模様で薄暗い室内の中で試した結果は次の通り。中華製の超安いLED(3mm)でも感度良好だ!素晴らしい!

回路は次の3種類が考えられたので全て試してみた。

【回路図】

(A)(B)(C)の順に(A)が一番感度が良くて、(B)は若干落ちるかなという程度、(C)は室内光程度の光量変化ではほとんど反応せず。GPIOの入力回路の特性による影響なのかな?ちなみに(B)は点灯も可能な回路であるが回路図に保護抵抗を入れるの忘れてた...試す人は保護抵抗を忘れないように。(-_-;)

せっかくなのでライブラリを作って見た。簡単なものなので説明する必要もないとは思うが、接続したLEDのCATHODEピンとANODEピンをテンプレート引数に指定することにより上記回路図の3種類を試すことができる。

【サンプル・スケッチ】

【ライブラリ】