Lesson plan

Embedded on the Arduino Uno lesson plan

One board, twenty pins and a C++ sketch. From a lamp you switch to a game you can play.

9 chapters, 16 lessons, about 12 hours, on the Arduino Uno R3. Every lesson runs in the browser, with nothing to install.

The unit

Objectives and materials

By the end, students can

  • Make a pin do something, then make several pins do something in order.
  • Pull-ups, why pressed reads low, and the difference between a level and an edge.
  • Ask the time instead of waiting for it, and the board stops being deaf.
  • The ADC, a divider, and deciding something from a number that drifts.
  • One pin, any brightness, and the six pins on this board that can do it.
  • The board talks, and then it listens.
  • A handler that runs the moment a pin changes, and the rules that come with it.
  • Seven LEDs in the shape of an eight, and how to run out of pins.
  • Put all of it together twice, in something you would show somebody.

Materials for the whole unit

  • 74HC04 hex inverter
  • Arduino Uno R3
  • Buzzer
  • Full-size breadboard
  • LED x 5
  • Piezo speaker
  • Pushbutton x 2
  • Resistor x 5
  • Seven segment display
  • Slide switch

Every part is already on the simulator’s bench, so there is nothing to buy or hand out. The counts are the most any one lesson uses, if you build it on real breadboards too.

Chapter 1. About 2 h 10 min

Driving things

Make a pin do something, then make several pins do something in order.

LessonTimeWhat students do
Blink: the first programAn Arduino Uno, one pin and a program. Drive an output from code, watch the timing be real, and find out what delay() costs you.40 min
  1. The board, the pin and the program
  2. Press Run
  3. The LED on the breadboard
  4. Blink it five times a second
  5. What delay() costs you
Two outputs, taking turnsA second lamp on a second pin. What pinMode actually does, why a pin is not an output until you say so, and what happens to the timing when you change one number.45 min
  1. Two pins, two lamps, one ground
  2. Run it
  3. The second lamp
  4. Pin 12 is doing its own work
  5. Change one number
  6. Where this runs out
Five outputs and a sequenceA pelican crossing on four pins, with a request button and an inverter chip that answers it faster than the sketch can. Where software ends and hardware starts.45 min
  1. What is on the board
  2. Run the sequence
  3. Watch the green lamp
  4. Press the button and watch what is fast
  5. And then the sketch catches up
  6. Count what you would need without the chip

Materials

  • 74HC04 hex inverter
  • Arduino Uno R3
  • Full-size breadboard
  • LED x 5
  • Pushbutton
  • Resistor x 5

Check for understanding

Each student finishes "Five outputs and a sequence" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "Count what you would need without the chip".

Chapter 2. About 1 h 30 min

Reading a button

Pull-ups, why pressed reads low, and the difference between a level and an edge.

LessonTimeWhat students do
Reading a pin, and the pull-upA button with no resistor of its own, an input that must never float, and why pressed reads low. The single most common wiring in embedded work.45 min
  1. Why pressed means low
  2. Watch the pin go low
  3. And the lamp follows
  4. Check the pin rather than the lamp
  5. Turn it upside down
  6. The three wirings, and when to use each
Press once for on, once for offThe difference between a level and an edge, a variable that remembers, and the debounce window that makes a mechanical switch usable.45 min
  1. A level is not an event
  2. Run it
  3. One press, one change
  4. And the lamp agrees
  5. And off again
  6. What the debounce window costs

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • LED
  • Pushbutton
  • Resistor

Check for understanding

Each student finishes "Press once for on, once for off" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "What the debounce window costs".

Chapter 3. About 1 h 30 min

Timing without delay

Ask the time instead of waiting for it, and the board stops being deaf.

LessonTimeWhat students do
Two rates at once, without delayThe pattern that unlocks everything else: keep when each thing last happened, and ask the time instead of waiting for it.45 min
  1. Why delay cannot do this
  2. Run it and count the red one
  3. And the green one
  4. Both lamps, both wired
  5. Change one rate
  6. Two details that are not optional
Blinking and listening at the same timeThe payoff for non-blocking code: a board that keeps a rhythm and still answers a button in microseconds. Feel the difference by breaking it.45 min
  1. One loop, two jobs
  2. The blink keeps its rhythm
  3. And the button still gets through
  4. The second lamp follows your finger
  5. Count five
  6. Break it on purpose

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • LED x 2
  • Pushbutton
  • Resistor x 2

Check for understanding

Each student finishes "Blinking and listening at the same time" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "Break it on purpose".

Chapter 4. About 1 h 30 min

Reading a voltage

The ADC, a divider, and deciding something from a number that drifts.

LessonTimeWhat students do
Reading a voltageThe ADC turns a voltage into a number from 0 to 1023. Build a divider, read two taps of it, and work out what a count is worth.45 min
  1. What an ADC does
  2. Read the top tap
  3. And what it is in volts
  4. Move the tap
  5. Change the chain and predict the answer
  6. What you would actually put there
