int sensorPin = 7; //analog pin7 int A = 3; // digital pin3 int B = 4; // digital pin4 int C = 5; // digital pin5 int D = 6; // digial pin6 int E = 8; // digial pin8 int F = 2; // digital pin2 int G = 1; // digital pin1 int H = 0; // digital pin0 int DELAY = 50; int avgVal; void setup(){ pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(H, OUTPUT); } void off(){ pinMode(A, INPUT); pinMode(B, INPUT); pinMode(C, INPUT); pinMode(D, INPUT); pinMode(E, INPUT); pinMode(F, INPUT); pinMode(G, INPUT); pinMode(H, INPUT); } void on_led(int high, int low){ off(); pinMode(high, OUTPUT); pinMode(low, OUTPUT); digitalWrite(low, LOW); digitalWrite(high, HIGH); } void on(int x, int y){ if (x == 0){ if (y == 0){ on_led(B,A); } else if (y == 1){ on_led(A,B); } else if (y == 2){ on_led(A,C); } else if (y == 3){ on_led(A,D); } else if (y == 4){ on_led(A,E); } } else if (x == 1){ if (y == 0){ on_led(C,A); } else if (y == 1){ on_led(C,B); } else if (y == 2){ on_led(B,C); } else if (y == 3){ on_led(B,D); } else if (y == 4){ on_led(B,E); } } else if (x == 2){ if (y == 0){ on_led(D,A); } else if (y == 1){ on_led(D,B); } else if (y == 2){ on_led(D,C); } else if (y == 3){ on_led(C,D); } else if (y == 4){ on_led(C,E); } } else if (x == 3){ if (y == 0){ on_led(E,A); } else if (y == 1){ on_led(E,B); } else if (y == 2){ on_led(E,C); } else if (y == 3){ on_led(E,D); } else if (y == 4){ on_led(D,E); } } else if (x == 4){ if (y == 0){ on_led(F,A); } else if (y == 1){ on_led(F,B); } else if (y == 2){ on_led(F,C); } else if (y == 3){ on_led(F,D); } else if (y == 4){ on_led(F,E); } } else if (x == 5){ if (y == 0){ on_led(G,A); } else if (y == 1){ on_led(G,B); } else if (y == 2){ on_led(G,C); } else if (y == 3){ on_led(G,D); } else if (y == 4){ on_led(G,E); } } else if (x == 6){ if (y == 0){ on_led(H,A); } else if (y == 1){ on_led(H,B); } else if (y == 2){ on_led(H,C); } else if (y == 3){ on_led(H,D); } else if (y == 4){ on_led(H,E); } } else if (x == 7){ if (y == 0){ on_led(C,H); } else if (y == 1){ on_led(D,H); } else if (y == 2){ on_led(E,H); } else if (y == 3){ on_led(F,H); } else if (y == 4){ on_led(G,H); } } else if (x == 8){ if (y == 0){ on_led(C,G); } else if (y == 1){ on_led(D,G); } else if (y == 2){ on_led(E,G); } else if (y == 3){ on_led(F,G); } else if (y == 4){ on_led(H,G); } } else if (x == 9){ if (y == 0){ on_led(C,F); } else if (y == 1){ on_led(D,F); } else if (y == 2){ on_led(E,F); } else if (y == 3){ on_led(G,F); } else if (y == 4){ on_led(H,F); } } } int storedVal = 0; int count = 0; void loop() { if (count < 30) { storedVal = storedVal + analogRead(sensorPin); count = count + 1; } else { avgVal = storedVal / count; storedVal = 0; count = 0; } if (avgVal >= 350) { smile(); } if (avgVal < 300 && avgVal >= 230) { sit(); } if (avgVal < 230 && avgVal > 195) { hi(); } } void hi(){ on(0,0); delayMicroseconds (DELAY); on(0,1); delayMicroseconds (DELAY); on(0,2); delayMicroseconds (DELAY); on(0,3); delayMicroseconds (DELAY); on(0,4); delayMicroseconds (DELAY); on(1,2); delayMicroseconds (DELAY); on(2,2); delayMicroseconds (DELAY); on(3,0); delayMicroseconds (DELAY); on(3,1); delayMicroseconds (DELAY); on(3,2); delayMicroseconds (DELAY); on(3,3); delayMicroseconds (DELAY); on(3,4); delayMicroseconds (DELAY); on(5,0); delayMicroseconds (DELAY); on(5,4); delayMicroseconds (DELAY); on(6,0); delayMicroseconds (DELAY); on(6,4); delayMicroseconds (DELAY); on(7,0); delayMicroseconds (DELAY); on(7,1); delayMicroseconds (DELAY); on(7,2); delayMicroseconds (DELAY); on(7,3); delayMicroseconds (DELAY); on(7,4); delayMicroseconds (DELAY); on(8,0); delayMicroseconds (DELAY); on(8,4); delayMicroseconds (DELAY); on(9,0); delayMicroseconds (DELAY); on(9,4); delayMicroseconds (DELAY); off(); delayMicroseconds (DELAY); } // SIT Function void sit(){ on(0,0); delayMicroseconds (DELAY); on(1,0); delayMicroseconds (DELAY); on(2,0); delayMicroseconds (DELAY); on(0,1); delayMicroseconds (DELAY); on(0,2); delayMicroseconds (DELAY); on(1,2); delayMicroseconds (DELAY); on(1,4); delayMicroseconds (DELAY); on(2,2); delayMicroseconds (DELAY); on(2,4); delayMicroseconds (DELAY); on(2,3); delayMicroseconds (DELAY); on(0,4); delayMicroseconds (DELAY); on(4,0); delayMicroseconds (DELAY); on(4,1); delayMicroseconds (DELAY); on(4,2); delayMicroseconds (DELAY); on(4,3); delayMicroseconds (DELAY); on(4,4); delayMicroseconds (DELAY); on(6,0); delayMicroseconds (DELAY); on(7,0); delayMicroseconds (DELAY); on(7,1); delayMicroseconds (DELAY); on(7,2); delayMicroseconds (DELAY); on(7,3); delayMicroseconds (DELAY); on(7,4); delayMicroseconds (DELAY); on(8,0); delayMicroseconds (DELAY); } /* Smile Function */ void smile(){ on(2,0); delayMicroseconds (DELAY); on(6,0); delayMicroseconds (DELAY); on(7,2); delayMicroseconds (DELAY); on(4,1); delayMicroseconds (DELAY); on(3,4); delayMicroseconds (DELAY); on(4,4); delayMicroseconds (DELAY); on(5,4); delayMicroseconds (DELAY); on(3,3); delayMicroseconds (DELAY); on(2,3); delayMicroseconds (DELAY); on(5,3); delayMicroseconds (DELAY); on(4,3); delayMicroseconds (DELAY); on(6,3); delayMicroseconds (DELAY); on(1,2); delayMicroseconds (DELAY); off(); delayMicroseconds (DELAY); } // Vertical Loop Array Function void vertloop(){ on(0,0); delay(10); on(0,1); delay(10); on(0,2); delay(10); on(0,3); delay(10); on(0,4); delay(10); on(1,0); delay(10); on(1,1); delay(10); on(1,2); delay(10); on(1,3); delay(10); on(1,4); delay(10); on(2,0); delay(10); on(2,1); delay(10); on(2,2); delay(10); on(2,3); delay(10); on(2,4); delay(10); on(3,0); delay(10); on(3,1); delay(10); on(3,2); delay(10); on(3,3); delay(10); on(3,4); delay(10); on(4,0); delay(10); on(4,1); delay(10); on(4,2); delay(10); on(4,3); delay(10); on(4,4); delay(10); on(5,0); delay(10); on(5,1); delay(10); on(5,2); delay(10); on(5,3); delay(10); on(5,4); delay(10); on(6,0); delay(10); on(6,1); delay(10); on(6,2); delay(10); on(6,3); delay(10); on(6,4); delay(10); on(7,0); delay(10); on(7,1); delay(10); on(7,2); delay(10); on(7,3); delay(10); on(7,4); delay(10); on(8,0); delay(10); on(8,1); delay(10); on(8,2); delay(10); on(8,3); delay(10); on(8,4); delay(10); on(9,0); delay(10); on(9,1); delay(10); on(9,2); delay(10); on(9,3); delay(10); on(9,4); delay(10); } /* Arrow Function void arrow(){ on(4,0); delay(0.5); on(4,1); delay(0.5); on(4,2); delay(0.5); on(4,3); delay(0.5); on(4,4); delay(0.5); on(3,3); delay(0.5); on(2,2); delay(0.5); on(5,3); delay(0.5); on(6,2); delay(0.5); } */ /* Horizontal Loop Array Function void hortloop(){ on(0,0); delay(5); on(1,0); delay(5); on(2,0); delay(5); on(3,0); delay(5); on(4,0); delay(5); on(5,0); delay(5); on(6,0); delay(5); on(7,0); delay(5); on(8,0); delay(5); on(9,0); delay(5); on(0,1); delay(5); on(1,1); delay(5); on(2,1); delay(5); on(3,1); delay(5); on(4,1); delay(5); on(5,1); delay(5); on(6,1); delay(5); on(7,1); delay(5); on(8,1); delay(5); on(9,1); delay(5); on(0,2); delay(5); on(1,2); delay(5); on(2,2); delay(5); on(3,2); delay(5); on(4,2); delay(5); on(5,2); delay(5); on(6,2); delay(5); on(7,2); delay(5); on(8,2); delay(5); on(9,2); delay(5); on(0,3); delay(5); on(1,3); delay(5); on(2,3); delay(5); on(3,3); delay(5); on(4,3); delay(5); on(5,3); delay(5); on(6,3); delay(5); on(7,3); delay(5); on(8,3); delay(5); on(9,3); delay(5); on(0,4); delay(5); on(1,4); delay(5); on(2,4); delay(5); on(3,4); delay(5); on(4,4); delay(5); on(5,4); delay(5); on(6,4); delay(5); on(7,4); delay(5); on(8,4); delay(5); on(9,4); delay(5); } */