LoginSignup
0
1

More than 3 years have passed since last update.

ワット自動化ソース

Posted at
qiita.rb
#include <SwitchControlLibrary.h>
int MAXMONTH = 11; //月最大値(1月から11回更新で12月となるため)
int MAXDAY = 27;   //日最大値(1日から27回更新で28日となるため)
// ※このプログラムでは、ひと月を27日とみなす(ひと月の最短日数が28日のため)
int month = MAXMONTH; // 
int day = MAXDAY;     // 

// 初期処理 マイコン接続後1番に動きます
void setup(){
  // LRボタン押下でコントローラーとして認識させる ←初期処理単体だとなぜかうまくいかない
  SwitchControlLibrary().PressButtonL();
  delay(500);
  SwitchControlLibrary().PressButtonR();
  delay(500);
  SwitchControlLibrary().ReleaseButtonL();
  delay(500);
  SwitchControlLibrary().ReleaseButtonR();
  delay(500);
}

// 繰り返し処理 マイコンの接続をやめるまで{}内を繰り返します
void loop() {
  // LRボタン押下でコントローラーとして認識させる ←ここ単体でもなぜかうまくいかない
  SwitchControlLibrary().PressButtonL();
  delay(50);
  SwitchControlLibrary().PressButtonR();
  delay(50);
  SwitchControlLibrary().ReleaseButtonL();
  delay(50);
  SwitchControlLibrary().ReleaseButtonR();
  delay(50);
  // 開始 みんなで挑戦の直前から。
  ButtonA();
  delay(3000);
  // 募集開始
  ButtonHome();
  delay(1000);
  MoveHatDown();
  delay(100);
  MoveHatRight();
  delay(100);
  MoveHatRight();
  delay(100);
  MoveHatRight();
  delay(100);
  MoveHatRight();
  delay(100);
  ButtonA();
  delay(1500);
  // 設定画面
  SwitchControlLibrary().MoveHat(4); // down
  delay(2000);
  SwitchControlLibrary().MoveHat(8); // center
  delay(50);
  MoveHatRight();
  delay(50);
  MoveHatDown();
  delay(50);
  MoveHatDown();
  delay(50);
  MoveHatDown();
  delay(50);
  MoveHatDown();
  delay(50);
  ButtonA();
  delay(500);
  // 時間設定
  MoveHatDown();
  delay(50);
  MoveHatDown();
  delay(50);
  ButtonA();
  delay(500);
  // 時間の変更

  // 年の処理 日を27回変更し、月を11回変更していたら
  if (month == 0 & day == 0) {
    MoveHatUp(); // 年を変更
    delay(200);
    MoveHatRight();  // 月の項目へ移動
    delay(50);
    MoveHatUp();     // 月を変更
    delay(200);
    month = MAXMONTH;// 月をリセット
    MoveHatRight();  // 日の項目へ移動
    delay(50);
    DayReset();      // 日をリセット
    delay(200);
  }else{  
    // 月の処理 日を27回変更したいたら
    if (day == 0) {
      MoveHatRight();  // 月の項目へ移動
      delay(50);
      MoveHatUp();     // 月を変更
      delay(200);
      MoveHatRight();  // 日の項目へ移動
      delay(50);
      DayReset();      // 日をリセット
      delay(200);
      --month;     // 月をカウントダウン
    }else{      
      // 日の処理 日を27回変更していないなら
      MoveHatRight(); // 月の項目へ移動
      delay(50);
      MoveHatRight(); // 日の項目へ移動
      delay(50);
      MoveHatUp(); // 日を変更
      delay(200);
      --day;       // 日をカウントダウン
    }
  }  
  ButtonA();
  delay(50);
  ButtonA();
  delay(50);
  ButtonA();
  delay(50);
  ButtonA();
  delay(100);

  ButtonHome();
  delay(1000);
  ButtonA();
  delay(1000);
  MoveHatDown(); // やめる
  delay(500);
  ButtonA();     // はい
  delay(2000);
  ButtonA();
  delay(4000);
  ButtonA();
  delay(2000);
  ButtonA();
  delay(1000);
  ButtonA();
  delay(1000);
}

//Aボタンを押下して離すまで
void ButtonA(){
  SwitchControlLibrary().PressButtonA();
  delay(50);
  SwitchControlLibrary().ReleaseButtonA();
}

//ホームボタンを押下して離すまで
void ButtonHome(){
  SwitchControlLibrary().PressButtonHome();
  delay(50);
  SwitchControlLibrary().ReleaseButtonHome();
}

//下を入力して離すまで
void MoveHatDown(){
  SwitchControlLibrary().MoveHat(4); // down
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
}

//右を入力して離すまで
void MoveHatRight(){
  SwitchControlLibrary().MoveHat(2); // right
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
}

//上を入力して離すまで
void MoveHatUp(){
  SwitchControlLibrary().MoveHat(0); // up
  delay(50);
  SwitchControlLibrary().MoveHat(8); // center
}

//日をリセット
void DayReset(){
  for (day ; day < MAXDAY ; day++){
    MoveHatDown();
    delay(50);
  }
}
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1