The Arduino Platform and C Programming

Start Date: 07/05/2020

Course Type: Common Course

Course Link:

About Course

The Arduino is an open-source computer hardware/software platform for building digital devices and interactive objects that can sense and control the physical world around them. In this class you will learn how the Arduino platform works in terms of the physical board and libraries and the IDE (integrated development environment). You will also learn about shields, which are smaller boards that plug into the main Arduino board to perform other functions such as sensing light, heat, GPS tracking, or providing a user interface display. The course will also cover programming the Arduino using C code and accessing the pins on the board via the software to control external devices. Please note that this course does not include discussion forums. Upon completing this course, you will be able to: 1. Outline the composition of the Arduino development board 2. Describe what it means to program the board's firmware 3. Read board schematics 4. Install Arduino IDE 5. Describe what "shields" are and how they are used 6. Specify the role of libraries in the use of shields 7. Compile and run a program 8. Name C Variables and Types 9. Name common C operators 10. Use conditionals and loops 11. Explain functions, their definition and invocation 12. Explain the implications of global variables 13. Undertake the Arduino build process 14. Describe the role of the tools behind the IDE 15. Describe how to invoke functions in classes 16. Explain the structure of an Arduino sketch 17. Access the pins of the Arduino 18. Differentiate between digital and analog pin 19. Debug embedded software 20. Explain the importance of controllability and observability in the debugging process 21. Describe common debugging architectures for embedded systems 22. Explain how the UART Serial communication protocol works 23. Describe how the Arduino Serial library performs serial communication

Course Syllabus

This module provides an introduction to the Arduino environment which is composed of three things: the Arduino board, the Arduino IDE, and the Arduino-compatible shields together with their libraries. We first investigate the board, discussing all of its main components, inputs, and outputs. We discuss how each component is used and we examine the board schematic to see how they are connected. We then discuss the Arduino Integrated Development Environment (IDE) which is used primarily to write, compile, and upload code. We survey the interface of the IDE and discuss how to install and use it. We also examine the use of shields to extend the functionality of an Arduino-based system. We discuss how shield libraries provide a useful abstraction to facilitate programming.

Coursera Plus banner featuring three learners and university partner logos

Course Introduction

The Arduino Platform and C Programming Arduino is a breadboard-compatible computer and microcontroller-based electronic device, that allows you to make electronic devices that act as digital sensors and actuators. In this course, we'll explore board-specific software and hardware requirements, as well as popular development boards such as the Raspberry Pi and Beaglebone. We'll also focus on the use of boards as real-time clocks. You'll learn about the architecture of the boards themselves, and how to find the board’s firmware. This is all built around a very simple programming language called C++, and includes a number of examples that will enable you to understand the hardware and software components inside the board. This is the first course in the Digital Circuit Maker specialization, which brings you the skills you need to make boards, but bigger and better projects are always possible. The course is divided into four modules, each covering an in-depth subject. You will need to take the four modules in order, as taking them in sequence may result in a better understanding of your subject. The Arduino IDE (Application Development Environment) is used as the learning environment for the entire course, so you will need to install it and use the board simulator in order to use the features of the IDE. This is all built using the Arduino IDE, so you will have a working board that you can use for real projects. This course uses the Arduino IDE as its own programming environment, so you will need to download and use

Course Tag

Arduino C Programming Debugging

Related Wiki Topic

