I will not go over every detail but the code will be provided so that you can build your own counter. I will try my best to explain the working of this circuit...here goes.
First start by opening your programming software. I used Arduino Software. The beginning of the code defines the led pins and push buttons. My code used pin 2 & 3 for the up and down counter (known as interrupt pins on the Arduino Uno & a few other boards). The buttons are then set to HIGH so that when they are pushed, the state is changed to LOW.(Pull-up resistor)
For the eight binary pins use pins (5-12). Also included is a variable to store the number of times a button is pushed. This is very important for how the micro controller works to output the binary number. With that in mind debouncing the buttons are essential in correctly identifying when in fact there was or was not a button press which increments and decrements the counter.
The attachInterrupt syntax is as follows attachInterrupt(pin, ISR, mode) ; please read more about it at the link provided.
The i++ will increment the counter i.e 0000 0000 becomes 0000 0001 when the up button is pressed and back to 0000 0000 if the down counter is pressed. The code loop basically converts the number of button pushes, stores it as a string, gets the length of the string and then outputs it to the leds. Please note that for convenience I choose the the red led for the LSB (least significant bit).
- Ground the left side of the button (wire the bottom left pin to ground) repeat step one for the second button.
- The top right pin of the button should connect to 3 (count up) and pin 2 (count down)
- Ground each led pin. (flat side)
- Starting with the red led connect the anode (+) side to pin 5 *include a resistor(680 ohms is ideal). Repeat steps until all leds are connected to the Arduino.
- Be sure to add jumpers across the board bus lines to have power down both strips of the prototype bread board. I used the 3.3V and GND for the voltage supply.