(修整版)結構苦労する送信部分+受信部分 4チャンネル - インドアプレーン
Posted by kyosuke at 04/16 2008
>>前の記事: (バグあり)結構苦労する送信部分+受信部分 4チャンネル
(バグあり)結構苦労する送信部分+受信部分 4チャンネル
http://toolible.net/monozukuri/articles/55
の修整版です。
やはり、それゆえに、
と言いますか、
前回のプログラムですが、
DSO-2090 USBオシロスコープ!で調べた結果、
38kHzでは発信されていませんでした。
38kHzで17回信号を出そうとしたプログラム
for(cnt=0;cnt<18;cnt++){
GPIO0 = 1;
DelayUs(13);
GPIO0 = 0;
DelayUs(13);
}
38kHzは、26us周期くらいだから、13usオン、13usオフにして17回繰り返せ
というプログラムですが、
実際には、そうなりません。
このプログラムでは、
オンが少し長く、オフが2倍くらい長くなります。
まぁ、いろいろありますが、
内部クロックが4MHz程度しかないので、
それによって無駄な時間が多く発生して、
あーだこーだ。
とにかく、4MHzの内部クロックを使用する場合で、
38kHzの発信に一番近いコードは下記になりました。
cnt=0;
while(cnt<18){
GPIO0 = 1;
cnt++;
DelayUs(10);
GPIO0 = 0;
}
プログラム修整後の発信の様子
修整後の送信プログラム
#include <pic.h>
#include "delay.h"
__CONFIG(0xFF94);
main(void){
short cnt=0;
TRISIO = 0xFE;
CMCON = 0x07;
GPIO0=0; /* IR OFF */
while(1){
cnt=0;
if(GPIO2 == 1){
while(cnt<18){
GPIO0 = 1;
cnt++;
DelayUs(10);
GPIO0 = 0;
}
}else if(GPIO3 == 1){
while(cnt<37){
GPIO0 = 1;
cnt++;
DelayUs(10);
GPIO0 = 0;
}
}else if(GPIO4 == 1){
while(cnt<56){
GPIO0 = 1;
cnt++;
DelayUs(10);
GPIO0 = 0;
}
}else if(GPIO5 == 1){
while(cnt<76){
GPIO0 = 1;
cnt++;
DelayUs(10);
GPIO0 = 0;
}
}else{
GPIO0=0;
}
DelayMs(250);
}
}
修整後の受信プログラム
#include <pic.h>
#include "delay.h"
__CONFIG(0xFF94);
main(void){
short cnt=0;
TRISIO = 0x08;
CMCON = 0x07;
GPIO0=0; /* LED1 ON */
GPIO1=0; /* LED2 ON */
GPIO2=0; /* LED3 ON */
GPIO4=0; /* LED4 ON */
while(1){
if(GPIO3 == 0){
DelayUs(100);
cnt = cnt+1;
}else{
if(cnt < 4){
}else if(cnt >= 4 && cnt <= 5){
GPIO0=1;
DelayMs(100);
GPIO0=0;
}else if(cnt >= 9 && cnt <= 11){
GPIO1=1;
DelayMs(100);
GPIO1=0;
}else if(cnt >= 15 && cnt <= 17){
GPIO2=1;
DelayMs(100);
GPIO2=0;
}else if(cnt >= 20 && cnt <= 23){
GPIO4=1;
DelayMs(100);
GPIO4=0;
}
cnt = 0;
}
}
}
>>前の記事: (バグあり)結構苦労する送信部分+受信部分 4チャンネル
コメント (⇒ログイン)
(修整版)結構苦労する送信部分+受信部分 4チャンネルへのコメント
今のところコメントはありませんー
だれか書いてー
■インドアプレーンのモノ作り記事
(修整版)結構苦労する送信部分+受信部分 4チャンネル
現在のページです
Posted by kyosuke at 04/16 2008
赤外線通信の送信部のプログラム1<br />
http://toolible.net/monozukuri/articles/49<br />
<br />
...
続きを読む>>(バグあり)結構苦労する送信部分+受信部分 4チャンネル
Posted by kyosuke at 04/03 2008
前回は、テレビのリモコンを使って<br />
赤外線の受信テストを行ってみました。<br />
http://toolible.net/monozukuri/article...
続きを読む>>赤外線通信の送信部のプログラム1
Posted by kyosuke at 03/27 2008
とりあえずテレビのリモコンで、
赤外線の受信を試してみるー。
(受信側だけ部品を組んでみる)
部品
以前アキバで買っといた赤外線受光素子
PL-IRM0101(おそらくこれ
200...
続きを読む>>インドアプレーンを作りたくなった
Posted by kyosuke at 03/25 2008
