IRリモコン操作

最終更新日:2020年4月11日

TVBOXの話題では赤外線リモコンの話題を取り上げていました。SONYの学習リモコンにTVBOXのリモコンも割り当てて快適生活化していたつもりです。
Arduinoの基本項目にも赤外線リモコンが用意されているのですが、こちらは飛ばしていました。一応手元には送信側LEDも受信側フォトダイオードもあるのですが。
Arduinoフォーラムを眺めていて、Arduinoでエアコンのリモコン操作が難しいという事実を知り、興味を持ちました。赤外線リモコンは家電協会の規格書を入手すれば何とでもなるという解釈をしており、ただ、その規格書が入手しづらいという考えを持っていました。Forumを見ている限りリバースエンジニアリングに頼る部分が多いことも判りました。
自分はリバースエンジニアリングは余りしたくないのですが、エアコン制御は知っておいて損はないと思い、記録に残すことにした次第です。

既に多くの先人がエアコンに関するリバースエンジニアリング情報を提供しています。参考になります。
自分はNationalのエアコンしか所有していないため、この点に特化して記録に残してゆきます。

赤外線リモコンの基本情報はwikipediaに任せますが、基本は抑えておきたいです。


送信側のコードを実際に書いてみていろいろ判りました。Arduino-IRremote-masterのライブラリは送信時に38kHzのキャリアが維持できないように思います。digitalWrite()でusecオーダの処理を維持するのは酷です。実際にAD2で見ても本来なら26usecを維持しなくてはいけないのに100usec程度に膨れあがり全く成立していないようです。受信側ではfc=38KHzのLPFを掛けるため問題なのだと思われます。

自分で書くなら38kHzのタイマ割込を用意し、割込発生毎にポートアクセスで指定pinをON,マイクロ秒遅延でOFFにするか?3倍のタイマ割込108kHzの割込にして3で割って余り0の時にON,1の時にOFF、2の時に無視にするという方法でキャリアは正確に作ることが出来そうです。

実際の信号はTと云う単位でON/OFF信号を作成する必要があります。フォーマットはメーカ毎に異なりますが、送信側はソースコード内で固定して然りだと思うので


戯言(nonsense)に戻る


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。