2025/02/08

【番外編】ArduinoでSHARPメンテナンスリモコンをつくる

SHARPのBLレコーダ(AQUOS)などのメンテナンスモードに入るリモコンをArduinoで作ってみた。
赤外線リモコンキット(通称フリスクリモコン?)を使えば簡単にできるらしいが、手元にAruduinoと赤外線LEDがあったので作ってみた。
コマンドが3種類あるらしいので、コメントを切り替えて使えるようコードは書いておいた。
あと、AQUOS TVの電源ON/OFFコマンドもいれてある。
使う場合は、自己責任でお願いします。 
 
 
#include <IRremote.hpp>
#include <IRremote.h>
#define IR_SEND_PIN 5  // 赤外線LED接続ピン

const uint16_t rawData[99] = {  3400, 1700,               //8T,4T,
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
                        425,  425,  425,  425,  425,  425,  425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
                        425,  425,  425,  425,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //0 data1
                        425, 1275,  425, 1275,  425,  425,  425,  425, //0,1, 0,1, 0,0, 0,0, //3 data2
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5 data3
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data5
                        425,  425,  425,  425,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //0 data6
                        588};
const uint16_t rawData_00[99] = {  3400, 1700,               //8T,4T,
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
                        425,  425,  425,  425,  425,  425,  425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
                        425,  425,  425,  425,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //0 data1
                        425, 1275,  425, 1275,  425,  425,  425,  425, //0,1, 0,1, 0,0, 0,0, //3 data2
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5 data3
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data5
                        425,  425,  425,  425,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //0 data6
                        588};

const uint16_t rawData_01[99] = {  3400, 1700,               //8T,4T,
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
                        425,  425,  425,  425,  425,  425,  425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //1 data1
                        425, 1275,  425, 1275,  425,  425,  425,  425, //0,1, 0,1, 0,0, 0,0, //3 data2
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5 data3
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data5
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //1 data6
                        588};

const uint16_t rawData_02[99] = {  3400, 1700,               //8T,4T,
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
                        425,  425,  425,  425,  425,  425,  425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
                        425,  425,  425, 1275,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //2 data1
                        425, 1275,  425, 1275,  425,  425,  425,  425, //0,1, 0,1, 0,0, 0,0, //3 data2
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5 data3
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F data4
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data5
                        425,  425,  425, 1275,  425,  425,  425,  425, //0,0, 0,0, 0,0, 0,0, //2 data6
                        588};

const uint16_t rawData1[99] = {  3400, 1700,               //8T,4T,
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425,  425,  425, 1275,  425,  425,  425, 1275, //0,0, 0,1, 0,0, 0,1, //A
                        425, 1275,  425,  425,  425, 1275,  425,  425, //0,1, 0,0, 0,1, 0,0, //5
                        425, 1275,  425, 1275,  425, 1275,  425, 1275, //0,1, 0,1, 0,1, 0,1, //F parity
                        425,  425,  425,  425,  425,  425,  425, 1275, //0,0, 0,0, 0,0, 0,1, //8 data0
                        425,  425,  425, 1275, 425,  425,   425,  425, //0,0, 0,1, 0,0, 0,0, //2 data1
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data2
                        425,  425,  425, 1275,  425, 1275,  425,  425, //0,0, 0,1, 0,1, 0,0, //6 data3
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data4
                        425, 1275,  425,  425,  425,  425,  425,  425, //0,1, 0,0, 0,0, 0,0, //1 data5
                        425, 1275,  425,  425,  425, 1275,  425, 1275, //0,1, 0,0, 0,1, 0,1, //D data6
                        588};

void setup() {
  Serial.begin(115200);  // シリアル通信の初期化
  // 赤外線送信モジュールの初期化
  IrSender.begin(IR_SEND_PIN, DISABLE_LED_FEEDBACK, 0);
}

void loop() {
    //mentenance Command : AA5A8F30F501
    IrSender.sendRaw(rawData_00, sizeof(rawData_00)/sizeof(rawData_00[0]), 38);
    //mentenance Command : AA5A8F31F502
    //IrSender.sendRaw(rawData_01, sizeof(rawData_01)/sizeof(rawData_01[0]), 38);
    //mentenance Command : AA5A8F32F511
    //IrSender.sendRaw(rawData_02, sizeof(rawData_02)/sizeof(rawData_02[0]), 38);

    //SharpTV On/Off ; aa5a8f1216d1
    //IrSender.sendRaw(rawData1, sizeof(rawData1)/sizeof(rawData1[0]), 38);

    Serial.println("send trun on at " + String(millis()));
  delay(5000);
}


0 件のコメント:

コメントを投稿

【番外編】ArduinoでSHARPメンテナンスリモコンをつくる

SHARPのBLレコーダ(AQUOS)などのメンテナンスモードに入るリモコンをArduinoで作ってみた。 赤外線リモコンキット(通称フリスクリモコン?)を使えば簡単にできるらしいが、手元にAruduinoと赤外線LEDがあったので作ってみた。 コマンドが3種類あるらしいので、コ...