赤外線通信の送信部のプログラム1 - インドアプレーン

Posted by kyosuke at 03/27 2008
>>次の記事: (バグあり)結構苦労する送信部分+受信部分 4チャンネル
>>前の記事: インドアプレーンを作りたくなった



前回は、テレビのリモコンを使って
赤外線の受信テストを行ってみました。
http://toolible.net/monozukuri/articles/47

今回は、送信テストをしてみます。


とりあえず、プログラムをこしらえると。。

仕様
PICマイコンにはPIC12F629を使って
PIC C Liteでプログラムを書いて
ボタンを押し続けると38kHzで赤外線を送信し続ける

そんな感じ。


なぜ38kHzで赤外線を送信するかというと、

手持ちの赤外線受光素子は、
38kHzのときに最も感度がよくなるから。
(距離が離れても反応する)

38kHz±10%くらいが最も感度がよく、
それ以外だと、感度が悪くなり反応しにくくなる。

というようなことが
受光素子のデータシートに書いてあった。



ちなみに、クロックには
PIC12F629の内部クロック4MHzを使用する


38kHz
1/38kHz = 0.0263ms = 26.3us


ボタンを押している間、

13.15us ON
13.15us OFF

を繰り返す。


実物
Ir2





ボタンをつけるのがメンドかったので、
ワイヤ(赤)を、GNDとVcc(5V)で手で入れ替えたりー。



回路図
Ir_sch


ドライブするためにFETをくっつけてみたけど、
ほとんど必要なかった。

モータ系の場合、
PIC単体で駆動させることはできないけど、
LED1つぐらいだと、
どうとでもなりそうです。


1.3V

3.7V/33オーム=100mAくらい

今は5V使っているけど、
乾電池2本(3V)で動くようにするから、

1.7V/10オーム=170mAくらい。


そのうち抵抗を33オームから
10オームくらいにかえると思う。


パルス駆動なので、赤外線LEDには結構な電流を流せるそうな。


元々、GPIO1に入力を持ってきていたんですが、
どうも反応しないんですよね、GPIO1。

なぜだかわからないけど、
GPIO2を入力にして動くようにしました。




プログラム

#include <pic.h>
#include "delay.h"
__CONFIG(0xFF94);

main(void){
	TRISIO = 0xFE;
	GPIO0=0; /* IR OFF */
	while(1){
		if(GPIO2 == 1){
			GPIO0 = 1;
			DelayUs(13);
			GPIO0 = 0;
			DelayUs(13);
		} else{
			GPIO0=0;
		}
	}
}


delay.hは、PIC C Liteについてきた
サンプルプログラムから持ってくる。

delay.hとdelay.cをプロジェクトに追加する。

追加すると
DelayUs(1usの遅延)と、DelayMs(1msの遅延)を使うことができる。

Delayの引数は
unsigned charだから255まで。


遅延ファンクションは、デフォルトで4MHzなので、
それ以外の場合はdelay.hから対応するクロックに変更する。



なお、ボケて、
DelayUs(13)を、DelayMs(13)としてしまい、
うまく送信しなくて悩んでしまった。


また、delayの部分を、
void IR_ON(void){
	GPIO0 = 1;
	DelayUs(13);
	GPIO0 = 0;
	DelayUs(13);
}

のようにサブファンクション化すると、
うまく送信できない。

サブファンクションを使うと、
ジャンプ系が含まれて26us周期(38kHz)から結構離れるのかと思われます。


>>次の記事: (バグあり)結構苦労する送信部分+受信部分 4チャンネル
>>前の記事: インドアプレーンを作りたくなった





インドアプレーンのモノ作り記事

Ir_out_thumb
(修整版)結構苦労する送信部分+受信部分 4チャンネル
(バグあり)結構苦労する送信部分+受信部分 4チャンネル&lt;br /&gt; http://toolible.net/monozukuri/articles/55 &lt;br /&gt;&l...
続きを読む>>(修整版)結構苦労する送信部分+受信部分 4チャンネル
Posted by kyosuke at 04/16 2008

Ir2_thumb
(バグあり)結構苦労する送信部分+受信部分 4チャンネル
赤外線通信の送信部のプログラム1&lt;br /&gt; http://toolible.net/monozukuri/articles/49&lt;br /&gt; &lt;br /&gt; ...
続きを読む>>(バグあり)結構苦労する送信部分+受信部分 4チャンネル
Posted by kyosuke at 04/03 2008

Ir2_thumb
赤外線通信の送信部のプログラム1
現在のページです
Posted by kyosuke at 03/27 2008

Ir_thumb
インドアプレーンを作りたくなった
とりあえずテレビのリモコンで、 赤外線の受信を試してみるー。 (受信側だけ部品を組んでみる) 部品 以前アキバで買っといた赤外線受光素子 PL-IRM0101(おそらくこれ 200...
続きを読む>>インドアプレーンを作りたくなった
Posted by kyosuke at 03/25 2008