int LEDNum = 7; //กำหนดเป็นจำนวน LED ใน array ซึ่งมีตั้งแต่ 0-7(8 ดวง)
int LED[] = {2, 3, 4, 5, 6, 7, 8, 9}; //ประกาศ array 1 มิติ เพื่อแทนขา LED ตั้งแต่ 2-9 ทีละดวง
int dT = 50; //แทนค่าหน่วงเวลา 0.05 วินาที
int start; //เป็นตัวแปรที่ประกาศเพื่อให้เงื่อนไข running LEDs ทำงานและหยุด
void setup() {
for(int x = 0;x <= LEDNum;x++) //ลูปการทำงานตั้งค่า OUTPUT และดับ LED แต่ละดวง
{
pinMode(LED[x], OUTPUT); //นำค่า x มาใส่ใน array เพื่อแทน LED แต่ละดวงเป็น OUTPUT
digitalWrite(LED[x], HIGH); //นำค่า x มาใส่ใน array เพื่อแทน LED แต่ละดวงให้ดับ
}
//กำหนดให้ปุ่มกดขา 10 และ 11 เป็น input และมีสถานะ high ตลอดเวลา จนกว่าจะกดปุ่ม
//เมื่อกดปุ่มจะเป็น low เมื่อไม่กดจะเป็น high
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
}
void loop() {
if(!digitalRead(10)){ //ถ้ามีการกดปุ่มที่ต่อขา 10 ให้ทำดังนี้
start = 1; //start = 1
}
if(start == 1){ //ถ้า start = 1 ให้ทำดังนี้
for(int i = 0;i <= 7;i++) //ลูปการทำงานในส่วนของ LED จากซ้ายไปขวา
{
if(!digitalRead(11)){ //ถ้ามีการกดปุ่มที่ต่อขา 11 ให้ทำดังนี้
start = 0; //start = 0
break; //จบการทำงานทันที
}
else{ //มิฉะนั้นแล้วให้ทำ running LEDs
digitalWrite(LED[i], LOW); //นำค่า i มาใส้ใน array เพื่่อให้ LED เปิด
delay(dT); //หน่วงตามค่า dT ที่กำหนด
digitalWrite(LED[i], HIGH); //นำค่า i มาใส้ใน array เพื่่อให้ LED ปิด
}
delay(dT); //หน่วงตามค่า dT ที่กำหนด
}
for(int i = 6;i >= 1;i--) //ลูปการทำงานในส่วนของ LED จากขวาไปซ้าย
{
if(!digitalRead(11)){ //ถ้ามีการกดปุ่มที่ต่อขา 11 ให้ทำดังนี้
start = 0; //start = 0
break; //จบการทำงานทันที
}
else{ //มิฉะนั้นแล้วให้ทำ running LEDs
digitalWrite(LED[i], LOW); //นำค่า i มาใส้ใน array เพื่่อให้ LED เปิด
delay(dT); //หน่วงตามค่า dT ที่กำหนด
digitalWrite(LED[i], HIGH); //นำค่า i มาใส้ใน array เพื่่อให้ LED ปิด
}
delay(dT); //หน่วงตามค่า dT ที่กำหนด
}
}
}