Arduino 2-Digit 7-Segment Display with Buttons: Sketch
As you could see from last week’s full Arduino sketch listing, the source code for the 2-digit 7-segment display project using buttons is strikingly similar to the one without the buttons; praise for ‘copy and paste‘! (It is worth noting, though, that ‘copy and paste‘ can be responsible for a higher percentage of bugs than I’d care to admit).
There are just a couple of snippets that I would like to comment on:
The first part of the loop() function checks whether either button has been pressed and increments the value of each digit.
Continue Reading »
Arduino 2-Digit 7-Segment Display with Buttons
This week we modify the original circuit and sketch to include two buttons, one to control each digit of the display.
Here’s what the setup looks like:
And here’s the complete sketch:
Continue Reading »
Arduino 2-Digit 7-Segment Display Counter: Sketch
This is part 3 in the project to control a 2-digit 7-segment display using an Arduino. Here is the first post on this 2-digit 7-segment display project.
So now on the the meatier sections of the sketch for this project:
Common anode displays are not immediately obvious as a segment is lit when the corresponding pin is made LOW. You might be surprised, though, that common anode displays are most often used because they can be used with 74xx series logic data-selector chips and PNP bipolar transistors.
Continue Reading »
Arduino 2-Digit 7-Segment Display Counter: Circuit
This week we’ll look at the circuit for the 2-digit 7-segment display counter using the Arduino.
There are a few options to control multiple displays:
- employing multiple controllers;
- using a 7-segment driver chip like the 7447;
- using a multi-display controller such as the MAXIM MAX7219;
- sequencing through the displays, which is what we have done in our example, as it requires no added hardware.
When we were using a single-digit display, we connected the common anode pin to our Vdd supply, but with two digits we have to drive them independently if we want them to display different digits!
A natural reaction would be to try to use two Arduino I/O pins, each driving a digit of the display. The problem with this scenario is that it is not possible to drive the common anode or cathode pin usingĀ Arduino I/O pins, as they cannot source or sink enough current to light all seven segments.
Continue Reading »
Arduino 2-Digit 7-Segment Display Counter
This month’s Arduino project is to build two 2-digit 7-segment LED display circuits and sketches, one that counts up and one that counts up using mini push buttons. The next posts will explain the circuits and the Arduino sketches.
Materials:
- Arduino Duemilanove
- 1 2-digit 7-segment display (I got a 50-piece LED display grab bag
for better value; the one I used was configured as shown) - 2 Mini push button switches
- 9 Resistors, 100 Ohm
- 2 Resistors, 10K Ohm
- 2 2N3906 transistors (PNP)

- 1 Solderless breadboard

- Jumper Wires in assorted lengths
Sketch for counting up without buttons:
Continue Reading »
Controlling a Seven-Segment Display Using Arduino Part 4
The third and final Arduino sketch uses bits to represent each segment and is a reduced code version of the previous sketch (1,210 bytes for sketch #3 instead of 1,852 bytes for sketch #2). A ten element array holds a byte for each number 0-9 that specifies what segments should be lit (pin low). Bit 0 corresponds to segment A, bit 1 to segment B and so on. In order to display the number 1, segments B and C need to be lit, so that is represented by the value 0b1111001. Function “lightSegments” reads these bits in sequence and sets the corresponding segments accordingly.
Controlling a Seven-Segment Display Using Arduino Part 3
The second sketch cycles through the numbers from 0 to 9, but only increments the display counter each time a button is pressed. Note that this code includes simple debouncing by introducing a short delay when the Arduino detects that the button has been pressed.











