赤外線受信モジュールをArduinoで動かします。
目次:
今回の目的
ELEGOOのチュートリアル「赤外線受信モジュール」をチュートリアル通りに動かします。
※チュートリアルの文章(PDF日本語版含む)もスケッチもELEGOOのサイトから無料でダウンロードできました。
赤外線受信モジュール
英語版チュートリアルでは「IR(Infrared Radiation 赤外線) Receiver Module」。赤外線リモコンの信号検出に使用されます。
赤外線は人間の視覚上限(760nm~830nm)を超える波長(750nm~1,000nm)の光のことを呼びます。この赤外線のON/OFF時間の断続により、リモコン制御します。
原理的に光の影響を受けやすい制御方法のため、主な用途は屋内での家電の制御に限られ、屋外での使用には向いておりません。さらに短距離で送受信間に遮蔽物無い環境に、リモコンの発光部を受光部に向けて操作する必要があります。
これらの特徴から信号到達に難があるように思えなくもありませんが、逆に考えれば余計な方向・場所にまで信号が広がらないので混信等の問題が起こり難いとも言えます。
端子は3本。各端子はシルク表記から「G」、「R」、「Y」。順にGND、VCC、出力 の機能です。
受光部となっているメインの部品に「1838」の刻印あり。これが型式「VS1838B」であるとすれば仕様は以下。
電源電圧:2.7~5.5V、受信距離:18m、受信角度:A±45°、周波数:38kHz、VOL:0.4V(MAX。VCC=5V)、VOH:4.5V(VCC=5V)
この「VS1838B」は赤外線受光モジュールであり、内部はフォトダイオード、アンプ、フィルタ等で構成されている様子。
他に実装されている部品はチップ抵抗(「102」表記。1kΩ?)×1個と、チップLED×1個。この二つは赤外線受光モジュールの出力とVCC間に直列に接続されており、モジュール出力がLowレベル時にこの抵抗を電流制限抵抗として、このLEDが点灯する仕様。
器材接続
モジュールはArduino直結です。
シリアルモニタをパソコン画面で表示するため、USBをパソコンにつなぎます。
リモコン送信機は38kHzで変調された赤外線のPWM(Pulse Width Modulation。情報源によってはPPM(Pulse Position Modulation)と表現)点滅で受光側にコードを送ります。という内容がチュートリアルには書かれております。
スケッチ
スケッチもライブラリも読解しきれなかったので詳細は省略です。
受光した信号のフォーマット(NEC、SONY、RC5、etc.)を判断しつつ、コードを読み取り、コードに対応する文字列をスケッチ本文内で条件分岐させてシリアル出力する模様。
動作
パソコンのArduino IDEの「ツール」→「シリアルモニタ」でウインドウを立ち上げます。
リモコン送信機を押すと前述の通りモジュールに実装されているLEDが点灯(点滅)します。
シリアルモニタには押したボタン毎に異なる文面が1行ずつ出力されます。
オシロスコープを信号線に接続して、モジュールの出力電圧を確認しました。
モジュール出力は常態がHighになっているため、正負を逆に見る必要がありそうです(リモコン信号フォーマットは常態Low)。
これは。。。NECフォーマットでしょうか。
図6-(2)において、最初のLow 9msが、続くHigh 4.5ms(この最初のLow-High、逆転していなければHigh-Lowが「リーダーコード」)の2倍となっており、そのHigh期間は後続の連続パルスのHigh期間の8倍と見ることができますので。
「リーダーコード」→「カスタムコード」→「データーコード」と続いているはずですが、このオシロスコープで内容を読み取るのは厳しそうです。
(そもそもArduinoが信号を読み取っているので、出来るならそれをシリアル出力で表示させればよいのですが)
所感
スケッチやライブラリの読解までは及びませんでした。内容的には赤外線リモコンの原理確認になりました。
前回の記事:アナログジョイスティックモジュールをArduinoで動かす①チュートリアル通りに動かす-sozoro-Lab.
0 件のコメント:
コメントを投稿