int time = 5; // time of multiplexing must be in Milliseconds... average flicker rate 5 --> 20ms will work... int pinA = 11; // this code will be in video description int pinB = 10; int pinC = A0; int pinD = 8; int pinE = 9; int pinF = 12; int pinG = 13; int pinDP = 2; int DIG1 = A1; int DIG2 = A2; int DIG3 = A3; int DIG4 = A4; void choose_digit(char num) { switch(num) { default: digitalWrite(pinA,HIGH); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,HIGH); digitalWrite(pinE,HIGH); digitalWrite(pinF,HIGH); digitalWrite(pinG,LOW); digitalWrite(pinDP,LOW); break; case 1: digitalWrite(pinA,LOW); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,LOW); digitalWrite(pinE,LOW); digitalWrite(pinF,LOW); digitalWrite(pinG,LOW); digitalWrite(pinDP,LOW); break; case 2: digitalWrite(pinA,HIGH); digitalWrite(pinB,HIGH); digitalWrite(pinC,LOW); digitalWrite(pinD,HIGH); digitalWrite(pinE,HIGH); digitalWrite(pinF,LOW); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; case 3: digitalWrite(pinA,HIGH); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,HIGH); digitalWrite(pinE,LOW); digitalWrite(pinF,LOW); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; case 4: digitalWrite(pinA,LOW); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,LOW); digitalWrite(pinE,LOW); digitalWrite(pinF,HIGH); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; case 5: digitalWrite(pinA,HIGH); digitalWrite(pinB,LOW); digitalWrite(pinC,HIGH); digitalWrite(pinD,HIGH); digitalWrite(pinE,LOW); digitalWrite(pinF,HIGH); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; case 6: digitalWrite(pinA,HIGH); digitalWrite(pinB,LOW); digitalWrite(pinC,HIGH); digitalWrite(pinD,HIGH); digitalWrite(pinE,HIGH); digitalWrite(pinF,HIGH); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; case 7: digitalWrite(pinA,HIGH); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,LOW); digitalWrite(pinE,LOW); digitalWrite(pinF,LOW); digitalWrite(pinG,LOW); digitalWrite(pinDP,LOW); break; case 8: digitalWrite(pinA,HIGH); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,HIGH); digitalWrite(pinE,HIGH); digitalWrite(pinF,HIGH); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; case 9: digitalWrite(pinA,HIGH); digitalWrite(pinB,HIGH); digitalWrite(pinC,HIGH); digitalWrite(pinD,HIGH); digitalWrite(pinE,LOW); digitalWrite(pinF,HIGH); digitalWrite(pinG,HIGH); digitalWrite(pinDP,LOW); break; } } void pick_digit(int digit) { digitalWrite(DIG1,HIGH); digitalWrite(DIG2,HIGH); digitalWrite(DIG3,HIGH); digitalWrite(DIG4,HIGH); switch(digit){ case 1: digitalWrite(DIG1,LOW); break; case 2: digitalWrite(DIG2,LOW); break; case 3: digitalWrite(DIG3,LOW); break; default: digitalWrite(DIG4,LOW); break; } } // ------------------------ void seven_seg(int number) { unsigned char thousands = int(number/1000); unsigned char hunderds = int((number/100)%10); unsigned char tens = int((number/10)%10); unsigned char ones = int(number%10); choose_digit(thousands); pick_digit(1); delay(time); choose_digit(hunderds); pick_digit(2); delay(time); choose_digit(tens); pick_digit(3); delay(time); choose_digit(ones); pick_digit(4); delay(time); } void setup() { pinMode(DIG1,OUTPUT); pinMode(DIG2,OUTPUT); pinMode(DIG3,OUTPUT); pinMode(DIG4,OUTPUT); pinMode(pinA,OUTPUT); pinMode(pinB,OUTPUT); pinMode(pinC,OUTPUT); pinMode(pinD,OUTPUT); pinMode(pinE,OUTPUT); pinMode(pinF,OUTPUT); pinMode(pinG,OUTPUT); pinMode(pinDP,OUTPUT); } void loop() { int s = analogRead(A0); seven_seg(s); }