#include <Liquidcrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
// Define Pacman and dot custom characters
uint8_t pacman[8] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b11111,
0b01110,
0b00000,
0b00000
};
uint8_t pacmanOpen[] = {
0b00000,
0b00000,
0b01110,
0b11011,
0b11100,
0b01110,
0b00000,
0b00000
};
uint8_t dot[] = {
0b00000,
0b00000,
0b00000,
0b00110,
0b00110,
0b00000,
0b00000,
0b00000
};
// Define LED pins
const int redLedPin = 2; // ESP32 D2
const int blueLedPin = A3; // UNO A3
const int greenLedPin = 13; // UNO2 13
void setup() {
// Initialize LCD and create custom characters
lcd.createChar(1, pacman);
lcd.createChar(2, dot);
lcd.begin(20, 4);
lcd.setCursor(3, 0);
lcd.print("raminderpal singh");
lcd.setCursor(2, 2);
lcd.print("500220155");
// Initialize LED pins
pinMode(redLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
}
void loop() {
// Display Pacman animation with LEDs on
for (int i = 3; i < 16; i++) {
// Turn on all LEDs
digitalWrite(redLedPin, HIGH);
digitalWrite(blueLedPin, HIGH);
digitalWrite(greenLedPin, HIGH);
// Print Pacman character and dot animation
lcd.setCursor(i, 3);
lcd.write(1); // Print Pacman character
for (int j = i + 1; j < 16; j++) {
lcd.setCursor(j, 3);
lcd.write(2); // Print dot character
}
lcd.createChar(1, pacman); // Update Pacman character
delay(200);
lcd.createChar(1, pacmanOpen); // Update Pacman open character
delay(200);
lcd.setCursor(i, 3);
lcd.print(" "); // Clear character
// Turn off all LEDs
digitalWrite(redLedPin, LOW);
digitalWrite(blueLedPin, LOW);
digitalWrite(greenLedPin, LOW);
}
// Delay after Pacman animation
delay(1000);
// Blink LEDs sequentially
digitalWrite(redLedPin, HIGH);
delay(500);
digitalWrite(redLedPin, LOW);
delay(500);
digitalWrite(blueLedPin, HIGH);
delay(500);
digitalWrite(blueLedPin, LOW);
delay(500);
digitalWrite(greenLedPin, HIGH);
delay(500);
digitalWrite(greenLedPin, LOW);
delay(500);
}