unsigned int BH0,PY2; //เก็บค่าตัวแปร 0 ถึง 65,535
boolean AZ0,AZ1,AZ2,TG2,LO1 ,QS0,AR0=1;
byte JN2,OI0=2,OI1;
void setup(){
pinMode(0,OUTPUT);//รีเลย์
pinMode(1,INPUT_PULLUP); //ปิดเปิดเชื่อมธรรมดา
pinMode(2,INPUT_PULLUP); //หยุดการทำงาน HF
pinMode(4,OUTPUT);// ลำโพง
}
void loop(){
AZ0=digitalRead(1);
AZ1=digitalRead(2);
digitalWrite(4,LO1==1);
digitalWrite(0,AZ2==1);
JN2=map(analogRead(A3),0,1023,0,255);//วัดไฟ
if(AZ0==1){TG2=0;AZ2=1;AR0=1;
}else{
if(JN2<80){if(PY2>0){PY2--;}}
if(JN2>81){if(PY2<1000){PY2++;}}
if(PY2==1000){TG2=0;}
if(PY2==0){TG2=1;}
if(TG2==0&&AR0==0){QS0=1;}else{QS0=0;}
switch (AR0){
case 0: if(AZ1==1){AR0=1;} break;
case 1: if(TG2==1){AR0=0;} break;}
if(TG2==1){ZXC1();}else{OI0=0;}// ลำโพง
if(QS0==1){ZXC2();}else{OI1=0;AZ2=0;}// ลำโพง
}
}
void ZXC1(){
switch (OI0){
case 0: if(BH0>0){BH0--;}else{BH0= 500;}if(BH0==0){OI0=1;} LO1=0;break;
case 1: if(BH0>0){BH0--;}else{BH0=1000;}if(BH0==0){OI0=2;} LO1=1;break;
case 2: LO1=0;break;}//ไฟกระพริบ 1 ครั้ง
}
void ZXC2(){
switch (OI1){
case 0: if(BH0>0){BH0--;}else{BH0=400;}if(BH0==0){OI1=1;} LO1=0;break;
case 1: if(BH0>0){BH0--;}else{BH0=300;}if(BH0==0){OI1=2;} LO1=1;break;
case 2: if(BH0>0){BH0--;}else{BH0=400;}if(BH0==0){OI1=3;} LO1=0;break;
case 3: if(BH0>0){BH0--;}else{BH0=300;}if(BH0==0){OI1=4;} LO1=1;break;
case 4: if(BH0>0){BH0--;}else{BH0=800;}if(BH0==0){AZ2=1;} LO1=0;break;}//ไฟกระพริบ 2 ครั้ง
}