/* Showing number 0-9 on a Common Anode 7-segment LED display Displays the numbers 0-9 on the display, with one second inbetween. A F B G E C D */ int pinA = 11; int pinB = 7; int pinC = 4; int pinD = 2; int pinE = 1; int pinF = 10; int pinG = 5; int dp = 3; int D1 = 12; int D2 = 9; int D3 = 8; int D4 = 6; void all_low() { digitalWrite(pinA, LOW); digitalWrite(pinB, LOW); digitalWrite(pinC, LOW); digitalWrite(pinD, LOW); digitalWrite(pinE, LOW); digitalWrite(pinF, LOW); digitalWrite(pinG, LOW); digitalWrite(dp, HIGH); } void digit0() { digitalWrite(pinG, HIGH); } void digit1() { digitalWrite(pinA, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); } void digit2() { digitalWrite(pinC, HIGH); digitalWrite(pinF, HIGH); } void digit3() { digitalWrite(pinE, HIGH); digitalWrite(pinF, HIGH); } void digit4() { digitalWrite(pinA, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); } void digit5() { digitalWrite(pinB, HIGH); digitalWrite(pinE, HIGH); } void digit6() { digitalWrite(pinB, HIGH); } void digit7() { digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); } void digit8() { all_low(); } void digit9() { digitalWrite(pinE, HIGH); } void setup() { pinMode(pinA, OUTPUT); pinMode(pinB, OUTPUT); pinMode(pinC, OUTPUT); pinMode(pinD, OUTPUT); pinMode(pinE, OUTPUT); pinMode(pinF, OUTPUT); pinMode(pinG, OUTPUT); pinMode(dp, OUTPUT); pinMode(D1, OUTPUT); pinMode(D2, OUTPUT); pinMode(D3, OUTPUT); pinMode(D4, OUTPUT); } void showDigit(int p, int n) { digitalWrite(D1, LOW); digitalWrite(D2, LOW); digitalWrite(D3, LOW); digitalWrite(D4, LOW); if (p == 0) digitalWrite(D1, HIGH); else if (p == 1) digitalWrite(D2, HIGH); else if (p == 2) digitalWrite(D3, HIGH); else if (p == 3) digitalWrite(D4, HIGH); all_low(); switch (n){ case 0: digit0(); break; case 1: digit1(); break; case 2: digit2(); break; case 3: digit3(); break; case 4: digit4(); break; case 5: digit5(); break; case 6: digit6(); break; case 7: digit7(); break; case 8: digit8(); break; case 9: digit9(); break; } delay(1); } void printNumber(int n) { int x = floor(n / 1000); showDigit(0, x); n = n % 1000; x = floor(n / 100); showDigit(1, x); n = n % 100; x = floor(n / 10); showDigit(2, x); showDigit(3, n % 10); } int n=0; void loop() { int i; // n=random(1000,10000); for(i=0;i<20;i++) printNumber(n); n++; if(n>9999) n=0; }