まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

Ir

赤外線受信モジュールのばらつきと対策

 前回の実験の続き。今度はデータシートにあるノイズ対策をやってみた。ちょっと見てみよう。

2015IRtest1


 Vcc-GND間に電源安定用のコンデンサ、R2はダンピング抵抗と思われる。

ダンピング抵抗について:第6回 ダンピング抵抗の値ってどのように決めるの (elspear)

R1はプルアップ抵抗の様に見えるが
2015IRtest2

 赤外線受信モジュールの出力はこのようになっているので、内部のプルアップ抵抗にパラに22KΩをつないだようになる。赤外線受信モジュールのVcc-Vout間を測定すると25KΩ〜30KΩ台だったので、約10KΩくらいになる。V=IRなのでこの部分にノイズ源となる電流が流れるとRが大きいほどノイズとなるVも大きくなる。
デメリット:5V電源で内部30KΩとすると待機時に約0.17mA、10KΩになると0.5mA流れることになる。

コラム: インピーダンスの話(TRITECH)

こんな感じで対策回路を組み込んだ基板を作り、前回と同じ条件で実験した。
2015IRtest0



で、結果は以下のとおり。(クリックで拡大)
2015IR-receive


 対策後は認識率が上がっている。同じ種類のモジュール(秋月モールド、秋月シールド有り、ノーブランドシールド有り)それぞれ2個ずつ試したがモジュール間の差というよりは個別のばらつきが大きいように思える。そう言い切るためにはもっとたくさんの個数で調査しないといけないが手持ちはこれだけなので。
 ノイズ対策回路の効果は確認できたので、今回の用途ではその回路を組み込み、赤外線受信モジュールは選別品を使うことにする。

赤外線受信モジュールのばらつき

 赤外線リモコンの信号を受け取ることができる赤外線モジュール、試してみたら受信がうまくできるものとできないもの、ばらつきがあるように感じたので実験してみた。

 ソフトウェアはArduino用のライブラリを使用した。以下の記事を参照。ATmega32U4のArduino Leonardo系でも動く。
A Multi-Protocol Infrared Remote Library for the Arduino(Ken Shirriff's blog)

受信側環境:

MacOSX 10.10 Yosemite + Arduino IDE 1.0.6
IRrecvDemoのサンプルスケッチを使用。赤外線モジュールの信号はPin11に接続。
USB電源を本体から供給
Arduino Leonardo互換機 Seeeduino Lite

赤外線受信モジュール:
(1)赤外線リモコン受信モジュール PL-IRM2161-XD1(2個入)(秋月電子)
(2)赤外線リモコン受信モジュールOSRB38C9AA(2個入)(秋月電子)
(3)ノーブランド品
(4)GROVE - 赤外線受信器

2015IRmodule

送信側環境:
テレビ用リモコン ELPA RC-TV005ST サンヨー1241モード設定
約2m離れた距離から左手で[1]〜[12]キーを順に押す、これを10セット

室内蛍光灯を点灯した状態と消灯した状態で実験する。

リモコンのボタンを押すと対応したコードが4バイトの16進数で表示される。これを採取し、[1]〜[12]に対応するコードを正常、その他をエラーとして受信が成功する割合をだした。awkのスクリプトは以下。
https://gist.github.com/houmei/54843bfed64079e1aa92

さて、結果。-a,-bは二個同じ種類があったのでそれぞれ実験した。数値は蛍光灯下と蛍光灯を消した状態。

(1-a) 0.825175 0.726115
(1-b) 0.8125 0.77027
(2-a) 0.746575 0.538462
(2-b) 0.886364 0.789474
(3-a) 0.709924 0.754098
(3-b) 0.952381 0.902256
(4) 0.659574 0.588608

 6割を切っているものがある。"FFFFFFFF"のコードはキーが連続で押された状態。[1]〜[12]のキーを押した時には実際は連続しないのだが、これを弾くと:

(1-a) 0.991597 0.904762
(1-b) 0.983193 0.844444
(2-a) 0.908333 0.636364
(2-b) 0.991525 0.913043
(3-a) 0.781513 0.760331
(3-b) 0.991736 0.991736
(4) 0.853211 0.699248

なぜか蛍光灯を消した状態で成功率が下がっている。ひょっとしたらパソコンの液晶画面、つけっぱなしだったのでその影響か?
同じ種類でもばらつきがある。特に(2)と(3)はシールドされているタイプ。(4)は回路込みなのだが成功率が低い。

さてどうしようか。調べてみたら4.3 赤外線リモコン改善(その2)(電気電子工作の部屋)で、電源ラインにフィルタを入れたとある。今回の実験ではデータシートの推奨回路は使わず直結でやったので、次回やってみる。

GROVE - 赤外線受信器GROVE - 赤外線受信器

スイッチサイエンス
売り上げランキング : 138208

Amazonで詳しく見る
by G-Tools

メモ 赤外線受信

 Seeed StudioのGrove - Infrared Receiverの動作確認をした。動かしただけなのでメモ。

Grove - Infrared Receiver (Seeed Wiki)
ライブラリのソースはこちら。
https://github.com/Seeed-Studio/IRSendRev

サンプルのrevTestで動作確認。受光器に向けてリモコンのボタンを押すと数値がでる。

2015Ir


 以上はArduino Unoで確認したが、Arduino Leonardoではライブラリをコンパイルする時にエラーとなった。

 別のソースを試してみる。

赤外線通信の実験パート2(赤外線リモコンを送信機にして何か動かす)(きむ茶工房ガレージハウス)

こちらはスケッチのみなのでArduino Uno/Arduino Leonardoともに動いた。ただしたまに数値の受信が抜けることがあった。



記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