DENKIグループ★電子工作ブログ★

趣味でガラクタ工作をやっています。作ったものについてまとめていきます。

PICマイコン同士で赤外線通信

PICマイコン同士で赤外線通信するシステムを作成しました。

電子工作をやっていると、遠隔操作で動かす作品を作りたくなることは多いと思います。方法はWifi対応のマイコンボードを使ったり、BLEを使ったりと色々あると思いますが、赤外線通信なら8ピンPICマイコンのような非力なマイコンでも問題なく扱え、かつ単純な回路で実装が可能です。

赤外線通信素子について

赤外線通信を実現するためには、送信側には赤外線LED、受信側には赤外線受信ICが必要です。

f:id:DENkiGroup:20210519215257j:plain
今回用いた赤外線LED(左)と、受信IC(右)

受信ICの型番はGP1UXC41QS (シャープ)、LEDは何年も前に買ったもので、型番がわかりません(すみません)。

使い方は、LEDを点灯させれば受信ICから信号が出る...だけというわけにはいかず、何点か注意点があります。

①赤外線LEDに流す電流

まず一つ目は、赤外線LEDにはそこそこの電流を流す必要があるという点です。普通のLEDなら、インジケータとして使うときは数mA程度で十分な明るさになりますが、赤外線LEDの場合はその10倍くらいは流す必要があります。赤外線は目に見えないのでわかりにくいですが、赤外光の強さは通信可能距離に直結しますので、電流はケチらないほうがいいです。50mAくらいは流すイメージです。そのためマイコンポートから直接駆動するのは基本的に非推奨です。

②赤外線LEDのPWM制御

二つ目はLEDの制御方法で、ただベタONで発光させるだけでは受信ICは受信してくれません。受信ICの指定するキャリア周波数でPWM変調する必要があります。

f:id:DENkiGroup:20210519215405j:plain

上図は今回使用したGP1UXC41QSのブロック図です。真ん中にバンドパスフィルタ(B.P.F.)があるのがわかります。これにより受信ICは特定のキャリア周波数で変調された信号だけを受信し、余計な信号を拾わないようにしているんですね。つまり、このバンドパスフィルタの通過域の信号で、LEDを発光させる必要があるわけです。
変調周波数は型番によって異なり、データシートに記載されています。今回使用したGP1UXC41QSでは、38kHzでした。つまり、"0"の信号を送るときはLEDをただオフにすればよいですが、"1"の信号を送るときは、38kHz、duty50%のPWM信号でLEDを駆動します。
なお、B.P.F.の後段の回路によりキャリア周波数成分は除去され、出力には現れないようになっており、受信側ではこの変調について気にする必要はありません。

③赤外線信号のパルス幅

"0"や"1"の信号幅については、短いほうが高速に通信できますが、これについてはあまり欲張ることはできません。

f:id:DENkiGroup:20210519215525j:plain

上記はGP1UXC41QSのデータシート抜粋ですが、右側にあるような"1"が600us、"0"が1000usの信号を送信した場合、受信側では"1"は400~1000us、"0"は600~1200usの範囲になるということで、結構ズレがありますから、パルス幅の設定をどうするかは悩ましいです。まあ個人の工作レベルでは現物でカットアンドトライでいいと思いますが。。。
私は両方の信号を約1000usで設定し、現物でオッケーだったのでよしとしました。

回路図

f:id:DENkiGroup:20210519215554j:plain
製作した赤外線通信システムの回路図
送信側

コイン電池CR2032の電圧そのままでマイコンとLEDを駆動します。赤外線LEDの発光時間は短いものの、発光時には瞬間的に電流を食うので、電源のコンデンサC1は少し大きめにしています。
ボタン5個により5種類の信号を送信できます。キャリア周波数38kHzのPWM出力には、PICマイコンのTimer2を使っています。
ボタンを押さない状態が数分間続くと、マイコンをスリープに入れるようにしました(いずれかのボタン押下で復帰)。マイコンがスリープすれば回路の消費はほぼゼロに近くなります。そのため主電源のトグルスイッチ(PowerSW)は要らなかったかもしれません。

受信側

受信側は受信回路のみを示し、それ以外の回路は省略しています。R6とC4はフィルタであり、受信ICのデータシートに付けなさいと書かれています。R2入力を監視し、High→Lowエッジを検出したら受信処理を行います。

通信方法

通信プロトコルはUARTとしました。ボーレートは先に述べた通り約1000bpsです。PIC12F615、PIC12F1501ともにUARTモジュールは搭載していないので、汎用ポートをソフトウェアで操作し、UART通信を実現しています。

完成

f:id:DENkiGroup:20210520212646j:plain
作成したリモコンと受信回路

最終的に、作成したシステムを用いて、扇風機をリモートコントロール化しました。
リモコンは3Dプリンターで作成したケースに収めてみました。
赤外線通信はBluetooth等に比べ、古くて野暮ったく思われるかもしれませんが、小さいマイコンでも簡単に実装することができ、個人的に好きな技術です。