The chapter list includes a new chapter added to the second edition of the book.
The reasons that this book came into existance and maybe why someone might like to read it.
Introduces the architypal "Hello World" first program, the Arduino IDE and the Serial Monitor.
An brief introduction to the binary number system, machine code, assembler and high level programming languages.
char variable arithmatic
Float and Double variables
Declaring and defining variables
The const keyword
Static variable modifier
Volatile variable modifier
Register variable modifier
Operators for pointers
In-built conversion functions
The if statement
switch / case
The for loop
The while loop
Do while loop
The goto statement
Pointers to pointers
Pointers to functions
Functions that return a function pointer
Pointers to a struct
Pointers to unions
Using union data types
Arduino math functions
Functions implemented as macros
Making a noise
Pin event monitoring
An introduction to the Arduino IDE compile and link process and some handy tips on debugging program code.
Digital pin input and output
32 bit board ADC
Interrupt Service Routines (ISR)
ISR variations: shared, empty etc.
Volatile variable modifier
Enabling and disabling interrupts
External Interrupts (with worked example)
Pin change interrupts
Power saving and sleep modes
PWM as voltage control
Timer overflow interrupts
Compare match interrupts
Servo mini project.
Stepper motor mini project
Half-stepper mini project
Alternate stepper libraries
Mini project to write a state machine focussing on incremental development and testing.
Basic bubble sort
Shell sort algorithm
Quick sort algorithm
Xor integer swap
Reversing a sort order
Sorting non-numeric data
Using the library quicksort
Binary search algorithm
An extended project that explores data compression, FiFo queue and a binary tree.
Also shows how an Arduino can become a programming companion that writes code.
Develops the FiFo queue and binary tree structures into generalised C libraries.
Elements of a C++ class
Static class members
Instance member pointers
A mini project to control DC motors. Basic control is extended to include speed and dsitance travelled monitoring. Includes developing a class that consumes interrupts.
An introduction to communications interfaces including:
Serial comms mini project
I2C (Two Wire) mini project
Serial Peripheral Interface mini project
Parallel comms mini project using ports and conditional compilation with compiler directives.
A new chapter for the second edition.
The chapter takes the reader through a project to build a motorised skylight opener/closer based on an Arduino MKR WiFi 1010 board.
The chapter includes details on connecting to a local WiFi network and serving an HTML based user interface to control the device.
Setting the Real Time Clock from an Internet time source is included together with making use of remote Web Services.
Making use of printf() and vsnprintf_P() for enhanced text displays.
A range of ideas and techniques for minimising SRAM usage and dealing with memory collision crashes..
A run through the functions availabe in the libraries available, by default, within the Arduino IDE..
A list of components used in the mini projects included in this book.
Not just the usual ASCII table, although that is there, but a couple of late programming tasks.
Lists the C operators in precedence order
The book includes and extensive index with page numbers for all key references.
The index is intended to support the use of this book as an ongoing C language and Arduino reference work.