#define LED_1 13 // LED pins #define LED_2 12 #define LED_3 11 #define LED_4 10 #define BUZ 3 // The speaker enable #define POT A0 // The analog input for the potentiometer #define S_1 A1 // The input pushbuttons #define S_2 A2 #define S_3 A3 #define D_LATCH 4 // The 3 pins that control the display #define D_CLK 7 #define D_DATA 8 const byte numMap[] = {0x03, 0x9F, 0x25, 0x0D, 0x99, 0x49, 0x41, 0x1F, 0x01, 0x09, 0x11, 0xC1, 0x63, 0x85, 0x61, 0x71, 0xFF}; const byte digitMap[] = {0x00, 0x80, 0x40, 0x20, 0x10}; int dig1, dig2, dig3, dig4; int count; long timer = millis(); void dispNum(int digitNum, int Value) { digitalWrite(D_LATCH, LOW); shiftOut(D_DATA, D_CLK, LSBFIRST, numMap[Value]); shiftOut(D_DATA, D_CLK, LSBFIRST, digitMap[digitNum] ); digitalWrite(D_LATCH, HIGH); } void setup() { //Leds pinMode(LED_1, OUTPUT); digitalWrite(LED_1, HIGH); pinMode(LED_2, OUTPUT); digitalWrite(LED_2, HIGH); pinMode(LED_3, OUTPUT); digitalWrite(LED_3, HIGH); pinMode(LED_4, OUTPUT); digitalWrite(LED_4, HIGH); //Drukknoppen pinMode(S_1, INPUT); pinMode(S_2, INPUT); pinMode(S_3, INPUT); //Buzzer pinMode(BUZ, OUTPUT); digitalWrite(BUZ, HIGH); //Display pinMode(D_LATCH , OUTPUT); pinMode(D_CLK , OUTPUT); pinMode(D_DATA , OUTPUT); dispNum(1, 16); dispNum(2, 16); dispNum(3, 16); dispNum(4, 16); dispNum(0, 16); } void loop() { dig1 = count / 1000; dispNum(1, dig1); dig2 = (count - (dig1 * 1000)) / 100; dispNum(2, dig2); dig3 = (count - dig1 * 1000 - dig2 * 100) / 10; dispNum(3, dig3); dig4 = (count - dig1 * 1000 - dig2 * 100 - dig3 * 10); dispNum(4, dig4); dispNum(0, 16); delay(25); if (timer < millis()) { count++; timer = timer + 100; } }