赤外線発光ダイオードを使って光信号を送受信する:空間伝送で学ぶ光通信入門(3)(2/2 ページ)
光通信の基礎から応用までを紹介する本連載。第3回は、赤外線発光ダイオードを使って光信号を送受信する実験を行う。
実験用の回路
図3に、実験で用いる回路を示します。
送信側の信号発生器としてArduinoを用います。D2端子のGPIOから信号を出力し、抵抗のR1で発光ダイオードに流す電流を制限します。送信用のLED1と受信用のLED2の発光ダイオードには、1ページ目で紹介した赤外線LEDを使用します。最後に、LED2で受信した信号をオシロスコープで確認します。
GPIOの出力はHIGHの状態で5V近く、またLOWの状態でほぼ0Vとなります。そこに発光ダイオードとの間にR1の抵抗を挟みます。値は220Ωですから、最大で23mAの電流が流れます。今回使用する発光ダイオードの仕様では最大100mAまでの電流を流せるので、結構余裕がありますね。もし最大まで赤外線の出力を上げたいのであればR1の抵抗値を50Ωに変更してください。
リスト1は、Arduinoで信号を生成するプログラムです。
1: // the setup function runs once when you press reset or power the board
2: void setup() {
3: // initialize digital pin LED_BUILTIN as an output.
4: pinMode(LED_BUILTIN, OUTPUT);
6: pinMode(2,OUTPUT);
7: }
8:
9: // the loop function runs over and over again forever
10: void loop() {
11: digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
12: digitalWrite(2,HIGH);
14: delay(10); // wait for a second
15: digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
16: digitalWrite(2,LOW);
17: delay(10); // wait for a second
18 }
この信号生成プログラムは、ArduinoIDEという統合開発環境から参照できるサンプルプログラムの「Blink」に一部のコードを追加するとともに変更を加えたものです。Blinkは日本語では「Lチカ」であり、マイコン開発で最初に試す、LEDを一定間隔で点滅させるプログラムであることは皆さんご存じの通りです。今回は赤外線LEDの点滅の間隔をもっと速くします。
元のBlinkのプログラムに追加したのが6行目のD2のモード設定です。12行目でGPIOのD2はHIGHにしており、16行目でD2をLOWにしています。他の変更箇所ですが、12行目と17行目でHIGHになる時間とLOWになる時間をそれぞれ10msにしています。元のプログラムでLEDを制御しているコードはそのまま残しています。
なお、赤外線LEDから出る赤外線は肉眼では見えません。実際のところ、今回の信号生成プログラムのように点滅周期が10msの場合、可視光LEDであっても人間の目にはLEDが点灯し続けているようにしか見えません。
図4に、実験を行っている様子を示します。作業用机の上で実験を行っているので汚れがお見苦しいかもしれませんが、そこは大目に見てください。
左側の白いブレッドボードにあるのが送信側で、その上に載った青い基板がArduinoです。Arduino Nanoの結構新しいバージョンなのでUSBコネクターがUSB Type-Cになっています。白いブレッドボードの右端に見えるのが赤外線LEDです。受信側の赤外線LEDにしっかりと光軸を合わせるため、仰角がずれないようにマスキングテープで止めています。1ページ目のLEDの仕様でも示した通り、半減角が15度とかなりタイトです。
右側の黒いブレッドボードが受信側です。搭載されている赤外線LEDは受光素子として使っています。その出力は2本のジャンパー線でオシロスコープにつながっています。
図5に、受信側のLEDの出力を観測しているオシロスコープの画面を示します。
受信した信号は矩形波であり、波形の山と谷の間隔がそれぞれ10msになっていることが確認できますね。
おわりに
いかがだったでしょうか。今回は赤外線LEDを用いましたが、もちろん可視光のLEDでも同様の実験ができると思います。読者の皆さんにもぜひ試してほしいところです。
ただし、使用するLEDについては以下の点に留意していただければと思います。まず、LEDの表面に塗料が塗ってあるもの、あるいは最初から色の着いた樹脂で封入されているものは、発光はしますが受光素子には不向きです。また、白色のLEDも避けた方が良いでしょう。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「空間伝送で学ぶ光通信入門」バックナンバー
- ≫連載「注目デバイスで組み込み開発をアップグレード」バックナンバー
光通信のデジタル変調の基礎「振幅偏移変調(ASK)」を試す
光通信の基礎から応用までを紹介する本連載。第2回は、デジタル変調の基礎に当たる、最も基本的な振幅変調の方式である振幅偏移変調(ASK)を用いた光通信によるアルファベットの符号送信の実験を行う。
光通信入門事始め――古代の人々ののろしと同じように光で信号を送ってみよう
光通信の基礎から応用までを紹介する本連載。第1回は、古代の人々が使っていたのろしと同じように光で信号を送る実験を行う。
USBシリアル変換モジュールが必要なら、代わりにArduinoを使えばいいじゃない
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。今回は、USBシリアル変換モジュールの代わりに、Arduinoに搭載されているシリアル変換チップを単独で使う方法を紹介する。
忘年会に最適!? 使い捨てライターで離れた場所にあるLEDを点灯するガジェット
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。今回は、忘年会シーズンにぴったりの、使い捨てライターで離れた場所にあるLEDを点灯するガジェット「リモートキャンドル」を紹介する。


