#include "LedControl.h"
LedControl lc = LedControl(12, 11, 10, 2); // Pins: DIN,CLK,CS, # of Display connected
unsigned long delayTime = 40;
byte olho_esquerdo_mal0[] = {B00011100, B00100010, B01000010, B01000010, B01011010, B01011010, B01100110, B00111100};
byte olho_esquerdo_mal1[] = {B00001000, B00010100, B00100010, B01000010, B01011010, B01011010, B00100100, B00011000};
byte olho_direito_mal0[] = {B00111000, B01000100, B01000010, B01000010, B01011000, B01011000, B01100110, B00111100};
byte olho_direito_mal1[] = {B00010000, B00101000, B01000100, B01000010, B01011010, B01011010, B00100100, B00011000};
byte olho_esquerdo_doente0[] = {B00111000, B01000100, B01000010, B01000010, B01011010, B01011010, B00100010, B00011100};
byte olho_esquerdo_doente1[] = {B00111000, B01000100, B01000010, B01011010, B01011010, B01000010, B00100010, B00011100};
byte olho_esquerdo_doente2[] = {B00110000, B01001000, B01000100, B01011010, B01011010, B00100010, B00010010, B00001100};
byte olho_esquerdo_doente3[] = {B00110000, B01001000, B01000100, B01011010, B00101010, B00010010, B00001010, B00000100};
byte olho_direito_doente0[] = {B00011100, B00100010, B01000010, B01000010, B01011010, B01011010, B01000100, B00111000};
byte olho_direito_doente1[] = {B00011100, B00100010, B01000010, B01011010, B01011010, B01000010, B01000100, B00111000};
byte olho_direito_doente2[] = {B00001100, B00010010, B00100010, B01011010, B01011010, B01000100, B01001000, B00110000};
byte olho_direito_doente3[] = {B00001100, B00010010, B00100010, B01011010, B01010100, B01001000, B01010000, B00100000};
byte olho_esquerdo_bravo0[] = {B00011100, B00100010, B01000010, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_esquerdo_bravo1[] = {B00001100, B00010010, B00100010, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_esquerdo_bravo2[] = {B00000100, B00001010, B00010010, B00100010, B01011010, B01011010, B01000010, B00111100};
byte olho_esquerdo_bravo3[] = {B00000100, B00001010, B00010010, B00100010, B01011010, B01011010, B01000010, B00111100};
byte olho_esquerdo_bravo4[] = {B00000010, B00000110, B00001010, B00010010, B00101010, B01011010, B01000010, B00111100};
byte olho_direito_bravo0[] = {B00111000, B01000100, B01000010, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_direito_bravo1[] = {B00110000, B01001000, B01000100, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_direito_bravo2[] = {B00100000, B01010000, B01001000, B01000100, B01011010, B01011010, B01000010, B00111100};
byte olho_direito_bravo3[] = {B00100000, B01010000, B01001000, B01000100, B01011010, B01011010, B01000010, B00111100};
byte olho_direito_bravo4[] = {B01000000, B01100000, B01010000, B01001000, B01010100, B01011010, B01000010, B00111100};
byte olho_baixo0[] = {B00111100, B01000010, B01000010, B01000010, B01000010, B01011010, B01011010, B00111100};
byte olho_baixo1[] = {B00111100, B01000010, B01000010, B01000010, B01000010, B01000010, B01011010, B00111100};
byte olho_baixo2[] = {B00000000, B00111100, B01000010, B01000010, B01000010, B01000010, B01011010, B00111100};
byte olho_cima0[] = {B00111100, B01000010, B01000010, B01011010, B01011010, B01000010, B01000010, B00111100};
byte olho_cima1[] = {B00111100, B01000010, B01011010, B01011010, B01000010, B01000010, B01000010, B00111100};
byte olho_cima2[] = {B00111100, B01011010, B01011010, B01000010, B01000010, B01000010, B01000010, B00111100};
byte olho_natural0[] = {B00111100, B01000010, B01000010, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_natural1[] = {B00000000, B00111100, B01000010, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_natural2[] = {B00000000, B00000000, B00111100, B01000010, B01011010, B01011010, B01000010, B00111100};
byte olho_natural3[] = {B00000000, B00000000, B00000000, B00111100, B01011010, B01011010, B00111100, B00000000};
byte olho_natural4[] = {B00000000, B00000000, B00000000, B00000000, B00111100, B01011010, B00111100, B00000000};
byte olho_natural5[] = {B00000000, B00000000, B00000000, B00000000, B00000000, B01111110, B00111100, B00000000};
byte olho_esquerda[] = {B01111000, B10000100, B10000100, B10000100, B11100100, B11100100, B10000100, B01111000};
byte olho_direita[] = {B00011110, B00100001, B00100001, B00100001, B00100111, B00100111, B00100001, B00011110};
byte olho_aberto[] = {B00111100, B01000010, B01000010, B01000010, B01011010, B01011010, B01000010, B00111100};
void setup() {
lc.shutdown(0, false); // Wake up displays
lc.shutdown(1, false);
lc.setIntensity(0, 3); // Set intensity levels
lc.setIntensity(1, 3);
lc.clearDisplay(0); // Clear Displays
lc.clearDisplay(1);
}
void olhar_mal() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_mal0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_mal0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_mal1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_mal1[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_mal1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_mal1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_mal0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_mal0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void olhar_doente() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente3[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente3[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente3[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_doente0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_doente0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void olhar_bravo() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo3[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo4[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo4[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo4[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo3[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direito_bravo0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerdo_bravo0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void olhar_para_baixo() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_baixo0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_baixo0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_baixo1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_baixo1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_baixo2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_baixo2[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_baixo2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_baixo2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_baixo1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_baixo1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_baixo0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_baixo0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void olhar_para_cima() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_cima0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_cima0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_cima1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_cima1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_cima2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_cima2[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_cima2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_cima2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_cima1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_cima1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_cima0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_cima0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void olhar_a_esquerda() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_esquerda[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_esquerda[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_aberto[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_aberto[i]);
} delay(delayTime);
}
void olhar_a_direita() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_direita[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_direita[i]);
} delay(2000);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_aberto[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_aberto[i]);
} delay(delayTime);
}
void olhos_abertos() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_aberto[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_aberto[i]);
}
delay(4000);
}
void olhos_piscar() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural3[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural4[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural5[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural5[i]);
} delay(250);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural5[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural5[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural4[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural3[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural2[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural1[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void piscar_olho_direito() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural5[i]);
} delay(250);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural5[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
} delay(delayTime);
}
void piscar_olho_esquerdo() {
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, olho_natural0[i]);
}
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural5[i]);
} delay(250);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural5[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural4[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural3[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural2[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural1[i]);
} delay(delayTime);
for (int i = 0; i < 8; i++) {
lc.setRow(1, i, olho_natural0[i]);
} delay(delayTime);
}
void olhar_natural() {
olhos_abertos();
olhos_piscar();
}
void loop() {
olhar_natural(); delay(2000); piscar_olho_direito();
olhar_natural(); delay(2000); piscar_olho_esquerdo();
olhar_natural(); delay(2000); olhar_a_direita();
olhar_natural(); delay(2000); olhar_a_esquerda();
olhar_natural(); delay(2000); olhar_para_cima();
olhar_natural(); delay(2000); olhar_para_baixo();
olhar_natural(); delay(2000); olhar_bravo();
olhar_natural(); delay(2000); olhar_doente();
olhar_natural(); delay(2000); olhar_mal();
}