ソニーのラジオICF-A101といういぶし銀なラジオを持っているのですが,リモコンがないので操作が面倒でした.そこで電源だけでもリモコンで操作したいなと思ってこれを作りました.久しぶりの記事のくせに小ネタですみません.
使っているものはこんなところです.Arduinoはminiとか小さい方がスッキリしますが手持ちがなかったのでUNOで.
- 出版社/メーカー: スイッチサイエンス
- メディア: Personal Computers
- 購入: 2人 クリック: 15回
- この商品を含むブログを見る
- 赤外線リモコン受信モジュールOSRB38C9AA(2個入): センサ一般 秋月電子通商 電子部品 ネット通販
SONY FM/AM ホームラジオ A101 ゴールド ICF-A101/N
- 出版社/メーカー: ソニー
- 発売日: 2010/02/10
- メディア: エレクトロニクス
- 購入: 5人 クリック: 54回
- この商品を含むブログ (6件) を見る
IR周りのコードを書くのはだるかったのでライブラリを探したらありました.ダウンロードしてArduino/librariesとかのフォルダに突っ込みましょう.
IRremote Library, Send & Receive Infrared Remote Control
サーボは9番ピンに信号線,赤外線受信モジュールは6番ピンへ.それぞれVとGNDにつなぐこともお忘れず.赤外線モジュールは目玉を自分の方に向けた時,右からV,GND,信号線の順につなげます.
コードも適当です.赤外線信号を受信するとメーカーとその信号値を出力するサンプルがあったのでこれを利用します.適当なチャンネルのコマンドの値(私の場合は2fd20dfという値にしました)と比較して見つかった時に,サーボをちょっと回転させることで電源ボタンを押しています.
#include <IRremote.h> #include <Servo.h> const int RECV_PIN = 6; IRrecv irrecv(RECV_PIN); decode_results results; Servo myservo; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver irrecv.blink13(true); myservo.attach(9); myservo.write(10); } void loop() { if (irrecv.decode(&results)) { if (results.decode_type == NEC) { Serial.print("NEC: "); } else if (results.decode_type == SONY) { Serial.print("SONY: "); } else if (results.decode_type == RC5) { Serial.print("RC5: "); } else if (results.decode_type == RC6) { Serial.print("RC6: "); } else if (results.decode_type == UNKNOWN) { Serial.print("UNKNOWN: "); } Serial.println(results.value, HEX); String result_val = String(results.value, HEX); if(String(results.value, HEX).equals(String("2fd20df"))) { // あなたの利用したい信号で Serial.println("FOUND"); myservo.write(30); // 電源ボタンのプッシュアクション delay(200); myservo.write(10); // 元の位置に戻る } irrecv.resume(); // Receive the next value } }
以上小ネタでした.