We have covered quite some ground in this chapter. First, we looked at how to address the pins from code in a way that it works on both developer boards. Then we learned about GPIO as output, how to access LEDs directly, and how to use relays. We also explored GPIO as input, taking off several abstraction layers from Button reaching direct access to GPIO, which we then used for other sensors. Finally, we learned about more general ways in which GPIO is used by other components, such as DC motor controllers, stepper motors, distance sensors, and numeric displays.
It is time to move on to another protocol that is a bit more complex but also allows us to do more: PWM.