#include <LedControl.h>
const int DIN = 12;
const int CLK = 10;
const int CS = 11;
LedControl lc = LedControl(DIN, CLK, CS, 1);
// --- FACE PATTERNS ---
// Happy face (eyes open, smiling)
byte happyOpen[8] = {
B00000000,
B01100110, // eyes row 0
B01100110, // eyes row 1
B00000000,
B01000010,
B01111110,
B00111100,
B00000000 // mouth row 4
};
// Happy face (eyes closed, smiling)
byte happyClosed[8] = {
B00000000,
B00000000,
B00000000,
B00000000,
B01000010,
B01111110,
B00111100,
B00000000 // mouth row 4
};
// Surprised face (eyes open, round mouth)
byte surprisedOpen[8] = {
B00011000,
B00011000,
B00000000,
B00000000,
B00011000,
B00100100,
B00011000,
B00000000
};
// Surprised face (eyes closed, round mouth)
byte surprisedClosed[8] = {
B00000000,
B00000000,
B00000000,
B00000000,
B00011000,
B00100100,
B00011000,
B00000000
};
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
}
void displayFace(byte face[8]) {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, face[row]);
}
}
void loop() {
// --- HAPPY face animation ---
displayFace(happyOpen);
delay(2000); // eyes open for 2 seconds
displayFace(happyClosed);
delay(200); // blink
displayFace(happyOpen);
delay(2000); // open again
// // --- Switch to SURPRISED face ---
// displayFace(surprisedOpen);
// delay(2000);
// displayFace(surprisedClosed);
// delay(200); // blink
// displayFace(surprisedOpen);
// delay(2000);
}