へのへのもへじ工作室
07 | 2017/08 | 09
S M T W T F S
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

赤外線送信に成功(japanenoにチャレンジその7)
またまた鉄道とはちょっと離れて、japanenoの話題です。昨日から気になっていた、赤外線通信にチャレンジです。
通信といっても、今回はオン・オフを伝えるだけですので、まだ通信とは呼べないという方もいらっしゃるかもしれません。

受信側の準備:
まず、受信側の赤外線リモコンモジュールには、電池とオン、オフ確認用LEDを接続しておきます。
リモコンモジュールの使い方は、
http://akizukidenshi.com/catalog/g/gI-03292/
を参考にして、出力にLEDと抵抗を接続しておきます。
OUTピンがLOとなったときにLEDが点灯する回路です。
電池電圧は9Vですので5Vになるよう三端子レギュレータも使っています。
実験の前に、テレビのリモコンを使いLEDが点滅することを確認しておきました。

送信側の製作:
ここから本題ですが、arduiroのボードと赤外線LEDをつなぎ送信機とします。
赤外線LEDも光が見えないだけで、ほぼ赤LEDと同じような接続でかまいません。
今回はD5ピンをプラス側、グランドをマイナス側として抵抗とLEDを接続します。
抵抗値は適当で、270Ωを接続しています。

スケッチの製作:
最後にプログラム(スケッチ)を書きます。
オンにするときのプログラムは、こんなかんじです。
DDRD = DDRD | 0x20;
OCR0A=26;
OCR0B=13;
TCCR0A=0b00100011;
TCCR0B=0b00001010;
これでD5ピンに連続的に約38kHzのパルスを出します。
目には見えませんが、赤外線LEDが高速で点滅しているはずです。
でも何かないと確認できないので、japanenoの赤LEDも同時に点灯させます。
オフにするには、以下のスケッチでパルスを止めます。
TCCR0A=0;
TCCR0B=0;
これらのオン、オフプログラムを適度な周期で繰り返します。
(プログラムは省略です)
これ以外にももっと洗練された方法があるかもしれませんが、まだ途中段階なので、細かい調整はしていません。

実験開始:
作り終えたら、arduinoの環境(IDE)からロードします。
結果は動画の通り、arduiroの赤LEDにあわせて、赤外線で送られた受信側のLEDも点滅します。
(動画がさかさまになっていることをお詫びします。回転の仕方がわかりません)
細かいことを言うと、点灯継続時間に違いがあるのです。しかし、将来的にこの特性は問題にならない予定ですので説明は省略します。

結果として、送信側を高速パルス(38kHz付近)にしないと、伝わらないことが確認できました。また、受信側は高速パルスがなくなった状態でオン、オフのみが出力されるので、受信側arduiroも作りやすいことがわかりました。

終りに:
ここに来るまでの準備について、にしおかさんには、いろいろとお世話になっています。実は、ここで使った素子のほとんど(arduiroのチップと赤外LED以外も)をにしおかさんから頂きました。
何から何まで、お世話になりっぱなしで、申し訳ないです。


AUTHOR: にしおか
DATE: 01/21/2011 00:35:54
へのへのもへじ様 お世話になります いつもながらお早いですね〜 IR通信の仕方ですが、興味深いページがありまして http://www.ladyada.net/learn/sensors/ir.htm こちらのページで通信実験をしていまして 38KHzの波形を面白いやり方で出しています 10マイクロsのON OFFをすると 計算にかかる時間が+6マイクロsでトータル26マイクロsで38KHzになるというものです す これは、マイコンのクロック周波数が大いに関係してしまったり並行処理ができない方法ながら面白いなと思いまして また、その他のスケッチ部分でも見るべきものがあるようです ご参考まで// 38 kHz is about 13 microseconds high and 13 microseconds low digitalWrite(IRledPin, HIGH); // this takes about 3 microseconds to happen delayMicroseconds(10); // hang out for 10 microseconds digitalWrite(IRledPin, LOW); // this also takes about 3 microseconds delayMicroseconds(10); // hang out for 10 microseconds
スポンサーサイト
コメント

コメントの投稿














管理者にだけ表示を許可する



天気予報


-天気予報コム- -FC2-

プロフィール

へのへのもへじ

Author:へのへのもへじ
FC2ブログへようこそ!

最近の記事

最近のコメント

最近のトラックバック

カテゴリー

ブロとも申請フォーム

この人とブロともになる

アルバム

ブログ内検索

RSSフィード

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。