All paths

C from zero

The language under every microcontroller, from a first hello over serial: types and sizes, overflow, if and switch, loops, functions and pointers, arrays and strings. Ends with a serial quiz you build and make your own.

Arduino Uno R3Free8 lessons7 h4 chapters2,600 XPCoding · Beginner+100 XP

0 of 8 done

What you will build

4 projects, built step by step

8 lessons in 4 chapters, about 7 hours on a simulated Arduino Uno R3. Free, in your browser, every step checked by the simulator.

Chapter 1 project

Types and sizes

Every variable is a box with a fixed number of bytes. sizeof on the Uno, the fixed-width types from stdint.h, what each one holds, and a char that is really a number.

Open it in the simulator
Chapter 2 project

if and switch

The program picks one way to go: serial commands chosen with a switch, a fall-through bug to find and fix, an else-if ladder for temperatures, and a button read with if.

Open it in the simulator
Chapter 3 project

Functions

Name a piece of work once: prototypes, parameters and return values, why a copy cannot change the caller and a pointer can, a local that hides a global, and a static counter that remembers.

Open it in the simulator
Chapter 4 project

Project: a serial quiz

Everything in the course in one program: questions in an array of structs, answers read from Serial, a switch to check them, a score, lamps for right and wrong, and a button to start again. Then make it yours.

Open it in the simulator
The map

Chapter by chapter

Each lesson opens when the one before it is done, and each chapter ends in a project.

Chapter 1

Talk and count

Print over serial, and the boxes numbers live in.

  1. Open215 XP

    Hello over serial

    The first C program on an Uno: setup and loop, print against println, a char that turns out to be a number, and a line built with snprintf every second.

    0 of 7 steps

  2. ProjectLocked380 XP

    Types and sizes

    Every variable is a box with a fixed number of bytes. sizeof on the Uno, the fixed-width types from stdint.h, what each one holds, and a char that is really a number.

    0 of 6 steps

Chapter 2

Do the math, pick a path

Operators and what overflow does, then if and switch.

  1. Locked215 XP

    Operators and overflow

    Integer division and the remainder, a uint8_t that wraps like an odometer, an int that overflows and why that is undefined, the fix with a wider type, and bitwise operators on three lamps.

    0 of 7 steps

  2. ProjectLocked480 XP

    if and switch

    The program picks one way to go: serial commands chosen with a switch, a fall-through bug to find and fix, an else-if ladder for temperatures, and a button read with if.

    0 of 8 steps

Chapter 3

Again, and by name

Loops, then functions, pointers and scope.

  1. Locked215 XP

    Loops

    Do it again: for when you know how many times, while when you wait for something, do-while that always runs once, continue and break, a loop inside a loop, and a while that waits for a button.

    0 of 7 steps

  2. ProjectLocked430 XP

    Functions

    Name a piece of work once: prototypes, parameters and return values, why a copy cannot change the caller and a pointer can, a local that hides a global, and a static counter that remembers.

    0 of 7 steps

Chapter 4

Data and a project

Arrays and C strings, then a quiz built from everything.

  1. Locked215 XP

    Arrays and strings

    Many values in a row: sum and max over an array, its length from sizeof, and text as a char array ending in a zero byte, with strlen and strcmp written by hand and a buffer that never overflows.

    0 of 7 steps

  2. ProjectLocked450 XP

    Project: a serial quiz

    Everything in the course in one program: questions in an array of structs, answers read from Serial, a switch to check them, a score, lamps for right and wrong, and a button to start again. Then make it yours.

    0 of 8 steps

Syllabus

Every lesson in the course

All 8 lessons, in order, each with what it covers. Any of them opens in the editor right away.

Chapter 1

Talk and count

  1. Hello over serialThe first C program on an Uno: setup and loop, print against println, a char that turns out to be a number, and a line built with snprintf every second.
  2. Types and sizesEvery variable is a box with a fixed number of bytes. sizeof on the Uno, the fixed-width types from stdint.h, what each one holds, and a char that is really a number.
Chapter 2

Do the math, pick a path

  1. Operators and overflowInteger division and the remainder, a uint8_t that wraps like an odometer, an int that overflows and why that is undefined, the fix with a wider type, and bitwise operators on three lamps.
  2. if and switchThe program picks one way to go: serial commands chosen with a switch, a fall-through bug to find and fix, an else-if ladder for temperatures, and a button read with if.
Chapter 3

Again, and by name

  1. LoopsDo it again: for when you know how many times, while when you wait for something, do-while that always runs once, continue and break, a loop inside a loop, and a while that waits for a button.
  2. FunctionsName a piece of work once: prototypes, parameters and return values, why a copy cannot change the caller and a pointer can, a local that hides a global, and a static counter that remembers.
Chapter 4

Data and a project

  1. Arrays and stringsMany values in a row: sum and max over an array, its length from sizeof, and text as a char array ending in a zero byte, with strlen and strcmp written by hand and a buffer that never overflows.
  2. Project: a serial quizEverything in the course in one program: questions in an array of structs, answers read from Serial, a switch to check them, a score, lamps for right and wrong, and a button to start again. Then make it yours.
Kits

Build it on your bench too

Every lesson runs in the simulator with nothing to buy. When you want the real thing, these kits have the parts.

Have a kit already?

Find your kit

Pick the starter kit you own and run every lesson in its manual with the same parts on the same pins.

See every kit
Questions

About C from zero

Is C from zero free?

Yes. All 8 lessons of C from zero are free and run in your browser, with nothing to install and no parts to buy before you start.

Do I need a real Arduino Uno R3?

No. Every lesson runs on a simulated Arduino Uno R3 with its parts on the canvas, and the simulator checks each step as you go. When you want to build it for real, the same wiring and code work on a real board.

How long does C from zero take?

About 7 hours: 8 lessons in 4 chapters, each one a few short steps. Your progress is kept, so you can stop after any lesson and pick up where you left off.

What will I build?

Each chapter ends in a project that puts it together: Types and sizes, if and switch, Functions and Project: a serial quiz.

Where do I start?

With "Hello over serial", and each lesson builds on the one before it. New to circuits? Electronics basics is the course that starts from zero.