今晩は、トドお父さんです。
昨日の更新で終わりませんでしたので、今回最終回です、すみません。
前回 ARDUINOでIR_REMOTEのサンプルプログラムExampleのIR_Receiveを使って
市販のリモコンのコードを読み取ったり、IR_Relayのプログラムを改造して、リモコンで
読み取ったコードを使ってON/OFFするところまででしたね。
ブレッドボードを使いますから、確認も簡単にできますよね。
今回は、AppleTVの制御とON/OFFができるリモコンを作りますよ。
2種類のリモコンを使えるようにしたいので、中華KEYESの#のコード 0xFF52ADhと
KENNWOODのオーディオ用のリモコンの電源ON/OFFのコード 0x1D00B946h の
両方を検知した時に、電源リレーをON/OFFするようにすればいいわけです。
この2つで、リレーをON/OFFするようにスケッチを修正すればいいわけです。
下記のプログラムで まず頭の部分を説明します。
【プログラム前半部】
#include <IRremote.h> ⇒ IRリモートのライブラリをインクルードします。int RECV_PIN = 11; ⇒ IRセンサの入力は11ピンです。int RELAY_PIN = 4; ⇒ リレー制御は4ピンです。IRrecv irrecv(RECV_PIN); IRrecvという関数の宣言です。decode_results results; Decode_resultsという関数はresultsに読み取った結果を吐き出します。
【プログラム後半部】
void loop() { if (irrecv.decode(&results)) { // If it's been at least 1/4 second since the last // IR received, toggle the relay if (results.value == 0xFF52AD || results.value == 0x1D00B946) { // Keyers # key on = !on; digitalWrite(RELAY_PIN, on ? HIGH : LOW); digitalWrite(13, on ? HIGH : LOW); dump(&results); }先ほどのDecode_resultsを呼び出して、resultsの結果をチェックします。
もし、 0xFF52AD または、0x1D00B946 だったときに、
results.value == 0xFF52AD || results.value == 0x1D00B946
リレーをON/OFFします。 13ピンのLEDも同時にON/OFFして状態をモニタできます。
on = !on;
digitalWrite(RELAY_PIN, on ? HIGH : LOW);
digitalWrite(13, on ? HIGH : LOW);
ライブラリーが全部やってくれるので簡単です。
これはATMEGA328Pに書き込まれているので、別のボードに乗せかえます。 リレーは裏に付けてます
前回作った、DCベンチ電源が活躍します。
これがないと、配線ミスで赤外センサーを2個飛ばしてしましました。
電流制限があるので、安心です。
【ケースに組み込み】
閑話休題:ケースに組み込みます。
今回はカホパーツで買った、樹脂ケースに組み込みます。
樹脂なので、アルミケースに比べるとケース加工は格段に楽です。
&
nbsp;
動作しましたよ。感激の一瞬です。
この電源に、Apple TVと(HDMI変換機(うちはまだ、D3ブラウン管TVですw)、光ポート
音声変換機、SMSL-36(中華アンプ))の電源がON/OFFできるようになりました!
なお、ご存知ないかたもいらっしゃると思いますが、Apple TVの設定で、純正リモコン以外
のリモコンも学習して使えるようになります。
このサイトを見てくださいね。
これで、ようやく孫の手スイッチともおさらばです。
このrduinoの赤外線センサー、他にも応用ができそうですね。
ATMEGA328Pは28ピンで大きいので、8ピンのATTINY85に移植するプロジェクト
もありそうです。
次回は、この辺をあたってみましょうかね?
それでは、次回をお楽しみに!!
おやすみなさい (^u^)