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.
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.
Driving things
Make a pin do something, then make several pins do something in order.
| Lesson | Time | What 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 |
|
| 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 |
|
| 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 |
|
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".
Reading a button
Pull-ups, why pressed reads low, and the difference between a level and an edge.
| Lesson | Time | What 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 |
|
| 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 |
|
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".
Timing without delay
Ask the time instead of waiting for it, and the board stops being deaf.
| Lesson | Time | What 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 |
|
| 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 |
|
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".
Reading a voltage
The ADC, a divider, and deciding something from a number that drifts.
| Lesson | Time | What 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 |
|
| 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 |
|
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".
PWM and brightness
One pin, any brightness, and the six pins on this board that can do it.
| Lesson | Time | What 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 |
|
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".
Serial in and out
The board talks, and then it listens.
| Lesson | Time | What 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 |
|
| 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 |
|
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".
Interrupts
A handler that runs the moment a pin changes, and the rules that come with it.
| Lesson | Time | What 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 |
|
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".
Showing a number
Seven LEDs in the shape of an eight, and how to run out of pins.
| Lesson | Time | What 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 |
|
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".
Two small projects
Put all of it together twice, in something you would show somebody.
| Lesson | Time | What 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 |
|
| 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 |
|
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".
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.