Chapter 9. Smaller Systems

Now that we have the Arduino IDE ready to go, we can embark on the physically satisfying world of writing C code to control things! LED things. Sensor things. Button things. So many things! We’ll also dip our toes into the Internet of Things (IoT) in “IoT and Arduino”.

In this chapter, I’ll touch on several Arduino peculiarities (most of them helpful, some of them frustrating) while building some small but complete projects that you can try yourself. “Getting the Hardware: Adafruit” contains links for all the various components and microcontrollers I use in case you want to replicate any of the projects exactly.

The Arduino Environment

I’m sure you noticed that we did not write “complete” C programs in Chapter 8. We had no main() function, and for the earlier examples, we didn’t even import the usual header files. Yet we clearly had access to new functions and things like the HIGH and LOW values we used to blink our first LED.

Where did those extras come from? It can feel at times like the IDE is providing a bit of magic. It’s not, of course, but it is doing a lot of work behind the scenes in the hopes of making you more productive. I want to point out some of that hidden work so that you have a better understanding of the distinction between C itself and the supporting elements provided by the Arduino IDE. Inevitably, you’ll head to the web to search for examples of new topics as you build more of your own projects. Knowing ...

Get Smaller C now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.