-char scancodes[] = {0x45, 0x16, 0x1E, 0x26, 0x25, 0x2E, 0x36, 0x3D, 0x3E, 0x46, 0x7C, 0x7C}; //Scancodes for numbers 0-9, *, #
+void drawdisp(int shift) {
+ lc.clearDisplay(0);
+ for(int i = 0; i<8; i++) {
+ if(shift) dispbuf[i] = dispbuf[i+1];
+ if(dispbuf[i] != '_') lc.setDigit(0,7-i,dispbuf[i],false); //addr, digit, value, decimalpoint
+ }
+}
+
+void intro() {
+ cleardisp('_');
+ for(int i = 0; i<100; i++) {
+ analogWrite(keyledPin, i);
+ if(i >= 20*1) dispbuf[3] = dispbuf[4] = 0;
+ if(i >= 20*2) dispbuf[2] = dispbuf[5] = 0;
+ if(i >= 20*3) dispbuf[1] = dispbuf[6] = 0;
+ if(i >= 20*4) dispbuf[0] = dispbuf[7] = 0;
+ drawdisp(0);
+ delay(20);
+ }
+}
+
+void outro() {
+ cleardisp(0);
+ for(int i = 100; i>=0; i--) {
+ analogWrite(keyledPin, i);
+ if(i <= 20*1) dispbuf[3] = dispbuf[4] = '_';
+ if(i <= 20*2) dispbuf[2] = dispbuf[5] = '_';
+ if(i <= 20*3) dispbuf[1] = dispbuf[6] = '_';
+ if(i <= 20*4) dispbuf[0] = dispbuf[7] = '_';
+ drawdisp(0);
+ delay(20);
+ }
+}