Book Image

C Programming for Arduino

By : Julien Bayle
Book Image

C Programming for Arduino

By: Julien Bayle

Overview of this book

Physical computing allows us to build interactive physical systems by using software & hardware in order to sense and respond to the real world. C Programming for Arduino will show you how to harness powerful capabilities like sensing, feedbacks, programming and even wiring and developing your own autonomous systems. C Programming for Arduino contains everything you need to directly start wiring and coding your own electronic project. You'll learn C and how to code several types of firmware for your Arduino, and then move on to design small typical systems to understand how handling buttons, leds, LCD, network modules and much more. After running through C/C++ for the Arduino, you'll learn how to control your software by using real buttons and distance sensors and even discover how you can use your Arduino with the Processing framework so that they work in unison. Advanced coverage includes using Wi-Fi networks and batteries to make your Arduino-based hardware more mobile and flexible without wires. If you want to learn how to build your own electronic devices with powerful open-source technology, then this book is for you.
Table of Contents (21 chapters)
C Programming for Arduino
About the Author
About the Reviewers

Data storage with EEPROMs

Until now, we learned and used the Arduino boards as totally electricity dependent devices. Indeed, they need current in order to execute tasks compiled in our firmware.

As we noticed, when we switch them off, every living variable and data is lost. Fortunately, the firmware isn't.

Three native pools of memory on the Arduino boards

The Arduino boards based on the ATmega168 chipset own three different pools of memory:

  • Flash memory

  • SRAM


The flash memory is also named program space. This is the place where our firmware is stored.

The SRAM stands for Static Random Access Memory and is the place where the running firmware stores, reads, and manipulates variables.

The EEPROM stands for Electrically Erasable Programmable Read-Only Memory. It is the place where we, programmers, can store things for long-term purposes. This is the place where our firmware sits, and anything in the EEPROM isn't erased should the board be switched off.

ATmega168 has:

  • 16000 bytes of Flash (2000...