Introduction
  • Prologue
  • The Road Ahead
  • What is Arduino?
  • Using the Simulator (Tinkercad)
  • Required Parts (for Hands-On)
  • Installing the Arduino IDE (for Hands-On)
  • Getting to Blink
  • Challenge: Change Blink
  • Solution: Change Blink
  • Debugging with Serial
  • Challenge: Say Your Name over Serial
  • Solution: Say Your Name over Serial
Programming Basics
  • Introduction: Programming in Arduino
  • Syntax, Program Flow, and Comments
  • Literals, Variables, and Data Types
  • Arithmetic Operators
  • Challenge: Count with a Variable
  • Solution: Count with a Variable
  • Conditional Statements
  • Challenge: Fizz
  • Solution: Fizz
  • Loops
  • Challenge: Countdown and Wait
  • Solution: Countdown and Wait
  • Writing Functions
  • Challenge: power()
  • Solution: power()
  • Scope
  • Challenge: Sum Digits
  • Solution: Sum Digits
  • Arrays and Strings
  • Challenge: Compute the Average
  • Solution: Compute the Average
  • Finding and Fixing Bugs
  • Challenge: Fix All the Bugs!
  • Solution: Fix All the Bugs!
  • Using the String Object
  • Challenge: L33t Sp34k
  • Solution: L33t Sp34k
  • Reading Serial Input
  • Challenge: Combine First and Last Name
  • Solution: Combine First and Last Name
  • Random Numbers
  • Challenge: Dice Roller
  • Solution: Dice Roller
Electrical Engineering Basics
  • Introduction: What is a Circuit?
  • Using a Breadboard
  • Reading a Schematic
  • Applying Ohm's Law
  • Challenge: Find the Right Resistor
  • Series vs. Parallel Resistors
  • Challenge: Compute Equivalent Resistance
  • Solution: Compute Equivalent Resistance
  • How to Read the Resistor Code
  • Challenge: Translate Some Resistors
  • Solution: Translate Some Resistors
  • Voltage Dividers
  • Challenge: Make 3V from 5V
  • Solution: Make 3V from 5V
  • Diodes
  • Challenge: Reverse Polarity Protection
  • Solution: Reverse Polarity Protection
  • LEDs
  • Challenge: Find the Limiting Resistor
  • Solution: Find the Limiting Resistor
  • Debugging Circuits
Fun with LEDs
  • Introduction: What is GPIO?
  • Controlling LEDs
  • Challenge: FizzBlink
  • Solution: FizzBlink
  • Pulse Width Modulation
  • analogWrite()
  • Challenge: Color Mixer
  • Solution: Color Mixer
  • Using a Shift Register
  • Challenge: Simple Larson Scanner
  • Solution: Simple Larson Scanner
  • Including a Library
  • Using NeoPixels
  • Challenge: Fun Patterns
  • Solution: Fun Patterns
  • Project: Advanced Larson Scanner
User Input
  • Introduction: User Input
  • Switches
  • Challenge: LED Selector
  • Solution: LED Selector
  • Buttons
  • Challenge: Manual Blink
  • Solution: Manual Blink
  • External Pull-Up Resistor
  • Challenge: Toggle Button
  • Solution: Toggle Button
  • Internal Pull-Up Resistor
  • Challenge: Push to Count
  • Solution: Push to Count