Treedix OfficialTreedix OfficialTreedix Official

スノーフレーククリスマスライトソースコード

/*
*プロジェクト名:スノーフレーク
*特徴:36個の青色LEDを複数のモードで点滅させます*
*バージョン:V1.2
*説明:メモを追加
*/
#include <TimerOne.h>

byte m = 0; //mode2 特殊変数
byte Pvalue = 0; // 呼吸ライトの明るさ変数
boolean BreatheFlag = true; //呼吸ライトの明るさの変化方向 byte ModeNumber = 0; //モード番号
boolean AutoModeFlag = false; //自動変更モード識別子
//バイト oldModeNumber = 0;
ブール型タッチフラグ = false;
符号なし整数 Time1 = 0;
符号なし整数 Time2 = 0;
符号なし整数timex = 0;

定数バイトリング[5][7]={ {9,10,5}, {8,13,16},

{17,19,12,4,14,7}、{18,2,15}、{11,3,6}
};

void セットアップ() {
シリアル.begin(9600);
(int i=0;i<5;i++){
for(int j=0;リング[i][j]!='\0';j++){

pinMode(リング[i][j],出力); }

}
Timer1.initialize( 100000 ); // 初期化、間隔はマイクロ秒単位を使用します Timer1.attachInterrupt( Timer1Interrupt ); // ここでサービス ルーチンをアタッチします }

// リセットを押すかボードの電源を入れるとセットアップ関数が1回実行されます void Timer1Interrupt(void){
if((analogRead(A6) > 600) && (タッチフラグ==false)){

タッチフラグ = true;
時間1 = ミリ秒();
if(!AutoModeFlag){ //非AUTOモードでモードを1増やす ModeNumber = ModeNumber + 1;
モード番号 == 2 の場合、m = 0;
モード番号 == 13 の場合、モード番号 = 0;
}
//Serial.println(モード番号);
}
そうでない場合、(analogRead(A6) < 600) && (Touchflag==true)){ Touchflag = false;
timex = millis() - 時間1;
if(timex > 2000){

モード番号 = 0; 自動モードフラグ = false; }
}

}

// ループ関数は永遠に繰り返し実行されます void loop() {
if(自動モードフラグ){

timex = millis() - Time2; if(timex > 5000){ ModeNumber++; Time2 = millis();

}
if(ModeNumber == 12){ AutoModeFlag = false; ModeNumber = 0;
}
}
スイッチ(モード番号){

真実は明るくなることを意味する

偽は消え去ることを意味する

ケース0:
ケース1:
ケース2:
ケース3:
ケース4:
ケース5:
ケース6:
ケース7:
ケース8:
ケース9:
ケース10: Mode10(100); break; ケース11: Mode6(60); break; ケース12: Mode0();

モード0(); ブレーク; モード1(20); ブレーク; モード7(100); ブレーク; モード2(100); ブレーク; モード8(100); ブレーク; モード11(80); ブレーク; モード4(100); ブレーク; モード3(100); ブレーク; モード5(10); ブレーク; モード9(100); ブレーク;

//trueはタッチパッドに指があることを意味します
//記録時間1(2秒以上押し続けるとシャットダウンに入る)
//time2 を記録(AUTO モードでの各モードの表示時間を計算するため) //記録時間間隔(Time1 と Time2 と共有)

delay(1000); ModeNumber = 1; AutoModeFlag = true; Time2 = millis(); break;

デフォルト: break; }

}

/********************************ライトモード0関数 関数名:Mode0
機能特徴:すべてのライトを消す
入力パラメータ:なし

出力パラメータ:なし ************************************************/ void Mode0(void)
{
リング実行(0,false);
リング実行(1,偽);
リング実行(2,偽);
リング実行(3,偽);
リング実行(4,偽);
}

/********************************ライトモード1関数
機能名:モード1
機能特徴:外輪呼吸灯(内部遅延10ms) 入力パラメータ:明るさ変化間隔int Mytime
出力パラメータ:
******************************************/
void モード1(int マイタイム)
{
analogWrite(リング[4][1],P値);
analogWrite(リング[4][2],P値);
呼吸フラグがtrueの場合

analogWrite(リング[4][0],255-P値); analogWrite(リング[0][2],255-P値); P値 = P値 + 1;
if(Pvalue == 255) BreatheFlag = false; }

if(BreatheFlag==false){ analogWrite(Ring[4][0],255-Pvalue); analogWrite(Ring[0][2],255-Pvalue); Pvalue = Pvalue - 1;

if(Pvalue == 0) BreatheFlag = true; }
遅延(10);
}

/********************************ライトモード2機能
機能名:モード2
機能特徴:内輪から外輪へ/外輪から内輪へ徐々に点灯、消灯(内部で約5秒の遅延が発生します) 入力パラメータ:
出力パラメータ:
******************************************/
void モード2(int マイタイム)
{
スイッチ(m){

ケース0:
ケース1:
ケース2:
ケース3:
ケース4:
ケース5:
ケース6:
ケース7:
ケース8:
ケース9:
ケース 10: delay(4*Mytime); break; ケース 11: Ring_Run(4,false);break; ケース 12: delay(Mytime); break; ケース 13: Ring_Run(3,false);break; ケース 14: delay(2*Mytime); break; ケース 15: Ring_Run(2,false);break; ケース 16: delay(3*Mytime); break; ケース 17: Ring_Run(1,false);break; ケース 18: delay(4*Mytime); break; ケース 19: Ring_Run(0,false);break; ケース 20: delay(4*Mytime); break; ケース 21: delay(4*Mytime); break; デフォルト: break;

Ring_Run(0,true); break; delay(4*Mytime); break; Ring_Run(1,true); break; delay(3*Mytime); break; Ring_Run(2,true); break; delay(2*Mytime); break; Ring_Run(3,true); break; delay(Mytime); break; Ring_Run(4,true); break; delay(4*Mytime); break;

}
m = m + 1;
m == 22の場合、m = 0; }

/********************************ライトモード3機能
機能名:モード3
機能特徴:全明点滅(内部で200msの遅延あり) 入力パラメータ:点滅半周期int Mytime
出力パラメータ:
******************************************/
void モード3(int マイタイム)
{
リング実行(0,true);
リング実行(1,true);
リング実行(2,true);
リング実行(3,true);
リング実行(4,true);
遅延(Mytime);
リング実行(0,false);
リング実行(1,偽);
リング実行(2,偽);
リング実行(3,偽);
リング実行(4,偽);
遅延(Mytime);
}

/********************************ライトモード4関数 関数名:Mode4
機能特徴:花びらのLEDが回転して点灯します入力パラメータ:変換時間間隔int Mytime出力パラメータ: ********************************************/

void モード4(int マイタイム)
{ Leaf_Run(2,false);Leaf_Run(0,true);delay(Mytime); Leaf_Run(0,false);Leaf_Run(1,true);delay(Mytime); Leaf_Run(1,false);Leaf_Run(2,true);delay(Mytime); }

/********************************ライトモード5関数 関数名:Mode5
機能特徴:スーパースピンライト1
入力パラメータ:変換時間間隔 int Mytime 出力パラメータ: *******************************************/

void モード5(int マイタイム)
{
digitalWrite(リング[0][2],LOW);digitalWrite(リング[0][0],HIGH);delay(Mytime); digitalWrite(リング[0][0],LOW);digitalWrite(リング[0][1],HIGH);delay(Mytime); digitalWrite(リング[0][1],LOW);digitalWrite(リング[0][2],HIGH);delay(Mytime);
デジタル書き込み(リング[0][2],LOW);

digitalWrite(リング[1][1],LOW);digitalWrite(リング[1][0],HIGH);delay(Mytime); digitalWrite(リング[1][0],LOW);digitalWrite(リング[1][2],HIGH);delay(Mytime); digitalWrite(リング[1][2],LOW);digitalWrite(リング[1][1],HIGH);delay(Mytime);
digitalWrite(リング[1][1]、LOW); digitalWrite(リング[2][4]、LOW); digitalWrite(リング[2][5]、LOW); digitalWrite(リング[2][2]、HIGH); digitalWrite(リング[2][3]、HIGH); delay(Mytime); digitalWrite(リング[2][2]、LOW); digitalWrite(リング[2][3]、LOW); digitalWrite(リング[2][0]、HIGH); digitalWrite(リング[2][1]、HIGH); delay(Mytime); digitalWrite(リング[2][0]、LOW); digitalWrite(リング[2][1]、LOW); digitalWrite(リング[2][4]、HIGH); digitalWrite(リング[2][5]、HIGH); delay(Mytime); digitalWrite(リング[2][4]、LOW); digitalWrite(リング[2][5]、LOW);
digitalWrite(リング[3][2],LOW);digitalWrite(リング[3][0],HIGH);delay(Mytime); digitalWrite(リング[3][0],LOW);digitalWrite(リング[3][1],HIGH);delay(Mytime); digitalWrite(リング[3][1],LOW);digitalWrite(リング[3][2],HIGH);delay(Mytime);
デジタル書き込み(リング[3][2],LOW);
digitalWrite(リング[4][2],LOW);digitalWrite(リング[4][0],HIGH);delay(Mytime); digitalWrite(リング[4][0],LOW);digitalWrite(リング[4][1],HIGH);delay(Mytime); digitalWrite(リング[4][1],LOW);digitalWrite(リング[4][2],HIGH);delay(Mytime);
デジタル書き込み(リング[4][2],LOW);
}

