Now that the design for the hardware and the software has been thought through, we are ready to start building. There are different ways that we can go about building the project.
First, we could assemble one piece of hardware at a time and develop the software for that piece and, once it's working, add additional pieces. This is a great approach and one that I often use on more complex projects because it allows us to focus on just a single feature. Each feature can be developed and tested, with integration coming later.
Second, we can fully assemble the hardware and then develop the software. This approach is often used for smaller projects that may not have a bunch of moving pieces. For this project, we will use the second approach since we only have the external I/O expander and the pushbutton.