読者です 読者をやめる 読者になる 読者になる

arduinoでリモコン #01

 arduinoから赤外線信号を受信、そして送信まで出来ました。



赤外LEDの無理矢理感が酷いですね。

ハードウェアはソースから察して下さい(

ぷろぐらむ

#define SIZE 1536
#define WAIT 250
bool data[SIZE];
bool f;

void setup()
{
  pinMode(12, INPUT);
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  // データ読み取り (何かしら信号が来るまで待つ)
  f = 0;
  while((f = digitalRead(12)) == 1);
  data[0] = f;
  delayMicroseconds(WAIT);
  for(int i=1; i<SIZE; i++) {
    data[i] = digitalRead(12);
    if(data[i] == 0) f = 1;
    delayMicroseconds(WAIT);
  }
  
  // データ送信
  send_data();
  
  // teimnalに信号波形表示
  for(int i=1; i<SIZE; i++)
    Serial.print(data[i] == 0 ? '_' : '-');
  Serial.print("\r\n");
}


void send_data()
{
  for(int i=0; i<SIZE; i++) {
    if(data[i] == 0) { // H
      for(int j=0; j<(WAIT/26); j++) {
        digitalWrite(13, HIGH);
        delayMicroseconds(13);
        digitalWrite(13, LOW);
        delayMicroseconds(13);
      }
    } else { // L
      delayMicroseconds(WAIT);
    }
  } 
}



DVDレコーダの信号だとこの程度の長さです。(うしろの長いHは無信号) ちなみにエアコンの信号は…

めっちゃ長いですw 多分エアコンはリモコンの状態をすべて投げてるからこんなに長いのだと思われます。(エアコンのリモコンって液晶付いてて「暖房20℃」とかかいてありますよね)


とりあえずarduinoを通して赤外線の送受信は出来たので次は送受信で状態を別にするのと、受信信号を一度コンピュータの方に流して記憶させてみようと思います。

TODO

  • 済:arduinoで赤外線の送受信
  • 未:コンピュータにデータ保存
  • 未:Webからリモコン操作