How can we display a 2 digit output on a 7 segment display ?

Displaying a 2-digit output on a 7-segment display involves driving each segment of each digit independently. Each digit is represented by a separate set of 7 LEDs (segments). Here’s a detailed explanation of how to achieve this using a microcontroller, specifically considering the common cathode 7-segment display type:

Components Needed:

  1. Common cathode 7-segment displays (2 digits)
  2. Microcontroller (e.g., Arduino)
  3. Resistors
  4. Jumper wires

Steps:

1. Identify the Pins:

  • Common Cathode Display: Identify the common cathode pin for each digit. Common cathode displays have one pin shared among all cathodes.
  • Segment Pins: Identify the pins corresponding to each LED segment for each digit.

2. Connect Display to Microcontroller:

  • Common Cathode Connection:
    • Connect the common cathode pin of the first digit to a digital pin on the microcontroller.
    • Connect the common cathode pin of the second digit to another digital pin on the microcontroller.
  • Segment Connections:
    • Connect the segment pins of both digits to different digital pins on the microcontroller. Ensure that corresponding segments are connected to the same pin for both digits.

3. Write a Program:

  • Segment Mapping: Create a mapping of segments to the corresponding digital pins on the microcontroller. For example:css
    const int segments[] = {A, B, C, D, E, F, G};
  • Digit Selection: Define which digit to display by setting the common cathode pins LOW. Activate one digit at a time while displaying the corresponding segments.cpp
    digitalWrite(commonCathodeDigit1, LOW); // Activate digit 1 digitalWrite(commonCathodeDigit2, HIGH); // Deactivate digit 2

4. Multiplexing:

  • Iterate Through Digits:
    • Use a loop to iterate through each digit and display the desired numbers.
    • For each digit, set the common cathode pin LOW to activate it and display the corresponding segments for the number to be shown.
  • Delay:
    • Introduce a small delay between switching digits to create the illusion of both digits being displayed simultaneously.

    cpp
    delay(5);

5. Display Numbers:

  • Segment Activation:
    • Activate the specific segments to display the desired numbers. Use the segment mapping created earlier.

    cpp
    digitalWrite(segments[0], HIGH); // Display segment A digitalWrite(segments[1], HIGH); // Display segment B // … Continue for all segments

  • Digit 1 Example:

    cpp
    digitalWrite(commonCathodeDigit1, LOW); // Activate digit 1 digitalWrite(commonCathodeDigit2, HIGH); // Deactivate digit 2 // Display number 5 on digit 1 digitalWrite(segments[0], HIGH); // Display segment A digitalWrite(segments[1], LOW); // Display segment B // … Continue for other segments delay(5); // Introduce delay

  • Digit 2 Example:

    cpp
    digitalWrite(commonCathodeDigit1, HIGH); // Deactivate digit 1 digitalWrite(commonCathodeDigit2, LOW); // Activate digit 2 // Display number 3 on digit 2 digitalWrite(segments[0], HIGH); // Display segment A digitalWrite(segments[1], HIGH); // Display segment B // … Continue for other segments delay(5); // Introduce delay

6. Repeat:

  • Repeat the Process:
    • Continuously loop through the digits, displaying the desired numbers on each.

Considerations:

  • Ensure that the common cathode pins are properly controlled to select the digit you want to display.
  • Adjust the delay value based on your specific requirements and the persistence of vision to create a stable display.

Extensions:

  • You can further enhance the display by incorporating additional features like dimming, scrolling, or displaying other characters.

Professional Assistance:

  • If working with complex circuits or larger displays, consider consulting with experienced electronics professionals or engineers for optimal results.

In summary, displaying a 2-digit output on a 7-segment display involves multiplexing the digits and controlling the segments through a microcontroller. By selectively activating segments for each digit in a loop, you can create the appearance of a continuous display of two digits.

Recent Updates