M5StickCで赤外線リモコンデータを送受信してみた。

M5Stick-CにはIR出力が用意されている。なんていうか、あるものは使って見たいと思ったりする人がほとんどだと思う。当然、私もその一人である。(笑)

これはもう使ってみるしかないということで、まずは、リモコンデータを収集するためにリモコンデータの受信モジュールから作ることに。データシートに書かれているまんまの回路である。

リモコン受光ユニットは、GP1UXC41QSの他、秋月電子で購入できるOSRB38C9AAやPL-IRM0101などがそのまま使えると思う。

【回路図】

【M5Stick-Cの拡張ピンソケット用のモジュール】

【M5Stick-Cの拡張ピンソケットに挿した様子】

M5Stick-Cはメモリも十分にあるので、全てのリモコン形式に対応可能な方法で実装してみようかなとも思ったが、それでは芸がないし面白くもないので、以前にATtiny85用に作った省メモリなライブラリをM5Stick-CのPWM仕様に書き換えてみた。

学習型赤外線リモコン・ライブラリ

オシロで受信データの波形と送信データの波形が同じであることとエアコン操作が実際に可能なことを確認したが、なぜか送信していない時、100nsほどの意図しない出力が連続して出ている。最初はノイズ?かとも思ったが正確に38KHz毎に出ているのでそうではなさそうだ。

調べてみた結果わかったことはledcSetup()で指定したデューティのビット数の範囲内[0 ~ (1 << ビット数)-1]でデューティを指定するとばかり思っていたが、実際には[0 ~ (1 << ビット数)]であるということだった。計算上でも38KHzの1/256が約100nsであることから間違いなさそうだ。この件は多くの人達が勘違いしていると思われる。

ちなみに、IR送信出力は少し弱めのようで、せいぜい3m程度ほどしか届かないようだ。もっと強力なIR送信モジュールでも作ったほうが良いかもしれない。

【8ビットでのledcWrite(デューティ)指定方法】

※M5Stick-CのIR出力は負論理なので信号出力なしのときは100%にする必要あり。

【エアコン(Panasonic)のリモコンからの受信データの例】

【サンプル・スケッチ(SHT31用のサンプルに赤外線送受信機能を追加)】

【学習型赤外線リモコンライブラリ】

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください