#define ip1 35 #define opr 4 #define opg 16 #define opb 17 int point=1; //点いているLEDの番号を記録 int wait=0; //LEDの切り替わりタイミングを調整するための変数 int pins[7]={12,14,27,26,25,33,32}; bool UpOrDown=true;//trueのときpoint増加 int sw;//スイッチのON/OFFを1か0で格納 bool swup=false;//スイッチから手が離されたか判定,trueで離されたことになる void setup() { // put your setup code here, to run once: for(int i=0;i<7;i++) { pinMode(pins[i],OUTPUT); } pinMode(ip1,INPUT); pinMode(opr,OUTPUT); pinMode(opg,OUTPUT); pinMode(opb,OUTPUT); pinoff(); } void loop() { // put your main code here, to run repeatedly: sw=digitalRead(ip1); if(sw==1&&swup==true) { swup=false; if(point==3||point==5)//青色 { digitalWrite(opb,HIGH); } else if(point==4)//赤色 { digitalWrite(opr,HIGH); } else//緑色 { digitalWrite(opg,HIGH); } delay(1000);//1秒待機 digitalWrite(opr,LOW); digitalWrite(opg,LOW); digitalWrite(opb,LOW); } if(sw==0) { swup=true; } if(wait>=10)//10ミリ秒待機を10回繰り返してLED切り替え { pinoff(); wait=0; if(UpOrDown==true) { point++; } else { point--; } if(point==1) { UpOrDown=true; } else if(point==7) { UpOrDown=false; } digitalWrite(pins[point-1],HIGH); } else { wait++; } delay(10);//10ミリ秒待機 } void pinoff() { for(int i=0;i<7;i++) { digitalWrite(pins[i],LOW); } }