#define HIJYO 11 #define SIYO 12 #define ON_AIR 13 #define PTT 2 #define POWER_DET 3 #define BRIGHT_DET 4 #define COUNT_UP 30 #define AJUST 3 int ptt_on,power_on,bright_on;//入力の状態を読み込む変数 int cnt;//カウンター変数 /*****プロット宣言 ******/ void tentou(); //点滅動作の関数 void setup() { // put your setup code here, to run once: /*************ピン設定************************/ pinMode(HIJYO,OUTPUT); pinMode(SIYO,OUTPUT); pinMode(ON_AIR,OUTPUT); pinMode(PTT, INPUT); pinMode(POWER_DET,INPUT); pinMode(BRIGHT_DET,INPUT); } void loop() { // put your main code here, to run repeatedly: int i,j,k; int count_up_max;//カウンターmax値 int bright_ajt;//明るさ調整値 /******************電源投入から2秒待ち*********************/ count_up_max = COUNT_UP ; bright_ajt = AJUST; cnt = 0; delay(1000); delay(1000);//2秒間の待ち時間 for(i=0;i<3;i++)//3回点滅を繰り返す { tentou(); } while(1) { ++cnt;//ダイナミック点灯による明るさの調整うための変数 ptt_on = digitalRead(PTT); power_on = digitalRead(POWER_DET); bright_on = digitalRead(BRIGHT_DET); if(bright_on == 0) //明るさ調整ありの場合 { if(cnt <= bright_ajt) { digitalWrite(HIJYO,HIGH); //HIJYO点灯 if(ptt_on == 0){ digitalWrite(ON_AIR,HIGH);//ON_AIR点灯 } if(power_on == 0){ digitalWrite(SIYO,HIGH);//SIYO点灯 } if(cnt == count_up_max){ cnt = 0; } } else if(cnt > bright_ajt){ digitalWrite(HIJYO,LOW);//HIJYO,SIYO,ONAIR消灯 digitalWrite(SIYO,LOW); digitalWrite(ON_AIR,LOW); if(cnt == count_up_max){//cnt変数がmaxになったら0に戻す cnt = 0; } } } else//明るさ調整なし場合 { digitalWrite(HIJYO,HIGH);//HIJYO点灯 if(ptt_on == 0){ digitalWrite(ON_AIR,HIGH);//ON_AIR点灯 } else{ digitalWrite(ON_AIR,LOW);//ONAIR消灯 } if(power_on == 0){ digitalWrite(SIYO,HIGH);//SIYO点灯 } else{ digitalWrite(SIYO,LOW);//SIYO消灯 } if(cnt == count_up_max){//cnt変数がmaxになったら0に戻す cnt = 0; } } } } /***************これよりサブルーチン*********************/ /******************************************************** 電源投入時の点灯動作 *********************************************************/ void tentou() { digitalWrite(HIJYO,HIGH); digitalWrite(SIYO,HIGH); digitalWrite(ON_AIR,HIGH); delay(500); digitalWrite(HIJYO,LOW); digitalWrite(SIYO,LOW); digitalWrite(ON_AIR,LOW); delay(500); }