Arduinoと戯れてみる!

Arduino 入門 Lesson 15 【赤外線受信センサモジュール編】

Arduino-lesson15-00Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 15
【赤外線受信センサモジュール編】

「Arduino」を使ったマイコンプログラミングを子供と一緒に学習するブログ。

少しずつ、子供と一緒に楽しみながら気長にアップしてく予定です。

 

本日はLesson 15 赤外線受信センサモジュール編です。
※テレビ、エアコンに内蔵されている受信器のことです。

赤外線LEDがあれば、送信機側もArduinoで作ることができます。

今回は、受信機側のセンサについて学習します。
※KY-022の型番で検索すれば、色々とでてきます。

 

本Lesson解説で使用しているのはArduino互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

スポンサーリンク

はじめに

今回は赤外線受信センサモジュールについて理解したいと考えています。

送信機側については、別のLessonで解説したいと考えています。

 

モジュールとういう名前の通り、受光部と基板がセットになったモジュールです。

Amazonでも購入できますので確認してみてください。

ネットで検索する場合は「KY-022」で検索してみてください。

 

こちらは、受信機と送信機のセット。

購入する場合は学習用として「受信と送信のセット」をおすすめします。

 

学術的に「赤外線」、「赤外線センサ」とは何か?

ここは、Wikipediaにおまかせします。

Wikipedia 赤外線

赤外線(せきがいせん)は、可視光線の赤色より波長が長く(周波数が低い)、電波より波長の短い電磁波のことである。ヒトの目では見ることができない光である。英語では infrared といい、「赤より下にある」「赤より低い」を意味する(infra は「下」を意味する接頭辞)。分光学などの分野ではIRとも略称される。対義語に、「紫より上にある」「紫より高い」を意味する紫外線(英:ultraviolet)がある。

Wikipedia 赤外線センサ

赤外線センサ(せきがいせんセンサ)は、赤外領域の光(赤外線)を受光し電気信号に変換して、必要な情報を取り出して応用する技術、またその技術を利用した機器。人間の視覚を刺激しないで物を見られる、対象物の温度を遠くから非接触で瞬時に測定できるなどの特徴を持つ。

 

Lesson 15目標

赤外線受信器モジュールの「使い方を理解」します。

また、「家にあるリモコンからの送信データを受信してシリアルモニタに表示」させます。

最後に、本Lessonも、「遊ぶというところが一番大事」なところです。

 

今回は「ライブラリ」を使っていく予定です。

ライブラリを使わない場合については、別のLessonとしたいと考えています。
※自作しようとする場合、コードが結構長くなります。。。

 

準備

ではLessonの準備に取り掛かりましょう。

今回も部品は多くないので、すぐに実践に移ることができます。

 

必要なもの

 

今回下記は使用しませんが、F-M Jumper wireがない場合はブレッドボードを使用してください。

 

Jumper wireは今後も頻繁に利用します。

できれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

 

使用部品説明

赤外線センサ受信モジュールについて説明していきます。

赤外線センサ受信モジュールは、テレビなどのリモコンから送信された信号を受信するモジュールです。

実際には、送信機側赤外線LEDの「点灯」、「消灯」のパターンを受信機側で読み取ることで実現しています。

 

今回のLessonでは、上記のフォーマットに従って送信されるパターンを赤外線受信センサモジュールで読み取るということになります。

受信したパターンを、シリアルモニタに出力すれば内容を読み取ることができるわけです。

 

赤外線受信センサモジュール仕様

下の写真が、赤外線受信センサモジュールです。

私が購入したELEGOO UNO キットには、合わせて梱包されています。

Arduino-lesson15-01

 

端子は全部で3つあります。

上から、G:GND、R:5V、Y:DATAとなります。

購入したメーカーにより「G」、「R」、「Y」の記号は異なりますが「GND」、「5V」、「DATA」は同じです。

項目内容
GGNDに接続
R5Vに接続
Y受信データの出力

 

受信部分は型番「1838」で検索するとでてきます。

例えばAmazonで検索する場合は下記などを見てみてください。

 

物によって多少の違いはありますが主な仕様は下記となります。

項目仕様単位
電源電圧2.7~5.5V
受信範囲~18(角度による)
受信角度90(中心から45)
周波数(Peak)38KHz
波長(Peak)940nm

 

詳細なデータシートが下記にありましたので気になる方はご覧になってください。

参考仕様 → 1838 受光部センサ仕様

 

赤外線通信のしくみ

送信側は赤外線LEDの「点灯」、「消灯」を繰り返すことによって命令を送信します。

受信側は、その「点灯」、「消灯」を読み取ることで命令を受信します。

簡単な概念図がこちら。
※発光する周波数は、一般的に38[KHz]が使われています。

Arduino-lesson15-02

 

また、送信するパターンは、一般的に定められた共通フォーマットを利用しています。

家電などで利用されている赤外線リモコンの場合、一般的に下記に示すフォーマットが使われています。

代表的なフォーマット
・NECフォーマット
・SONYフォーマット
・家製協フォーマット

 

フォーマットの詳細に関して興味があるかたは、下記のサイトが参考になります。

赤外線リモコンの通信フォーマット

 

