- 締切済み
PICで赤外線を検知したいのですが
射的を作りたいと思い、銃口に赤外線LED、的に受信モジュール (SPS-440-1 http://akizukidenshi.com/catalog/items2.php?q=%C0%D6%B3%B0%C0%FE&s=score&p=1&r=1&page=#I-00614) を使用して、銃を撃つと赤外線が一瞬でてそれを受信モジュールで検知、 マイコンでその後の処理をしようと思っています。 とりあえずPICで動作確認をしたく、受信モジュールと普通のLEDをPICに付け 赤外線を検知するとLEDが光るようにしました。 しかし、赤外線を発光していないときもLEDが微妙に光っていました。 オシロスコープで受信モジュールの出力を調べると ━━━┳━━━━━┳━━━━━┳━━5V ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ 0V のように一定周期で信号(幅はほぼなし)が出ていました。(赤外線を検知するとL) 受信モジュールを手で覆うと5Vと一定になるので、たぶん蛍光灯などが 原因だと思います。このままではマイコンがこの信号を検知して モータを回すなどの動作が思い通りにいかなくなります。 銃口から出る赤外線 ━━━┓ ┏━━━5V ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━━┛ 0V のみを検知したいのですが、上の瞬間的な信号だけを除去したりして 思い通りに動かす方法はないでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- caceres
- ベストアンサー率43% (61/140)
そういえば20年以上前に同じようなものをつくりました。6802でVTRのリモコン検査器だったかな。 それと蛍光灯の影響は間違いなくあります。 ですからソフト的に除去するのが簡単です。 50,60Hzを除去するようにして 出力側でそれこそTVリモコンのようにコードを 出しそのコードを認識すれば良いだけです。 出力コードが固定なら蛍光灯の影響を除去するのが 一番です。 それと受光部は少し奥になるように開口部を絞ります。 でないと斜めからでも当たりますので。
- kabasan
- ベストアンサー率44% (264/588)
おそらくインバータ蛍光灯の光によるものです。 PICのポートチェンジ割り込みで検出したいなら、ハードウェア的にフィルタを入れて、信号のノイズを除去するしか有りません。 ソフトウェアでやるなら周期的なタイマ割り込みでポートチェックして、数回連続でLowであった場合のみ「受光」と見なして相応の処理に入ります。 余談ですが、受光モジュールは基本的に38KHzのキャリアしか受光と見なしませんので、太陽を当てても反応しませんし、連続点灯の赤外線LEDにも反応しませんよ。
- silverbear
- ベストアンサー率25% (163/639)
ちょっとよっぱなので伝わりにくいかも知れませんが。 サンプリング周波数が本当の信号よりも十分大きければチャタリング防止用のプログラムを組めば解決すると思います。 具体的にはHiを5回以上連続で検出すればHI等 ハード的に除去する方法としてはローパスフィルタを組めばいいです。 >受信モジュールを手で覆うと5Vと一定になるので、たぶん蛍光灯などが原因だと思います。 ちがうんじゃないですか? 発光側を遮光してみてください。もしそれで駄目なら太陽の下ではずーっと反応しっぱなしになるかもしれません。 もし反応しっぱなしになるようでしたらハイパスフィルタも入れないと駄目ですね。 ハイパスフィルタ、ローパスフィルタはそれぞれ 広域通過フィルタ、低域通過フィルタとも呼ばれますが、よく使われる回路ですのでネットで調べれば簡単に出てきます。 オペアンプを使う回路、CRだけで作れる回路等いろいろ有りますのでいろいろ工夫してみてください。
お礼
> 具体的にはHiを5回以上連続で検出すればHI等 マイコンでは割り込みを使用して検知したいのでこれが出来るかどうか・・・ > ちがうんじゃないですか?発光側を遮光してみてください。 今日はまだ発光側は作っていないのでとりあえず携帯電話の赤外線を使っていろいろとテストをしていました。 しかし、発光していないときも上の図のような信号が出ており、手で完全に受光部を遮ると信号が出なくなったので 蛍光灯だと判断しました。ずっと室内で作業していたので太陽光については分かりません。 ハイパスフィルタ、ローパスフィルタについてちょっと調べてみます。