目次

受光&発光(1個のLED)

概要

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

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

  1. 明るさを検出し、
  2. 周りが暗くなると点灯、
  3. 明るくなると消灯する。

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

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

<一般的なLED>

<大き目のLED>

<一般的な赤色LED>

<赤外線発光LED>

動作原理

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

■LEDの点灯/消灯方法

■処理の流れ

  1. スイッチが押されると、明るさを判断するための基準電圧(LEDの出力電圧)V1を取り込む。
  2. 現時点の明るさの電圧(LEDの出力電圧)V2を取り込む。
  3. V1とV2を比較し、V2が小さければLEDを点灯させる。
  4. 1.に戻る。

回路図

ソースコード

ledEx.c
//********************************************************************** 
 
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だけで、受光と発光が出来るので部品点数が少なくて済みますね。^_^

著作権表示 copyright notice

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