#include <LedControl.h>
LedControl lc = LedControl(12, 11, 10, 1);
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define RED 16
#define GREEN 15
#define BLUE 14
char data;
int i;
byte HAPPY[8] =
{
B00111100,
B01000010,
B10100101,
B10000001,
B10000001,
B10100101,
B01011010,
B00111100
};
byte SAD[8] =
{
B00111100,
B01000010,
B10100101,
B10000001,
B10011001,
B10100101,
B01000010,
B00111100
};
byte NORMAL[8] =
{
B00111100,
B01000010,
B10100101,
B10000001,
B10000001,
B10111101,
B01000010,
B00111100
};
void setup()
{
lcd.init();
lcd.backlight();
lcd.clear();
lc.shutdown(0, false); // wakeup The MAX7219
lc.setIntensity(0, 8); // Set brightness to a medium value
lc.clearDisplay(0); // Clear the display
lcd.setCursor(0, 0);
lcd.print("Ebrahem Sleman");
delay(3500);
lcd.clear();
Serial.begin(9600);
pinMode(RED, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(GREEN, OUTPUT);
lcd.print("Press a key");
Serial.println("Press a key");
}
void loop()
{
if (Serial.available())
{
data = Serial.read() ;
if (data == 'R')
{
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("ITS BAD");
digitalWrite(RED, 1);
digitalWrite(GREEN, 0);
digitalWrite(BLUE, 0);
for (i = 0; i < 8; i++)
lc.setRow(0, i, SAD[i]);
}
if (data == 'G')
{
lcd.clear();
digitalWrite(RED, 0);
digitalWrite(GREEN, 1);
digitalWrite(BLUE, 0);
lcd.setCursor(4, 0);
lcd.print("ITS GOOD");
for (i = 0; i < 8; i++)
lc.setRow(0, i, HAPPY[i]);
}
if (data == 'B')
{
lcd.clear();
digitalWrite(RED, 0);
digitalWrite(GREEN, 0);
digitalWrite(BLUE, 1);
lcd.setCursor(3, 0);
lcd.print("ITS NORMAL");
for (i = 0; i < 8; i++)
lc.setRow(0, i, NORMAL[i]);
}
if (data == 'C')
{
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("BYE");
digitalWrite(RED, 0);
digitalWrite(GREEN, 0);
digitalWrite(BLUE, 0);
lc.clearDisplay(0); // Clear the display
}
}
}