Site Tools


C/C++ Programming For Arduino and Other Things


Arduino and many other microprocessors use a variety of the “C” programming language. While new users are generally encouraged to “dive in” and learn-by-doing (ie. copy, paste and edit other people's code), many of us would benefit from a little more structure to our learning. “C” is a powerful programming language that is suited to many applications beyond microprocessor control. C++ is an Object Oriented Programming language that shares C's roots. Learning syntax, data structures and coding conventions can help you create your own efficient and elegant programs from scratch.


  • Introduction to C - basic concepts and program structure
    • How Arduino implements C (wiring)
    • Tools (compiler, linker, debugger, bootloader)
  • Documentation
  • Data Types
  • Definitions and declarations
  • Operators
  • Expressions
  • Decisions
  • Loops
  • Scope
  • Anatomy of a Function
    • Program stack and local variables
  • Pointers
  • Preprocessor
  • Basic IO (standard IO)
  • Libraries
  • Memory management
  • Debugging
  • Using Git to share your code and collaborate

The Story So Far...

Around 8 of us got together for an introductory session on Thursday 15 August 2014 and Stephen offered to run through several “beginners'” sessions every second Thursday evening.

At that first session we covered a lot of the basic ground via a couple of slide presentations and some Q&A.

Here's the presentations we have viewed so far:

External Link to SlideShare

Stephen's Slides

Our session Thursday 25 September was the last one for the time being in this format and with Stephen guiding us. If others want to follow through or continue this workshop in another form, give a shout out on the forum


1. Simple SOS Beacon

Paul Garrett

Other details:

Structure and format to be decided following an initial get-together (Thursday evening 14 August 2014 at 6.15), where we'll have a presentation and chat about C/C++ for embedded systems. We will certainly need multiple sessions. We can then move on to “self-directed” learning as a group, tackling topics or projects together. We will certainly need a couple of C/C++ ninja guru types to “mentor” this.

Interests and capabilities amongst the initial group were very diverse. It was decided to have a few sessions for beginners and then reconsider the format.

Interest Register:

Member Availability Role / Notes Contact Comment
<Add your name here> <Availability> <Role / other notes> <Contact Details> <Comment>
workshops/archived/c_programming_for_arduino.txt · Last modified: 2014/11/11 01:15 by jambulance