/********************************ライトモード6関数 関数名:Mode6
関数の特徴:二重中性子星エンタングルメント 入力パラメータ:変換時間間隔 int Mytime 出力パラメータ:なし ********************************************/

void モード6(int マイタイム)
{
リング実行(0,true);

Ring_Run(4,true); digitalWrite(Ring[2][4],LOW); digitalWrite(Ring[2][3],HIGH); delay(Mytime); digitalWrite(Ring[2][3],LOW); digitalWrite(Ring[3][1],HIGH); delay(Mytime); digitalWrite(Ring[3][1],LOW); digitalWrite(Ring[2][2],HIGH); delay(Mytime); digitalWrite(Ring[2][2],LOW); digitalWrite(Ring[2][1],HIGH); delay(Mytime); digitalWrite(Ring[2][1],LOW); digitalWrite(Ring[3][0],HIGH); delay(Mytime); digitalWrite(Ring[3][0],LOW); digitalWrite(Ring[2][0],HIGH); delay(Mytime); digitalWrite(リング[2][0],LOW);digitalWrite(リング[2][5],HIGH);delay(Mytime); digitalWrite(リング[2][5],LOW);digitalWrite(リング[3][2],HIGH);delay(Mytime); digitalWrite(リング[3][2],LOW);digitalWrite(リング[2][4],HIGH);delay(Mytime);

}

/********************************ライトモード7関数 関数名:Mode7
関数の特徴:二重中性子星エンタングルメント 入力パラメータ:変換時間間隔 int Mytime 出力パラメータ:なし ********************************************/

void モード7(int マイタイム)
{
リング実行(2,偽);

Ring_Run(4,true); digitalWrite(Ring[0][2],HIGH); digitalWrite(Ring[1][0],HIGH); delay(Mytime); digitalWrite(Ring[0][2],LOW); digitalWrite(Ring[1][0],LOW); delay(Mytime); digitalWrite(Ring[0][0],HIGH); digitalWrite(Ring[1][1],HIGH); delay(Mytime); digitalWrite(Ring[0][0],LOW); digitalWrite(Ring[1][1],LOW); delay(Mytime); digitalWrite(Ring[0][1],HIGH); digitalWrite(Ring[1][2],HIGH); delay(Mytime); digitalWrite(Ring[0][1],LOW); digitalWrite(Ring[1][2],LOW); delay(Mytime);

}

/********************************ライトモード8関数 関数名:Mode8
関数の特徴:二重中性子星エンタングルメント 入力パラメータ:変換時間間隔 int Mytime 出力パラメータ:なし ********************************************/

void Mode8(int マイタイム) {
(int i=0;i<5;i++){

for(int j=0;Ring[i][j]!='\0';j++){ digitalWrite(Ring[i][j],HIGH); delay(Mytime);
}

}
(int i=0;i<5;i++){
for(int j=0;リング[i][j]!='\0';j++){

デジタル書き込み(リング[i][j],LOW); }

遅延(Mytime); }

}

/********************************ライトモード9関数 関数名:Mode9
関数の特徴:二重中性子星エンタングルメント 入力パラメータ:変換時間間隔 int Mytime 出力パラメータ:なし ********************************************/

void Mode9(int マイタイム) {
(int i=0;i<5;i++){

for(int j=0;Ring[i][j]!='\0';j++){ digitalWrite(Ring[i][j],HIGH);

}
遅延(Mytime);
}
(int i=0;i<5;i++){
for(int j=0;Ring[i][j]!='\0';j++){ digitalWrite(Ring[i][j],LOW); delay(Mytime);
}
}

}

/********************************ライトモード10関数 関数名:Mode10
関数の特徴:二重中性子星エンタングルメント 入力パラメータ:変換時間間隔 int Mytime 出力パラメータ:なし ********************************************/

void モード10(int マイタイム)
{ Ring_Run(0,true);Ring_Run(4,false);delay(Mytime); Ring_Run(1,true);Ring_Run(0,false);delay(Mytime); Ring_Run(2,true);Ring_Run(1,false);delay(Mytime); Ring_Run(3,true);Ring_Run(2,false);delay(Mytime); Ring_Run(4,true);Ring_Run(3,false);delay(Mytime); }