実践 回路作成とコード作成

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、家電製品のリモコンで確認していきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

回路図がこちら。

部品が1つのみでF-M Jumper Wireを使用しているため接続は簡単です。
G:GND、R:VCC、Y:OUT に対応します。

Arduino-lesson15-03

 

こちらがブレッドボード図。
※F-M jumper wireのみで結線できます。

Arduino-lesson15-04

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

部品は赤外線受信センサモジュールのみです。

F-M Jumper Wireのみで接続しています。

M-M Jumper Wireしかないかたはブレッドボードを使用してください。

Arduino-lesson15-05

 

使用するポートは、デジタル入力ピンの「11」。

電源の「5V」、「GND」です。

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

今回はライブラリを利用します。

IRremote.h」を下記のいずれかで使えるようにしてください。

IDEの統合環境から
1.Zip形式のライブラリをインクルード
2.ライブラリの管理
どちらでも可能です。

 

1.Zip形式のライブラリをインクルードする場合
以下から「IRremote.zip」をダウンロード。
ダウンロードサイト github.com
2.ライブラリの管理からインストールする場合。
「IRremote」で検索。
IRremote by shirriffをインストール

 

ライブラリの追加方法の詳細に関しては以下を参照ください。

 

上記のgithub.comの「IRremote.zip」にはデモ用のサンプルコードがあります。

今回は、デモ用のサンプルコードを参考にしています。

 

サンプルコード

サンプルコードを下記に示します。

単純に受信したデータをシリアルモニタに表示すだけのコードです。
※16進表示です。

16進表示は2進表示4桁分を一文字で表した状態です。

0000 ⇒ 0(10進数で0)
1111 ⇒ F(10進数で15)

 

ライブラリを使用していますので、ライブラリ内の定義された関数を使用しています。

わかりずらいかと思いますが、受信データを受け取ってシリアルモニタに表示というコードです。

//Lesson15 赤外線受信センサモジュールサンプルコード
#include <IRremote.h>

int RECV_PIN = 11; //デジタルIOの11番ピンを受信データ入力用に設定

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

void loop() {

if (irrecv.decode(&results)) {
Serial.println(results.value, HEX); //16進表示
irrecv.resume(); // Receive the next value
}
delay(100);
}

ライブラリを使用しているため、classを使用した関数となっています。

classに関しては、別Lessonで説明したいとかんがえます。

本Lessonでは、こんなもの程度に認識していただければと考えます。

 

動作確認

では、さっそく動作を確認していきます。

家にあるPanasonic製のテレビリモコンを使ってみました。

 

結果はこちら。
※IDEの「ツール」⇒「シリアルモニタ」を開いて確認してください。

リモコン測定値
電源
ボタン
Arduino-lesson15-06

ボタン
Arduino-lesson15-07
音量+
ボタン
Arduino-lesson15-08
音量ー
ボタン
Arduino-lesson15-09

リモコンボタンを押すことによって16進表示でデータが読み取れているのがわかるかと思います。

テレビ側はこのデータを処理することによって制御されます。

 

普段、何気なしに使っているリモコンからこんなデータが送られていたんですね。

しかも、送り方は赤外線の点滅という単純な方法です。

 

これを応用すれば、読み取ったデータによってArduino UNOに何かをさせるといったことができそうです。

こちらは、基礎編が終わって応用編で取り組んでみたいと考えています。

 

まとめ

今回は以下の内容について理解してもらいました。

今回も項目3の遊ぶことが一番の目標でした。

1.赤外線受信器モジュールの「使い方を理解」する。
2.「家にあるリモコンからの送信データを受信してシリアルモニタに表示」させる。
3.楽しんで遊ぶ。

 

最後に、本Lessonも、「遊ぶというところが一番大事」なところです。

 

いかがだったでしょうか。

Lesson 15 赤外線受信センサモジュール編はここまで。

ぜひ、みなさんも子供と一緒にやられてみることをお勧めします。

 

今回は、リモコンから送信されているデータを表示しているだけです。

しかし、普段何気なく使っているリモコンの情報を目に見える形にかえることができる。

子供にとっては、目に見えないものが見えるだけでも感動すると思います。

 

次回Lesson 16はLCD モジュール編です。

液晶ディスプレイに文字を表示させて遊びます。

Arduinoを使いこなすためにも、LCDモジュールは重要です。

ぜひ、一緒に遊びましょう。

Arduino 入門 Lesson 16 【LCD モジュール編】
「Arduino」を使ったマイコンプログラミングを子供と一緒に学習するブログ。本日はLesson 16 LCD モジュール編です。「1602 LCD モジュール」の使い方を学習します。LCDモジュールの使い方を学習できれば、他の電子部品で得…

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

Amazon ベストセラーNo.1
ELEGOO UNO キット レベルアップ  チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分)一般プライム会員
5,000円~19,999円0.5%1.0%
2,0000円~39,999円1.0%1.5%
40,000円~89,999円1.5%2.0%
90,000円~2.0%2.5%

さらに、初回チャージで1000ポイントもらえるキャンペーンも実施中!

\Amazonギフト券 1000ポイントキャンペーン/
Amazonチャージ 初回購入で1000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

 

コメント

タイトルとURLをコピーしました