« CPU温度上昇その後(解決) | メイン | PSoCセミナー »



PSoCで赤外線通信(簡易版)

◆いきさつ
PSoCにはIrDAモジュールというものがあります。
これさえ使えば簡単に赤外線通信(IrDA)ができます。
今のところ使い道は思いつきませんが、できたらおもしろそうです。

ところが、IrDAモジュールを使って通信したかったのですが、モジュールの使い方がわからずうまくいきませんでした。

とりあえず悩んでいてもおもしろくないので、IrDAではないですが、赤外線を使い、自前で通信させてみました。とりあえず動いたので、これを修正・拡張していけばそれなりに実用的なものができると思います。
(しかし、そのうちIrDAモジュールを使えるようにしたいものです・・・)



◆回路図
回路はこのように簡単なものです。

PSoCIrTestC.png


・送信側
赤外線LEDをトランジスタを使いON / OFFしているだけです。
Active Highであり、ポートに1を出力すれば赤外線LEDが点灯します。
逆に0を出力すれば赤外線LEDは消灯します。

・受信側
赤外線がフォトトランジスタに入ると、フォトトランジスタに電流がながれ、
PSoCのピンの電圧が下がり、ピンの読みが0になります。
それ以外のときは5Vに接続されているのでPSoCのピンの読みは1となります。



◆ソフトウェア
上記回路を使い、任意のデータ1byte送信するだけの物を作ってみました。

・送信側では一定時間ごとに割り込みを発生させ、そこでデータの送信処理をしています
・受信側では一定時間ごとに割り込みを発生させ、そこでデータの受信処理をしています

上位ビットから処理(送信または受信)します。
チェックサムなどは一切入れていませんし、符号化もしていません。

また、今回通信速度はデバッグ用に落としてみました。
4Hzごとに割り込みをかけてそこでデータを送信しているため、サンプルのビットレートは4bpsです(笑)
割り込み間隔をもっと短くすれば通信速度を上げることができると思います。



◆写真

PSoCIrBuhin.jpg
↑使用したフォトトランジスタ {TPS611] と 赤外線LED [TLN105B]



PSoCIrTest.png
↑正しく送受信できた



◆ビデオ(WMV)
動作中の様子をビデオにしてみました。
上記の写真を見るだけでもわかりますが、ビデオだとイメージが伝わりやすいです(たぶん)



◆ソース
使用したプロジェクトファイルをこちらにおいておきます。
参考にどうぞ。



◆リンク
フォトトランジスタについてはこちらのページがわかりやすいと思います。

PICを始めよう[関連資料]電子デバイスの使い方フォト トランジスタ の使い方




応援お願いします(人気blogランキングへ)

トラックバック

このエントリーのトラックバックURL:
http://www.bird-soft.net/mt/mt-tb.cgi/123

コメント

きょうWhiteRabbitはここでBIRDで処理しなかった。
またはBIRDは送信するはずだった。
そこでBIRDのデータが通信するつもりだった。
またはきょうWhiteRabbitはモジュールとか送信したよ♪
そこでWhiteRabbitは、BIRDが速度っぽい送信するはずだったの。
そこできのうWhiteRabbitが、BIRDとモジュールが一定しなかった?

コメントを投稿