/********************************ライトモード11関数 関数名:Mode11
関数の特徴:二重中性子星エンタングルメント 入力パラメータ:変換時間間隔 int Mytime 出力パラメータ:なし ********************************************/

void Mode11(int マイタイム) {
(int i=0;i<3;i++){

digitalWrite(リング[1][i],HIGH); digitalWrite(リング[3][i],HIGH); digitalWrite(リング[4][i],HIGH); delay(Mytime); digitalWrite(リング[1][i],LOW); digitalWrite(リング[3][i],LOW); digitalWrite(リング[4][i],LOW);

// 遅延(Mytime); }

遅延(Mytime); }

/****************************LEDリング操作関数 関数名:Ring_Run
機能特徴:指定されたリングのLEDをオンまたはオフにします。入力パラメータ:指定されたリングバイトnオン/オフブールk出力パラメータ:*******************************************/

void Ring_Run(バイトn、ブール値k) {
もしk==trueならば

スイッチ(n){
ケース0:
for(int i = 0;i < 3;i++) digitalWrite(Ring[0][i],HIGH); break; ケース1:
for(int i = 0;i < 3;i++) digitalWrite(Ring[1][i],HIGH); break; ケース2:
for(int i = 0;i < 6;i++) digitalWrite(Ring[2][i],HIGH); break; ケース3:
for(int i = 0;i < 3;i++) digitalWrite(Ring[3][i],HIGH); break; ケース4:
for(int i = 0;i < 3;i++) digitalWrite(Ring[4][i],HIGH); break; デフォルト: break;
}
そうでない場合はスイッチ(n){
ケース0:
for(int i = 0;i < 3;i++) digitalWrite(Ring[0][i],LOW); break; ケース1:
for(int i = 0;i < 3;i++) digitalWrite(Ring[1][i],LOW); break; ケース2:
for(int i = 0;i < 6;i++) digitalWrite(Ring[2][i],LOW); break; ケース3:
for(int i = 0;i < 3;i++) digitalWrite(Ring[3][i],LOW); break; ケース4:

for(int i = 0;i < 3;i++) digitalWrite(Ring[4][i],LOW); break; デフォルト: break;
}

}

/****************************LED花びら操作関数 関数名:Leaf_Run
機能特徴:指定された花びらのLEDをオンまたはオフにする入力パラメータ:花びら番号バイトnオン/オフブールk

出力パラメータ: ********************************************/ void Leaf_Run(byte n,boolean k)
{
もしk==trueならば

スイッチ(n){
ケース0: digitalWrite(Ring[1][0],HIGH); digitalWrite(Ring[2][0],HIGH); digitalWrite(Ring[2][1],HIGH); digitalWrite(Ring[3][0],HIGH); digitalWrite(Ring[4][0],HIGH); break;
ケース1: digitalWrite(Ring[1][2],HIGH); digitalWrite(Ring[2][5],HIGH); digitalWrite(Ring[2][4],HIGH); digitalWrite(Ring[3][2],HIGH); digitalWrite(Ring[4][2],HIGH); break;
ケース2: digitalWrite(Ring[1][1],HIGH); digitalWrite(Ring[2][2],HIGH); digitalWrite(Ring[2][3],HIGH); digitalWrite(Ring[3][1],HIGH); digitalWrite(Ring[4][1],HIGH); break;
デフォルト: break;
}
そうでない場合はスイッチ(n){

ケース0: digitalWrite(Ring[1][0],LOW); digitalWrite(Ring[2][0],LOW); digitalWrite(Ring[2][1],LOW); digitalWrite(Ring[3][0],LOW); digitalWrite(Ring[4][0],LOW); break;
ケース1: digitalWrite(Ring[1][2],LOW); digitalWrite(Ring[2][5],LOW); digitalWrite(Ring[2][4],LOW); digitalWrite(Ring[3][2],LOW); digitalWrite(Ring[4][2],LOW); break;
ケース2: digitalWrite(Ring[1][1],LOW); digitalWrite(Ring[2][2],LOW); digitalWrite(Ring[2][3],LOW); digitalWrite(Ring[3][1],LOW); digitalWrite(Ring[4][1],LOW); break;
デフォルト: break;
}

}

日曜日、月曜日、火曜日、水曜日、木曜日、金曜日、土曜日
1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月
利用可能なアイテムが足りません。残り[max]個です。
ウィッシュリストに追加ウィッシュリストを閲覧ウィッシュリストを削除
ショッピングカート

カートは空です。

ショップに戻る

注文メモを追加 注文メモを編集
配送の見積もり
クーポンを追加

配送の見積もり

クーポンを追加

クーポンコードはチェックアウトページで有効になります