Arduino is an open-source electronics platform based on easy-to-use hardware and software.

Arduino boards are able to read inputs - light on a sensor, a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online. You can tell your board what to do by sending a set of instructions to the microcontroller on the board.

We just released a full course on the freeCodeCamp.org YouTube channel that will teach you how to use Arduino hardware and software.

Ashish Bansal developed this course. He will teach you everything you need to know to start creating your own electronics with Arduino. And you don't even have to have any hardware to follow along.

Arduino-uno-perspective-transparent

Here are all the topics covered in this comprehensive course:

Section 1: Objective of the course

  • Course Introduction

Section 2: Foundation of Electronics

  • Electricity
  • Static Electricity
  • Current Electricity
  • Voltage
  • Current
  • Resistance
  • Ohm’s Law
  • Ohm’s Law Example  
  • Resistances in Series and Parallel  
  • Resistance Color Coding

Section 3: Intro to Arduino Board

  • What is Microcontroller and Microprocessor
  • What category Arduino falls into?
  • Different Types of Arduino Boards
  • About Arduino
  • Parts of Arduino Uno
  • Technical Specifications of Arduino Uno

Section 4: Intro to Arduino IDE

  • What is IDE?
  • Downloading and Installing the official IDE
  • Preparing your computer
  • Testing the Arduino.  
  • What if you don’t have an Arduino board?

Section 5: Before we move ahead

  • What is breadboard?
  • How to make connections in breadboard?
  • Some safety instructions and Do’s and Don’ts  
  • Input & Output
  • Analog & Digital
  • Bit & Byte

Section 6: Arduino Programming

  • Introduction
  • The First Step into Programming
  • Bare minimum structure of an Arduino Program
  • Comments
  • White Spaces and Case Sensitivity
  • pinMode
  • digitalWrite and delay
  • Camel casing

Section 6.1 Introduction to Variables and Data Types

  • What are variables and data types  
  • Int data type
  • Arithmetic operators
  • Incrementing and Decrementing our variables
  • Float data type
  • Bool/Boolean data type
  • Byte data type
  • Char data type
  • Conclusion

Section 6.2 Variable Scope and Qualifiers

  • What is Scope? Global and Local Variables
  • What are Qualifiers, starting with const qualifier
  • Alternative to const qualifier: #define  
  • Static Qualifier

Section 6.2 Comparison and Logical Operators

  • What are comparison operators?
  • What are Logical Operators?

Section 6.3 Control Structures

  • if statement
  • else statement
  • A joke :P  
  • if - else Simulation
  • Introduction to loop control structures
  • For loop
  • While loop
  • do…while loop
  • break
  • continue
  • return
  • switch..case

Section 6.4 Remaining data types

  • Arrays
  • Strings

Section 6.5 Functions

  • What are functions?
  • Create your own functions
  • digitalRead & digitalWrite
  • analogRead and Analog to Digital Converter (ADC)
  • analogWrite and Pulse Width Modulation (PWM)

Section 6.7 Libraries

  • What are Libraries?
  • How to add Libraries in Arduino IDE
  • What's next?

Watch the full course below or on the freeCodeCamp.org YouTube channel (4-hour watch).