#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
void setup() {
lcd.init();
lcd.backlight();
for (int i = 0; i < 10; i++) {
pinMode(ledPins[i], OUTPUT);
}
}
void loop() {
lcd.clear();
for (int pattern = 1; pattern <= 10; pattern++) {
lcd.setCursor(0, 0);
lcd.print("Step : ");
lcd.print(pattern);
displayPattern(pattern);
delay(2000);
}
}
void displayPattern(int patternNum) {
switch (patternNum) {
case 1:
step1();
break;
case 2:
step2();
break;
case 3:
Step3();
break;
case 4:
Step4();
break;
case 5:
step5();
break;
case 6:
step6();
break;
case 7:
step7();
break;
case 8:
step8();
break;
case 9:
step9();
break;
case 10:
step10();
break;
}
}
void step1() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], HIGH);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void step2() {
for (int i = ledPins - 1; i >= 0; i--) {
digitalWrite(ledPins[i], HIGH);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void Step3() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 2 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void Step4() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 3 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void step5() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 4 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void step6() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 5 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void step7() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 6 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void step8() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 7 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
}
void step9() {
for (int i = 0; i < ledPins; i++) {
digitalWrite(ledPins[i], i % 8 == 0 ? HIGH : LOW);
delay(50);
digitalWrite(ledPins[i], LOW);
}
delay(1000);
}
void step10() {
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 9; j++) {
digitalWrite(ledPins[j], HIGH);
digitalWrite(ledPins[j + 1], HIGH);
delay(50);
digitalWrite(ledPins[j], LOW);
digitalWrite(ledPins[j + 1], LOW);
}
for (int j = 9; j > 0; j--) {
digitalWrite(ledPins[j], HIGH);
digitalWrite(ledPins[j - 1], HIGH);
delay(50);
digitalWrite(ledPins[j], LOW);
digitalWrite(ledPins[j - 1], LOW);
}
}
delay(1000);
}