受光＆発光（1個のLED）

概要

発光ダイオード（LED：Light Emitting Diode）は、順方向に電圧を加えた際に発光する半導体素子です。 その逆に、このLEDに光を当てると電圧が発生するという現象があるようです。

この現象を利用して、1本のLEDのみで、

明るさを検出し、

周りが暗くなると点灯、

明るくなると消灯する。

ユニットを作成してみました。

先ずは、この現象を確認してみました。（回路図A） オペアンプは単純に高インピーダンスのバッファーとして動作するだけです。（ボルテージフォロア） LEDによって出力電圧に若干のばらつきがありますが、無負荷状態ではそこそこの電圧が出ています。 これなら利用できそうです。

＜一般的なLED＞ ＜大き目のLED＞ ＜一般的な赤色LED＞ ＜赤外線発光LED＞

動作原理

■LEDの出力電圧を取り込む方法

LEDが接続されているPICのポートを入力モードに設定する。

LEDの出力電圧を高インピーダンスのオペアンプでインピーダンス変換する。

電圧が安定するまで、少しスリープ（約50msec）する。

A/D変換を1msec間隔で50回取り込み、その平均電圧を求める。

■LEDの点灯／消灯方法

LEDが接続されているPICのポートを出力モードに設定する。

点灯（ポートを“1”にする）、消灯（ポートを“0”にする）

■処理の流れ

スイッチが押されると、明るさを判断するための基準電圧（LEDの出力電圧）V1を取り込む。

現時点の明るさの電圧（LEDの出力電圧）V2を取り込む。

V1とV2を比較し、V2が小さければLEDを点灯させる。

1.に戻る。

回路図

ソースコード

//********************************************************************** void main() { unsigned int ad, threshold; unsigned char cnt; OSCCON = 0b01110000; // クロックは8Mhz CMCON0 = 0b00000111; // コンパレータは使用しない。 ANSEL = 0b00000010; // AN1を使用する。 TRISIO = 0b00000011; GPIO = 0b00000000; // OPTION_REG = 0b10000000; // WPU.F1 = 1; // while (1) { if (GPIO.F0 == 0) { TRISIO.F2 = 1; Delay_ms(50); threshold = 0; for (cnt = 0; cnt < 50; cnt++) { Delay_ms(1); threshold += Adc_Read(1); } threshold = threshold / 50; TRISIO.F2 = 0; continue; } // TRISIO.F2 = 1; Delay_ms(50); ad = 0; for (cnt = 0; cnt < 50; cnt++) { Delay_ms(1); ad += Adc_Read(1); } ad = ad / 50; TRISIO.F2 = 0; // if (ad <= threshold) { GPIO.F2 = 1; } else { GPIO.F2 = 0; } Delay_ms(1000); } } //**********************************************************************

動作確認

周りが明るくなると､LEDは消灯状態になります｡ 左の黄色いスイッチが､基準電圧の取り込みスイッチです｡ 中央のICがPIC､その右横のICがオペアンプです｡ 右の透明なLEDが受光&発光を行わせるLEDです｡ その時の、LEDの電圧の波形です。 消灯状態なので、通常は0Vです。 LEDの電圧を取り込む瞬間(約100msec)だけ、ポートを入力モードにするので、LEDが発電した電圧を A/D変換で読み込むことが出来ます。 周りが暗くなると、LEDは点灯状態になります。 その時の、LEDの電圧の波形です。 点灯状態なので、通常は約2Vです。 LEDの電圧を取り込む瞬間(約100msec)だけ、ポートを入力モードにするので、LEDが発電した電圧を A/D変換で読み込むことが出来ます。 如何ですか? 1本のLEDだけで、受光と発光が出来るので部品点数が少なくて済みますね。

このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。詳細 This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.Details