คือ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);
}
}
สอบถามเรื่องการเขียนCode Arduino Traffic+Switch ผมติดปัญหาผู้รู้ช่วยแนะหน่อยครับ
ปัญหาของมันคือ ผมทำทำแดง+สวิทช์เสร็จแล้ว โจทของมันก็คือ ทำไฟแดง+สวิทชให้กด สวิทช์(??)แล้วข้ามไปไฟเขียวนั้นๆกดแช่ก็จะอยู่ที่ไฟเขียวนั้นๆไปเรื่อยๆ แต่ถ้าปล่อยให้กลับมาทำงาน ลูปเดิมที่ทำก่อนกดสวิทช์ แต่ผมติดที่ตรงนี้ ผมปล่อยสวิทช์แล้วมันเขียวต่อเลยแต่โจทย์คือ ทำให้ไฟเหลืองก่อนแล้วทำงานไปไฟเขียวต่อไม่งั้นรชนกันตายแน่ๆครับ วอนผู้รู้ช่วยเชคให้หน่อยได้ใหมครับ
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)&&
{
// แดง เหลือง เขียว
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)&&
{
// แดง เหลือง เขียว
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)&&
{
// แดง เหลือง เขียว
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)&&
{
// แดง เหลือง เขียว
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);
}
}