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
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Preface
Index

Playing audio files with the PCM library


Another way to play sounds is by reading already digitalized sounds.

Audio samples define digital content, often stored as files on filesystems that can be read and converted into audible sound.

Samples can be very heavy from the memory size point of view.

We are going to use the PCM library set up by David A. Mellis from MIT. Like other collaborators, he is happy to be a part of this book.

The reference page is http://hlt.media.mit.edu/?p=1963.

Download the library and install it.

Imagine that we have enough space in the Arduino memory spaces. How can we do the installation if we want to convert a sample on our disks as a C-compatible structure?

The PCM library

Check this code. It is also available in the Chapter09/PCMreader/ folder.

Our PCM reader

There is an array of unsigned char datatypes declared as const, and especially with the PROGMEM keyword named sample.

PROGMEM forces this constant to be put in the program space instead of RAM, because the latter...