Deciding from a readingA lamp that fades up when the sensor says dark, and an indicator that does not. What a threshold is, why a ramp looks better than a jump, and where hysteresis comes in.45 min
  1. The sensor, and what stands in for it
  2. Run it, and make it dark
  3. And the lamp comes up
  4. Read the log
  5. Let it go
  6. The problem a threshold has

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • LED x 2
  • Pushbutton
  • Resistor x 4
  • Slide switch

Check for understanding

Each student finishes "Deciding from a reading" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "The problem a threshold has".

Chapter 5. About 45 min

PWM and brightness

One pin, any brightness, and the six pins on this board that can do it.

LessonTimeWhat students do
Brightness from a digital pinEight duty cycles on pin 9 next to a pin that can only be on or off. What PWM is, which pins have it, and what it is not good for.45 min
  1. A pin has two states, so how is there a middle
  2. Watch the steps
  3. Full brightness
  4. The pin with no timer
  5. Make the sweep fast
  6. What PWM is not for

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • LED x 2
  • Resistor x 2

Check for understanding

Each student finishes "Brightness from a digital pin" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "What PWM is not for".

Chapter 6. About 1 h 30 min

Serial in and out

The board talks, and then it listens.

LessonTimeWhat students do
Making the board talkPrinting is how you find out what a board thinks. What Serial.begin does, what a baud rate really costs, and how to print a number without lying about it.45 min
  1. The one debugging tool you always have
  2. Say hello
  3. Printing a number
  4. The uptime, once a second
  5. Add a line of your own
  6. What printing costs
Taking commandsThe monitor is an input too. Read characters without blocking, act on them, and answer everything, including the things you do not understand.45 min
  1. Two functions, and neither one waits
  2. Run it and read the menu
  3. Send it a command
  4. And turn it off
  5. Get it wrong on purpose
  6. Try the third command, then add one

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • LED
  • Resistor

Check for understanding

Each student finishes "Taking commands" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "Try the third command, then add one".

Chapter 7. About 45 min

Interrupts

A handler that runs the moment a pin changes, and the rules that come with it.

LessonTimeWhat students do
Reading a button, and printing what it saysA pull-up, a pin that reads low when the button is pressed, and a count printed to the serial monitor. Finish by catching the contacts bouncing.45 min
  1. A pull-up, and why pressed means low
  2. Watch the pin go low
  3. Make the board say so
  4. Count five presses
  5. Catch the contacts bouncing
  6. What you would do about it

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • LED
  • Pushbutton
  • Resistor

Check for understanding

Each student finishes "Reading a button, and printing what it says" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "What you would do about it".

Chapter 8. About 45 min

Showing a number

Seven LEDs in the shape of an eight, and how to run out of pins.

LessonTimeWhat students do
Showing a numberA seven segment display is seven LEDs in a pattern. Drive it from a table, roll a die on it, and find out why one resistor in the common return is a compromise.45 min
  1. Seven LEDs in the shape of an eight
  2. Run it
  3. Roll it
  4. Watch a segment pin
  5. One resistor for all of it
  6. Count the pins, and what to do about it

Materials

  • Arduino Uno R3
  • Full-size breadboard
  • Pushbutton
  • Resistor
  • Seven segment display

Check for understanding

Each student finishes "Showing a number" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "Count the pins, and what to do about it".

Chapter 9. About 1 h 30 min

Two small projects

Put all of it together twice, in something you would show somebody.

LessonTimeWhat students do
Project: a reaction timerA lamp at a random moment, a button, and the milliseconds in between. Randomness, measuring time, and catching a cheat.45 min
  1. The plan before the wiring
  2. Run it and read the rules
  3. Cheat, and get caught
  4. Wait for the lamp
  5. Take your time
  6. Make it yours
Project: a metronomeA click on a piezo, a lamp on the beat, and two buttons that change the tempo without missing one. Making a note out of a pin.45 min
  1. A note is a pin toggling
  2. Run it and listen
  3. A lamp on every beat
  4. Speed it up
  5. And slow it down
  6. What the click costs, and what to add

Materials

  • Arduino Uno R3
  • Buzzer
  • Full-size breadboard
  • LED
  • Piezo speaker
  • Pushbutton x 2
  • Resistor

Check for understanding

Each student finishes "Project: a metronome" on their own, without opening the hints. The simulator checks 6 of its 6 steps as they go.

Then ask each one to explain, in a sentence or two, the last thing it asked of them: "What the click costs, and what to add".

Your class

Teach this unit as a class

Start a class from this course and its 16 lessons are assigned in one go, in order. Students join with a six-character code or printed login cards, and each one’s work comes back to you.

The class tools are free for 30 days for one class of up to 20 students, with no card. The lessons themselves are free either way.