The jonki

呼ばれて飛び出てじょじょじょじょーんき

ソニーのラジオICF-A101をArduinoを使って赤外線リモコンで操作してみた

ソニーのラジオICF-A101といういぶし銀なラジオを持っているのですが,リモコンがないので操作が面倒でした.そこで電源だけでもリモコンで操作したいなと思ってこれを作りました.久しぶりの記事のくせに小ネタですみません.

使っているものはこんなところです.Arduinoはminiとか小さい方がスッキリしますが手持ちがなかったのでUNOで.


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
  }
}

以上小ネタでした.