#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 20, 4);
int i;
int j;
int k;
int me =80;
byte pacman []
{ B01110,
B11111,
B11101,
B11111,
B11111,
B11000,
B11111,
B01110
};
byte pacmanhungry []
{ B01110,
B11101,
B11111,
B11100,
B11000,
B11000,
B11100,
B01111
};
byte food []
{ B00000,
B00000,
B00000,
B00100,
B01110,
B11111,
B01110,
B00100
};
byte ghostfront []
{ B01110,
B10101,
B10101,
B11111,
B11111,
B11111,
B11111,
B10101
};
byte ghostleft []
{ B01110,
B11111,
B01011,
B01011,
B11111,
B10011,
B11111,
B10101
};
byte ghostright []
{ B01110,
B11111,
B11010,
B11010,
B11111,
B11100,
B11111,
B10101
};
void setup()
{
lcd.init();
lcd.backlight();
lcd.clear();
delay(me);
lcd.createChar(1, pacman );
lcd.createChar(2, pacmanhungry);
lcd.createChar(3, food);
lcd.createChar(4, ghostfront);
lcd.createChar(5, ghostleft);
lcd.createChar(6, ghostright);
}
void loop()
{
for(i=0;i<16;i++)
{
lcd.setCursor(4,1); // create ghost character
lcd.write(4);
lcd.setCursor(i,0);// make pacman move left to right
lcd.write(1);
delay(me);
//lcd.clear();
lcd.setCursor(i,0);
lcd.write(2);
delay(me);
lcd.clear();
if (i<3)
{
lcd.setCursor(3,0); //create food character
lcd.write(3);
lcd.setCursor(7,0); //create food character
lcd.write(3);
lcd.setCursor(11,0); //create food character
lcd.write(3);
}
else if (i<7)
{
lcd.setCursor(7,0); //create food character
lcd.write(3);
lcd.setCursor(11,0); //create food character
lcd.write(3);
}
else if (i<11)
{
lcd.setCursor(11,0); //create food character
lcd.write(3);
}
}
for(i=0;i<16;i++)
{
if (i<4)
{
lcd.setCursor(i+3,1); // create ghost character
lcd.write(5);
lcd.setCursor(i,1);// make pacman move left to right
lcd.write(1);
delay(me);
//lcd.clear();
lcd.setCursor(i,1);
lcd.write(2);
delay(me);
lcd.clear();
}
else if (i>=4 && i<=8)
{ j=i+2;
lcd.setCursor(j,1); // create ghost character
lcd.write(4);
lcd.setCursor(i,1);// make pacman move left to right
lcd.write(1);
delay(me);
//lcd.clear();
lcd.setCursor(i,1);
lcd.write(2);
delay(me);
lcd.clear();
}
else if (i>8 && i<=13)
{ k=i+1;
lcd.setCursor(k,1); // create ghost character
lcd.write(6);
lcd.setCursor(i,1);// make pacman move left to right
lcd.write(1);
delay(me);
//lcd.clear();
lcd.setCursor(i,1);
lcd.write(2);
delay(me);
lcd.clear();
}
else if (i>13)
{
lcd.setCursor(i,1);// make pacman move left to right
lcd.write(1);
delay(me);
//lcd.clear();
lcd.setCursor(i,1);
lcd.write(2);
delay(me);
lcd.clear();
}
}
}