Article Example
Arduino The Arduino project provides the Arduino integrated development environment (IDE), which is a cross-platform application written in the programming language Java. It originated from the IDE for the languages "Processing" and "Wiring". It includes a code editor with features such as text cutting and pasting, searching and replacing text, automatic indenting, brace matching, and syntax highlighting, and provides simple "one-click" mechanisms to compile and upload programs to an Arduino board. It also contains a message area, a text console, a toolbar with buttons for common functions and a hierarchy of operation menus.
Arduino A minimal Arduino C/C++ sketch, as seen by the Arduino IDE programmer, consist of only two functions:
C Sharp (programming language) Meta programming via C# attributes is part of the language. Many of these attributes duplicate the functionality of GCC's and VisualC++'s platform-dependent preprocessor directives.
Arduino Arduino board designs use a variety of microprocessors and controllers. The boards are equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards ("shields") and other circuits. The boards feature serial communications interfaces, including Universal Serial Bus (USB) on some models, which are also used for loading programs from personal computers. The microcontrollers are typically programmed using a dialect of features from the programming languages C and C++. In addition to using traditional compiler toolchains, the Arduino project provides an integrated development environment (IDE) based on the Processing language project.
Arduino The Arduino IDE supports the languages C and C++ using special rules of code structuring. The Arduino IDE supplies a software library from the Wiring project, which provides many common input and output procedures. User-written code only requires two basic functions, for starting the sketch and the main program loop, that are compiled and linked with a program stub "main()" into an executable cyclic executive program with the GNU toolchain, also included with the IDE distribution. The Arduino IDE employs the program "avrdude" to convert the executable code into a text file in hexadecimal encoding that is loaded into the Arduino board by a loader program in the board's firmware.
Arduino A program for Arduino may be written in any programming language for a compiler that produces binary machine code for the target processor. Atmel provides a development environment for their microcontrollers, AVR Studio and the newer Atmel Studio.
Arduino In early 2008, the five cofounders of the Arduino project created a company, Arduino LLC, to hold the trademarks associated with Arduino. The manufacture and sale of the boards was to be done by external companies, and Arduino LLC would get a royalty from them. The founding bylaws of Arduino LLC specified that each of the five founders transfer ownership of the Arduino brand to the newly formed company.
Arduino At the World Maker Faire in New York on October 1, 2016, Arduino LLC co-founder and CEO Massimo Banzi and Arduino SRL CEO Federico Musto announced the merger of the two Arduino companies.
Arduino The original Arduino hardware was produced by the Italian company Smart Projects. Some Arduino-branded boards have been designed by the American companies SparkFun Electronics and Adafruit Industries. , 17 versions of the Arduino hardware have been commercially produced.
Atmel AVR The Arduino physical computing platform is based on an ATmega328 microcontroller (ATmega168 or ATmega8 in board versions older than the Diecimila). The ATmega1280 and ATmega2560, with more pinout and memory capabilities, have also been employed to develop the Arduino Mega platform. Arduino boards can be used with its language and IDE, or with more conventional programming environments (C, assembler, etc.) as just standardized and widely available AVR platforms.
The C++ Programming Language The C++ Programming Language was the first book to describe the C++ programming language, written by the language’s creator, Bjarne Stroustrup, and first published in October 1985. In the absence of an official standard, the book served for several years as the "de facto" documentation for the evolving C++ language until the release of the "ISO/IEC 14882:1998: Programming Language C++" standard on 1 September 1998. As the standard further evolved with the standardization of language and library extensions and with the publication of technical corrigenda, later editions of the book were updated to incorporate the new changes.
The C++ Programming Language "C++ Solutions" (ISBN 0-201-30965-3) is a companion book to the third edition of "The C++ Programming Language". It contains solutions to selected exercises of "The C++ Programming Language".
GM C platform (1985) Beginning in 1985, General Motors used the C platform or C-Body as the designation for its new front-wheel-drive full-sized automobile platform. The platform was similar to the H platform, with both sharing the same 110.8 in wheelbase. Most C-body vehicles were replaced with cars on the related G, H, and K platform designations.
Arduino At the end of 2008, Gianluca Martino's company, Smart Projects, registered the Arduino trademark in Italy and kept this a secret from the other cofounders for about two years. This was revealed when the Arduino company tried to register the trademark in other areas of the world (they originally registered only in the US), and discovered that it was already registered in Italy. Negotiations with Gianluca and his firm to bring the trademark under control of the original Arduino company failed. In 2014, Smart Projects began refusing to pay royalties. They then appointed a new CEO, Mr. Musto, who renamed the company to Arduino SRL and created a website named, copying the graphics and layout of the original This resulted in a rift in the Arduino development team. All Arduino boards are still available to consumers so the implications of this are uncertain.
Arduino Many Arduino-compatible and Arduino-derived boards exist. Some are functionally equivalent to an Arduino and can be used interchangeably. Many enhance the basic Arduino by adding output drivers, often for use in school-level education, to simplify making buggies and small robots. Others are electrically equivalent but change the form factor, sometimes retaining compatibility with shields, sometimes not. Some variants use different processors, of varying compatibility.
Fiat C-platform The Fiat C-platform was an automobile platform used in small family cars of the Fiat Group. The predecessors of the C-platform were the Type Three and Type Two platforms, and the successor is the new Compact platform which debuted in Alfa Romeo Giulietta in 2010.
C (programming language) The C++ programming language was devised by Bjarne Stroustrup as an approach to providing object-oriented functionality with a C-like syntax. C++ adds greater typing strength, scoping, and other tools useful in object-oriented programming, and permits generic programming via templates. Nearly a superset of C, C++ now supports most of C, with a few exceptions.
Fiat C-platform The first model to use this platform was the Fiat Stilo. Between 2007 and 2008 the C-platform was used by the new Fiat Bravo and the new third generation Lancia Delta with longer wheelbase. The C-platform was built in Cassino (Italy) and Betim to be used for the Brazilian versions of Stilo.
Arduino Arduino microcontrollers are pre-programmed with a boot loader that simplifies uploading of programs to the on-chip flash memory. The default bootloader of the Aduino UNO is the optiboot bootloader. Boards are loaded with program code via a serial connection to another computer. Some serial Arduino boards contain a level shifter circuit to convert between RS-232 logic levels and transistor–transistor logic (TTL) level signals. Current Arduino boards are programmed via Universal Serial Bus (USB), implemented using USB-to-serial adapter chips such as the FTDI FT232. Some boards, such as later-model Uno boards, substitute the FTDI chip with a separate AVR chip containing USB-to-serial firmware, which is reprogrammable via its own ICSP header. Other variants, such as the Arduino Mini and the unofficial Boarduino, use a detachable USB-to-serial adapter board or cable, Bluetooth or other methods, when used with traditional microcontroller tools instead of the Arduino IDE, standard AVR in-system programming (ISP) programming is used.
Arduino Arduino and Arduino-compatible boards use printed circuit expansion boards called "shields", which plug into the normally supplied Arduino pin headers. Shields can provide motor controls for 3D printing and other applications, Global Positioning System (GPS), Ethernet, liquid crystal display (LCD), or breadboarding (prototyping). Several shields can also be made do it yourself (DIY).