goo blog サービス終了のお知らせ 

Take3's blog

日々の記録などをこつこつ

Arduino UNOで赤外線リモコンの受信2 Vol.2

2012-06-17 09:55:16 | 電子工作

赤外線リモコンの受信ができた物を仮想シリアルポート経由でPCに送り,アプリケーションで仮想的にキーを押したようなイベントを出させるようなプログラムを検討中.

その前に,シリアル通信のプログラムを作っていると...
Arduino UNO R3のUSBシリアル変換のbaud rate(ボーレート)は115200が上限かと思っていたが,

Serial.begin(115200*2);

でも

Serial.begin(115200*4);

でも可能であることに気づいた.

 実際にどこまで可能であるか???


Arduino UNOで赤外線リモコンの受信

2012-06-10 10:03:03 | 電子工作

Arduino UNOと赤外線リモコン受信モジュールを購入してつないだので,
つぎはスケッチの作成.

とりあえず以下のようなコードにしてみた.

#define NUM_LIMIT 80

const int pin = 8;           // 赤外線リモコン受信モジュール
const int led = 13;            // 表示器
unsigned long dura[NUM_LIMIT]; 

void setup () {
  pinMode(pin, INPUT);
  pinMode(led, OUTPUT);
  Serial.begin(115200);
  digitalWrite(led, LOW);
}

void loop () {
  int mode;
  char str[64];
  unsigned long duration;
 
  // 格納場所を0で埋めておく
  for (int i = 0; i < NUM_LIMIT; i++)
    dura[i] = 0;
 
  mode = HIGH; // 使用モジュールに合わせて設定(負論理: HIGH)
 
  int i = 0;
  // pinが最初にLOWになるで待機する.
  while(digitalRead(pin) == mode);
 
  do {
    // 次にHIGHになるまで測る(?s)
    duration = pulseIn(pin, mode, 18500);
    // duration = 0: タイムアウト
    if (duration == 0) {
      // とりあえず何か値を入れる
      dura[i] = 20000;
    } else {
      // 測った時間を格納する
      dura[i] = duration;
    }
    // カウントアップ
    i++;
  } while (duration != 0 && i < NUM_LIMIT);
 
  // どこまで値を埋めたのかを確認する.
  int count = 0;
  for (count = 0; i < NUM_LIMIT && dura[count] != 0; count++);
 
  // データ送信開始の合図の内容作成
  sprintf(str, "START: %03d", count);
  // データ送信開始の合図送信
  Serial.println(str);
  // データ送信
  for (int i = 0; i < count; i++) {
    sprintf(str, "%05d", dura[i]);
    Serial.println(str);
  }
  // データ送信終了の合図送信
  Serial.println("END");
}

参考: 赤外線リモコンコード解析


リモコン受信器の作製

2012-06-08 04:12:52 | 電子工作

リモコン受信器を作製していて気づいたことがある.

蛍光灯の光は点灯時は反応しないが,
点滅時,点灯開始時にはリモコン受信モジュールが反応することがある.

また,
暗い部屋ではリモコン受信モジュールの受光部にリモコンを向けなくても十分に反応する.

リモコンの反応する範囲について...あーこうなっているのか...と感じた


Arduino UNOを購入してしまった

2012-06-08 00:26:01 | 電子工作

Arduino UNOを購入した.

とりあえず赤外線リモコンの受信側を作ってみようと思って準備を始めてしまった.

まずは,秋葉原で...と思っていってみると,

赤外線リモコン受信モジュールなる物が売られておりそれを使えばリモコンのLEDのON/OFFを読み取ることは可能であることまでわかった.

今のところハードは,「Arduinoで学習リモコン」と同じ.

Arduino UNOであることが異なる.ブレッドボードも買った.)