How to seperate numbers on a single 2 digit 7 segment LED display

Hello everyone,

I have a 2 digit 7 segment display that cycles from 22, 44, 66, 88. However I would like the numbers to cycle from 22, 24, 26, 28, 42, 44.....etc. How would I approach this/ how can I get two different numbers to display at the same time?

/*
  Showing number 0-9 on a Common Anode 7-segment LED display
  Displays the numbers 0-9 on the display, with one second in-between.
    A
   ---
F |   | B
  | G |
   ---
E |   | C
  |   |
   ---
    D


 //Numbers

2

  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, HIGH);
  digitalWrite(G, LOW);
  delay(1000); 

 4
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, HIGH);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 

 6
   digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, HIGH);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 
  
  8
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 


 */
 
// Pin 2-8 is connected to the 7 segments of the display.

int A = 2;
int B = 3;
int C = 4;
int D = 5;
int E = 6;
int F = 7;
int G = 8;
int Digit1 = 9; //Digit 1 (+)
int Digit2 = 10; //Digit 2 (+)

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pins as outputs.
  pinMode(A, OUTPUT);     
  pinMode(B, OUTPUT); 
  pinMode(C, OUTPUT); 
  pinMode(D, OUTPUT); 
  pinMode(E, OUTPUT); 
  pinMode(F, OUTPUT); 
  pinMode(G, OUTPUT);  
  pinMode(Digit1, OUTPUT); 
  pinMode(Digit2, OUTPUT);  
}

// the loop routine runs over and over again forever:
void loop() {
  //2
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, HIGH);
  digitalWrite(G, LOW);
  delay(2000); 
  
  //4
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, HIGH);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 

  //6
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, HIGH);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 

  //8
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 
}

Strictly speaking, you can't!

But you can show one digit on the left while the right is blank. Then show a different digit on the right while the left is blank. Swap between these two fast enough, and the eye thinks it sees different digits on right and left at the same time. Its called "multiplexing".

Paul

Thanks for the reply!

Ahhh I see, very clever. However if I upload the example below the rest of the LED's that make up the 2 and 4 on opposite ends are still dimly lit. Is there a way to prevent this?

/*
  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


 //Numbers

2

  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, HIGH);
  digitalWrite(G, LOW);
  delay(1000); 

 4
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, HIGH);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 

 6
   digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, HIGH);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 
  
  8
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(2000); 


 */
 
// Pin 2-8 is connected to the 7 segments of the display.

int A = 2;
int B = 3;
int C = 4;
int D = 5;
int E = 6;
int F = 7;
int G = 8;
int Digit1 = 9; //Digit 1 (+)
int Digit2 = 10; //Digit 2 (+)

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pins as outputs.
  pinMode(A, OUTPUT);     
  pinMode(B, OUTPUT); 
  pinMode(C, OUTPUT); 
  pinMode(D, OUTPUT); 
  pinMode(E, OUTPUT); 
  pinMode(F, OUTPUT); 
  pinMode(G, OUTPUT);  
  pinMode(Digit1, OUTPUT); 
  pinMode(Digit2, OUTPUT);  
}

// the loop routine runs over and over again forever:
void loop() {
  //2
  digitalWrite(Digit1, HIGH); 
  digitalWrite(Digit2, LOW);
  digitalWrite(A, LOW);   
  digitalWrite(B, LOW);
  digitalWrite(C, HIGH);
  digitalWrite(D, LOW);
  digitalWrite(E, LOW);
  digitalWrite(F, HIGH);
  digitalWrite(G, LOW);
  delay(1); 
  
  //4
  digitalWrite(Digit1, LOW); 
  digitalWrite(Digit2, HIGH);
  digitalWrite(A, HIGH);   
  digitalWrite(B, LOW);
  digitalWrite(C, LOW);
  digitalWrite(D, HIGH);
  digitalWrite(E, HIGH);
  digitalWrite(F, LOW);
  digitalWrite(G, LOW);
  delay(1); 
}

LPDE:
Ahhh I see, very clever. However if I upload the example below the rest of the LED's that make up the 2 and 4 on opposite ends are still dimly lit. Is there a way to prevent this?

Sure is.

Write your code properly.

Think about what you are doing.

To change from one digit to the other,

First turn the previous one off.

Then set up the pattern for the next digit.

Then turn that one on.

Once you get that fixed, the next trick is to do all this without damaging your Arduino. What value series resistors are you using, and how many. And transistors?

hello ! I'm having troubles separating the 2 digit display in my SevSeg display, do you have a sample program on how to separate the 2 display, I tried searching but I cant seem to fit with my program :> tnx !

Please read this:-
How to use this forum

Then start your own thread rather than hijack a year old one.

Provide more details of what you have ( schematic ) and the code you have used.