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