สอบถามเรื่องการเขียนCode Arduino Traffic+Switch ผมติดปัญหาผู้รู้ช่วยแนะหน่อยครับ

คือCodemี่ผมเขียนมี(ใว้ด้านล่างนะครับ)
ปัญหาของมันคือ ผมทำทำแดง+สวิทช์เสร็จแล้ว โจทของมันก็คือ ทำไฟแดง+สวิทชให้กด สวิทช์(??)แล้วข้ามไปไฟเขียวนั้นๆกดแช่ก็จะอยู่ที่ไฟเขียวนั้นๆไปเรื่อยๆ แต่ถ้าปล่อยให้กลับมาทำงาน ลูปเดิมที่ทำก่อนกดสวิทช์ แต่ผมติดที่ตรงนี้ ผมปล่อยสวิทช์แล้วมันเขียวต่อเลยแต่โจทย์คือ ทำให้ไฟเหลืองก่อนแล้วทำงานไปไฟเขียวต่อไม่งั้นรชนกันตายแน่ๆครับ วอนผู้รู้ช่วยเชคให้หน่อยได้ใหมครับ


int Red1=3;
int Yellow1=2;
int Green1=1;
int Red2=6;
int Yellow2=5;
int Green2=4;
int Red3=9;
int Yellow3=8;
int Green3=7;
int Red4=12;
int Yellow4=11;
int Green4=10;

void setup()
{
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(14,INPUT);
pinMode(15,INPUT);
pinMode(16,INPUT);
pinMode(17,INPUT);

}

void loop()
{
//      แดง                      เหลือง             เขียว
    digitalWrite(3, LOW);digitalWrite(2, LOW);digitalWrite(1, HIGH);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
   delay(7000);
//      แดง                      เหลือง             เขียว
    digitalWrite(3, LOW);digitalWrite(2, HIGH);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(6, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
     delay(1500);delay(1500);check11();check12();check13();check14();
    

    
//      แดง                      เหลือง             เขียว    
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, LOW);digitalWrite(5, LOW);digitalWrite(4, HIGH);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
    delay(7000);
//      แดง                      เหลือง             เขียว    
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, LOW);digitalWrite(5, HIGH);digitalWrite(4, LOW);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
     delay(1500);delay(1500);check11();check12();check13();check14();
    
    
//      แดง                      เหลือง             เขียว   
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, HIGH);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
    delay(7000);
//      แดง                      เหลือง             เขียว    
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, LOW);digitalWrite(8, HIGH);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
     delay(1500);delay(1500);check11();check12();check13();check14();
   
   
//      แดง                      เหลือง             เขียว   
     digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, LOW);digitalWrite(11, LOW);digitalWrite(10, HIGH);
    delay(7000);
//      แดง                      เหลือง             เขียว    
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, LOW);digitalWrite(11, HIGH);digitalWrite(10, LOW);
      delay(1500);delay(1500);check11();check12();check13();check14();
  
      

}

void check11() {
while((digitalRead(14)==0)&&ร้องไห้digitalRead(15)==1)&&ร้องไห้digitalRead(16)==1)&&ร้องไห้digitalRead(17)==1))
{      
//      แดง                      เหลือง             เขียว
    digitalWrite(3, LOW);digitalWrite(2, LOW);digitalWrite(1, HIGH);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
   
}
}
void check12()
{
while((digitalRead(14)==1)&&ร้องไห้digitalRead(15)==0)&&ร้องไห้digitalRead(16)==1)&&ร้องไห้digitalRead(17)==1))
   {
//      แดง                      เหลือง             เขียว    
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, LOW);digitalWrite(5, LOW);digitalWrite(4, HIGH);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
    }
}

void check13() {
while((digitalRead(14)==1)&&ร้องไห้digitalRead(15)==1)&&ร้องไห้digitalRead(16)==0)&&ร้องไห้digitalRead(17)==1))
{
//      แดง                      เหลือง             เขียว
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, LOW);digitalWrite(8, LOW);digitalWrite(7, HIGH);
    digitalWrite(12, HIGH);digitalWrite(11, LOW);digitalWrite(10, LOW);
}
}

void check14() {
while((digitalRead(14)==1)&&ร้องไห้digitalRead(15)==1)&&ร้องไห้digitalRead(16)==1)&&ร้องไห้digitalRead(17)==0))
{
//      แดง                      เหลือง             เขียว
    digitalWrite(3, HIGH);digitalWrite(2, LOW);digitalWrite(1, LOW);
    digitalWrite(6, HIGH);digitalWrite(5, LOW);digitalWrite(4, LOW);      
    digitalWrite(9, HIGH);digitalWrite(8, LOW);digitalWrite(7, LOW);
    digitalWrite(12, LOW);digitalWrite(11, LOW);digitalWrite(10, HIGH);
    
}
}
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่