#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define t 300
#define t2 600
LiquidCrystal_I2C lcd(0x27, 20, 4); // Set the LCD I2C address and the display dimensions
int leds[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
int total_leds = 12;
void setup() {
Serial.begin(115200);
lcd.begin(20, 4); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
lcd.setCursor(0, 0);
lcd.print("Effects on LCD");
lcd.setCursor(0, 1);
lcd.print("code by himani");
lcd.setCursor(0, 2);
lcd.print("HAVE A NICE DAY");
delay(2000);
lcd.clear();
for (int i = 0; i < total_leds; i++) {
pinMode(leds[i], OUTPUT);
}
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Effect 1");
for (int i = 0; i < 3; i++) effect_1();
lcd.setCursor(0, 0);
lcd.print("Effect 2");
for (int i = 0; i < 3; i++) effect_2();
lcd.setCursor(0, 0);
lcd.print("Effect 3");
for (int i = 0; i < 20; i++) effect_3();
lcd.setCursor(0, 0);
lcd.print("Effect 4");
for (int i = 0; i < 3; i++) effect_4();
lcd.setCursor(0, 0);
lcd.print("Effect 5");
for (int i = 0; i < 3; i++) effect_5();
lcd.setCursor(0, 0);
lcd.print("Effect 6");
for (int i = 0; i < 3; i++) effect_6();
lcd.setCursor(0, 0);
lcd.print("Effect 7");
for (int i = 0; i < 3; i++) effect_7();
lcd.setCursor(0, 0);
lcd.print("Effect 8");
for (int i = 0; i < 3; i++) effect_8();
lcd.setCursor(0, 0);
lcd.print("Effect 9");
for (int i = 0; i < 10; i++) effect_9();
lcd.setCursor(0, 0);
lcd.print("Effect 10");
for (int i = 0; i < 10; i++) effect_10();
lcd.setCursor(0, 0);
lcd.print("Effect 11");
for (int i = 0; i < 5; i++) effect_11();
lcd.setCursor(0, 0);
lcd.print("Effect 12");
for (int i = 0; i < 5; i++) effect_12();
ledsOff();
lcd.clear();
delay(2000);
}
void ledsOn() {
for (int i = 0; i < total_leds; i++) {
digitalWrite(leds[i], HIGH);
}
}
void ledsOff() {
for (int i = 0; i < total_leds; i++) {
digitalWrite(leds[i], LOW);
}
}
void effect_1() {
int i = 0;
for (i = 0; i < total_leds; i++) {
digitalWrite(leds[i], HIGH);
delay(t);
}
for (i = 0; i < total_leds; i++) {
digitalWrite(leds[i], LOW);
delay(t);
}
for (i = total_leds - 1; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
delay(t);
}
for (i = total_leds - 1; i >= 0; i--) {
digitalWrite(leds[i], LOW);
delay(t);
}
}
void effect_2() {
int i = 0;
for (i = 0; i < total_leds - 1; i++) {
digitalWrite(leds[i], HIGH);
delay(t);
}
for (i = total_leds - 1; i >= 0; i--) {
digitalWrite(leds[i], LOW);
delay(t);
}
for (i = total_leds - 1; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
delay(t);
}
for (i = 0; i <= total_leds; i++) {
digitalWrite(leds[i], LOW);
delay(t);
}
}
void effect_3() {
for (int i = 0; i < total_leds; i = i + 2) {
digitalWrite(leds[i], HIGH);
digitalWrite(leds[i + 1], LOW);
}
delay(t2);
for (int i = 0; i < total_leds; i = i + 2) {
digitalWrite(leds[i], LOW);
digitalWrite(leds[i + 1], HIGH);
}
delay(t2);
}
void effect_4() {
for (int i = 0; i <= total_leds; i++) {
digitalWrite(leds[i], HIGH);
delay(t2);
i += 1;
}
for (int i = total_leds - 2; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
delay(t2);
i -= 1;
}
}
void effect_5() {
int i = 0;
for (i = 0; i <= total_leds / 2; i++) {
digitalWrite(i, HIGH);
digitalWrite(leds[total_leds - i], HIGH);
delay(t2);
}
for (i = 0; i <= total_leds / 2; i++) {
digitalWrite(i, LOW);
digitalWrite(leds[total_leds - i], LOW);
delay(t2);
}
delay(t2);
for (i = 0; i <= total_leds / 2; i++) {
digitalWrite(i, HIGH);
digitalWrite(leds[total_leds - i], HIGH);
delay(t2);
}
for (i = total_leds / 2; i >= 0; i--) {
digitalWrite(leds[i], LOW);
digitalWrite(leds[total_leds - i], LOW);
delay(t2);
}
}
void effect_6() {
for (int i = 0; i < total_leds; i++) {
digitalWrite(leds[i], HIGH);
delay(t2);
digitalWrite(leds[i], LOW);
}
}
void effect_7() {
for (int i = total_leds; i > 0; i--) {
digitalWrite(leds[i-1], HIGH);
delay(t2);
digitalWrite(leds[i-1], LOW);
}
}
void effect_8() {
for (int i = 0; i <= total_leds; i++) {
digitalWrite(leds[i], HIGH);
delay(t2);
}
for (int i = total_leds - 2; i >= 0; i--) {
digitalWrite(leds[i], LOW);
delay(t2);
}
}
void effect_9() {
for (int i = 0; i < total_leds / 2; i++) {
digitalWrite(leds[i], HIGH);
digitalWrite(leds[total_leds - 1 - i], HIGH);
delay(t2);
digitalWrite(leds[i], LOW);
digitalWrite(leds[total_leds - 1 - i], LOW);
}
}
void effect_10() {
for (int i = total_leds / 2 - 1; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
digitalWrite(leds[total_leds - 1 - i], HIGH);
delay(t2);
digitalWrite(leds[i], LOW);
digitalWrite(leds[total_leds - 1 - i], LOW);
}
}
void effect_11() {
for (int i = 0; i < total_leds + 2; i++) {
if (i < total_leds) {
digitalWrite(leds[i], HIGH);
}
if (i > 1) {
digitalWrite(leds[i - 2], LOW);
}
delay(t2);
}
}
void effect_12() {
for (int i = 2; i < total_leds; i++) {
if (i == 2) {
digitalWrite(leds[0], HIGH);
digitalWrite(leds[1], HIGH);
}
digitalWrite(leds[i], HIGH);
digitalWrite(leds[i - 2], LOW);
delay(t2);
}
for (int i = total_leds - 2; i >= 0; i--) {
digitalWrite(leds[i], HIGH);
digitalWrite(leds[i + 2], LOW);
delay(t2);
}
}