For a project I am doing with kids we decided to use 3-digit 7-segment display. As we intended to video the project (eventually), it was easy to make decision that we're gonna drive every digit fully - no multiplexing. Not only that simplifies programming logic but it also makes display rock steady during video - no flickering here.
However, with so many pins to drive, I got a bit scared about maximum power consumption MCU would need to deal with. Assuming we go with 10 mA per LED, what is actually the maximum current we'll need?
The easy answer is 7x10 = 70 mA per digit, bringing it to 210 mA total. Assuming all digits are fully on (we haven't used decimal point - otherwise it would be 8) we would indeed need that much current. However, realistically, are we always going to have number 8 on display?
For this purpose, we've gone and created a table - how many segments we actually use for each digit:
Digit | Segments | Current |
---|---|---|
0 | 6 | 60 mA |
1 | 2 | 20 mA |
2 | 5 | 50 mA |
3 | 5 | 50 mA |
4 | 4 | 40 mA |
5 | 5 | 50 mA |
6 | 6 | 60 mA |
7 | 3 | 30 mA |
8 | 7 | 70 mA |
9 | 6 | 60 mA |
Median | 5 | 50 mA |
As you can see, the most common result ended up 5 segments being lighted. This tells we actually can usually count on 150 mA of precious current needed.
But wait, since our project will count from 0 to 255, we actually won't have all our digits on all of the time. We need to calculate how many segments we actually have lighted for numbers that we need. An eternity in Excel later we've found that median current needed (assuming random distribution) was 120 mA. Maximum was 180 mA (darn 208!) and minimum was 20 mA.
While 180 mA is not trivial, it is definitely less than 210 mA we originally had to count.