TVリモコンの送信プログラム
今回の内容
Japaninoを使って、TVリモコンの命令を赤外線で送信することでTVを動かします。そのための送信回路および送信プログラムを製作していきます。
前回と次回の内容
前回までで、Japaninoの環境構築やTVリモコンのフォーマットの説明、TVリモコンの受信プログラムを作成してきました。
JananinoでTVリモコンを作成する記事については今回で最後なので、次回はありません。
[追記] JapaninoでTVリモコンを作成するための記事をまとめましたので、ぜひご覧ください。
Japaninoでリモコン作成
送信用回路
送信用回路は、抵抗と赤外線LEDを直列に繋ぎ、抵抗をjapaninoのD2に繋ぎ、赤外線LEDをGNDに繋ぐだけです。もちろんjapaninoに電源をつなぐことを忘れずに。
送信用プログラム
作成したTVリモコン信号送信プログラムは以下の通りです。
#define WRITE_PIN 2 int data[] = { //ここに受信した信号を記述 0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0, 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1 }; int dataSize; int onTime = 480; int offTime = 380; int highTime = 17; int lowTime = 8; void setup() { dataSize = sizeof(data) / sizeof(data[0]); pinMode(WRITE_PIN, OUTPUT); Serial.begin(9600); // パソコン(ArduinoIDE)とシリアル通信の準備を行う Serial.print("dataSize : "); Serial.println(dataSize); } void loop() { Serial.print("sending data ..."); sendData(); Serial.println("finished sending data"); delay(3000); //3秒おきに送信 } void sendData(){ for(int k=0; k<5; k++){ //リーダ部 (38kHz変調 : 26us) for(int j=0; j < 3480/26; j++){ digitalWrite(WRITE_PIN,HIGH); delayMicroseconds(highTime); //9[us] digitalWrite(WRITE_PIN,LOW); delayMicroseconds(lowTime); //17[us] } delayMicroseconds(1700); //1700[us] //データ部 (38kHz変調 : 26us) for(int i=0; i < dataSize; i++){ for(int j=0; j < onTime/26; j++){ //38kHz変調 : 26us digitalWrite(WRITE_PIN,HIGH); //点灯 delayMicroseconds(highTime); //9[us] digitalWrite(WRITE_PIN,LOW); //消灯 delayMicroseconds(lowTime); //17[us] } if(data[i] == 0){ //0なら off : 380[us] delayMicroseconds(offTime); Serial.print(" 0"); } else{ //1なら off : 1140[us] delayMicroseconds(offTime*3); Serial.print(" 1"); } } //trailer部 (38kHz変調 : 26us) for(int j=0; j < onTime/26; j++){ digitalWrite(WRITE_PIN,HIGH); delayMicroseconds(highTime); //9[us] digitalWrite(WRITE_PIN,LOW); delayMicroseconds(lowTime); //17[us] } delay(10); //8ms以上のフレームスペース } }
3行目(int data[]={…})の{}内に前回の受信プログラムにより受信したデータをコピーし、Japaninoへ書き込み、実行します。この作業により受信した信号を送信することができます。受信したリモコンデータを配列で保持して、japaninoのポートにスイッチをいくつか繋げて、スイッチごとにリモコンデータを割りふっておけば、Japaninoがリモコンになりますね!!
最後まで読んでいただきありがとうございました。
<< 受信用プログラムへ | 工作topへ |