C Programming for Arduino
eBook - ePub

C Programming for Arduino

Julien Bayle

Share book
  1. 512 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

C Programming for Arduino

Julien Bayle

Book details
Book preview
Table of contents
Citations

About This Book

In Detail

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.

Approach

Written as a practical Packt book brimming with engaging examples, C Programming for Arduino will help those new to the amazing open source electronic platform so that they can start developing some great projects from the very start.

Who this book is for

This book is great for people who want to learn how to design & build their own electronic devices. From interaction design art school students to the do-it-yourself hobbyist, or even simply people who want to learn electronics, this book will help by adding a new way to design autonomous but connected devices.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is C Programming for Arduino an online PDF/ePUB?
Yes, you can access C Programming for Arduino by Julien Bayle in PDF and/or ePUB format, as well as other popular books in Informatik & Programmierung in C. We have over one million books available in our catalogue for you to explore.

Information

Year
2013
ISBN
9781849517584
Edition
1

C Programming for Arduino


Table of Contents

C Programming for Arduino
Credits
About the Author
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Let's Plug Things
What is a microcontroller?
Presenting the big Arduino family
About hardware prototyping
Understanding Arduino software architecture
Installing Arduino development environment (IDE)
Installing the IDE
How to launch the environment?
What does the IDE look like?
Installing Arduino drivers
Installing drivers for Arduino Uno R3
Installing drivers for Arduino Duemilanove, Nano, or Diecimilla
What is electricity?
Voltage
Current and power
And what are resistors, capacitors, and so on?
Wiring things and Fritzing
What is Fritzing?
Power supply fundamentals
Hello LED!
What do we want to do exactly?
How can I do that using C code?
Start with a new blank page
Setting up the environment according the board we are using
Let's write the code
Let's upload the code, at last!
Summary
2. First Contact with C
An introduction to programming
Different programming paradigms
Programming style
C and C++?
C is used everywhere
Arduino is programmed with C and C++
The Arduino native library and other libraries
Discovering the Arduino native library
Other libraries included and not directly provided
Some very useful included libraries
Some external libraries
Checking all basic development steps
Using the serial monitor
Baud rate
Serial communication with Arduino
Serial monitoring
Making the Arduino talk to us
Adding serial communication to Blink250ms
Serial functions in more detail
Serial.begin()
Serial.print() and Serial.println()
Digging a bit…
Talking to the board from the computer
Summary
3. C Basics – Making You Stronger
Approaching variables and types of data
What is a variable?
What is a type?
The roll over/wrap concept
Declaring and defining variables
Declaring variables
Defining variables
String
String definition is a construction
Using indexes and search inside String
charAt()
indexOf() and lastIndexOf()
startsWith() and endsWith()
Concatenation, extraction, and replacement
Concatenation
Concat()
Using the + operator on strings
Extract and replace
substring() is the extractor
Splitting a string using a separator
Replacement
Other string functions
toCharArray()
toLowerCase() and toUpperCase()
trim()
length()
Testing variables on the board
Some explanations
The scope concept
static, volatile, and const qualifiers
static
volatile
const
Operators, operator structures, and precedence
Arithmetic operators and types
Character types
Numerical types
Condensed notations and precedence
Increment and decrement operators
Types manipulations
Choosing the right type
Implicit and explicit types conversions
Implicit type conversion
Explicit type conversion
Comparing values and Boolean operators
Comparison expressions
Combining comparisons with Boolean operators
Combining negation and comparisons
Adding conditions in the code
if and else conditional structure
Chaining an if…else structure to another if…else structure
if…else structure with combined comparisons expressions
Finding all cases for a conditional structure
switch…case…break conditional structure
Ternary operator
Making smart loops for repetitive tasks
for loop structure
Playing with increment
More complex increments
Decrements are negative increments
Using imbricated for loops or two indexes
while loop structure
do…while loop structure
Breaking the loops
Infinite loops are not your friends
Summary
4. Improve Programming with Functions, Math, and Timing
Introducing functions
Structure of a function
Creating function prototypes using the Arduino IDE
Header and name of functions
Body and statements of functions
Benefits of using functions
Easier coding and debugging
Better modularity helps reusability
Better readability
C standard mathematical functions and Arduino
Trigonometric C functions in the Arduino core
Some prerequisites
Difference between radians and degrees
Cosine, sine, and tangent
Arccosine, arcsine, and arctangent
Trigonometry functions
Exponential functions and some others
Approaching calculation optimization
The power of the bit shift operation
What are bit operations?
Binary numeral system
Easily converting a binary number to a decimal number
AND, OR, XOR, and NOT operators
AND
OR
XOR
NOT
Bit shift operations
It is all about performance
The switch case labels optimization techniques
Optimizing the range of cases
Optimizing cases according to their frequency
Smaller the scope, the better the board
The Tao of returns
Direct returns concept
Use void if you don't need return
Secrets of lookup tables
Table initialization
Replacing pure calculation with array index operations
Taylor series expansion trick
The Arduino core even provides pointers
Time measure
Does the Arduino board own a watch?
The millis() function
The micros() function
Delay concept and the program flow
What does the program do du...

Table of contents