In this chapter, you learned the basics of using buttons and potentiometers to generate user input in your programs. We looked at both synchronous polling and interrupt-based input. We also looked at some concepts like debouncing and hysteresis to help receive clean input signals. Finally, you made a variable brightness night light.
In the next chapter, we'll take a look at some more ways of providing output to the user, other than printing text to the terminal.