// ขาที่ต่อกับ LED ทั้ง 5 หลอด
const int ledPins[5] = {23, 22, 19, 18, 5};
// กำหนด pattern แต่ละรูปแบบ: [รูปแบบ][บรรทัด][หลอด]
const byte patterns[3][8][5] = {
{ // รูปแบบที่ 1 (ซ้ายบน)
{1, 1, 1, 1, 1},
{1, 1, 0, 1, 1},
{1, 0, 0, 0, 1},
{0, 0, 0, 0, 0},
{1, 0, 0, 0, 1},
{1, 1, 0, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 0, 0, 0} // เติมเพิ่ม
},
{ // รูปแบบที่ 2 (ขวาบน)
{1, 0, 0, 0, 0},
{1, 1, 0, 0, 0},
{1, 1, 1, 0, 0},
{1, 1, 1, 1, 0},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 0, 0, 0}, // เติมเพิ่ม
{0, 0, 0, 0, 0} // เติมเพิ่ม
},
{ // รูปแบบที่ 3 (ขวาล่าง)
{0, 0, 0, 0, 1},
{0, 0, 0, 1, 1},
{0, 0, 1, 1, 1},
{0, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{1, 1, 1, 1, 1},
{0, 0, 0, 0, 0}, // เติมเพิ่ม
{0, 0, 0, 0, 0} // เติมเพิ่ม
}
};
int currentPattern = 0;
int currentLine = 0;
unsigned long lastUpdate = 0;
const unsigned long interval = 500; // 0.5 วินาที
void setup() {
for (int i = 0; i < 5; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
if (millis() - lastUpdate >= interval) {
lastUpdate = millis();
// แสดงบรรทัดปัจจุบันของ pattern ปัจจุบัน
for (int i = 0; i < 5; i++) {
digitalWrite(ledPins[i], patterns[currentPattern][currentLine][i] ? HIGH : LOW);
}
// ไปยังบรรทัดถัดไป
currentLine++;
// ถ้าครบ 7 บรรทัด ให้ไป pattern ถัดไป
if (currentLine >= 8) {
currentLine = 0;
currentPattern = (currentPattern + 1) % 3;
}
}
}