In 90 minutes you'll go from zero to wiring a two-player reaction game. No experience needed — just curiosity.
Before touching any component, you need to understand the three ideas that explain everything in electronics.
Voltage is the push that moves electricity. Think of it like water pressure in a pipe — higher pressure pushes more water. We measure it in Volts. Your Arduino runs on 5V.
Current is the flow of electrons — how much electricity is actually moving. Like the amount of water flowing through a pipe. We measure it in Amperes (A) or milliamps (mA).
Resistance slows down the flow of electricity. Like a narrow section in a pipe. We measure it in Ohms (Ω). This is why we use resistors to protect LEDs from burning out.
Electricity always flows from + to − (positive to negative / from high voltage to low). If the loop is broken anywhere, nothing works. This is called an open circuit.
Blue = current flowing + → Red = returning to − The resistor protects the LED
Everything in electronics comes back to: V = I × R (Voltage = Current × Resistance). Rearranged to find resistance: R = V ÷ I. This is exactly how we chose the 220Ω resistor below.
HOW WE CHOSE 220Ω FOR OUR LED
The calculation:
🧮 TRY IT YOURSELF — RESISTOR CALCULATOR
Click each component to learn what it does and how it fits in a circuit.
A breadboard lets you build circuits without soldering. Holes in the same row are connected underneath. The red (+) and blue (−) rails run along the edges and carry power.
Rows run horizontally (A–E and F–J are separate). The center gap separates the two halves. Push component legs straight in.
Resistors limit current to protect components. The colored bands tell you its value in Ohms (Ω). We use 220Ω resistors to protect LEDs in this project.
Unlike LEDs, resistors have no polarity — you can put them in either way round.
Light Emitting Diode. Converts electrical current directly into light. Way more efficient than a bulb — no heat wasted.
Polarity matters! The longer leg is + (anode) and goes toward power. The shorter leg is − (cathode) and goes to GND. Put it in backwards and it won't light — but won't break either.
A momentary button closes a circuit only while pressed. Our 4-leg button has two pairs of legs — legs on the same side are always connected, legs across the gap connect only when pressed.
We use Arduino's internal pull-up resistor — so buttons wire to GND, and pressing reads as LOW (not HIGH).
An active buzzer makes sound when you apply voltage — no fancy code needed, just HIGH and LOW. It has a small vibrating disk inside that moves air to create sound.
Polarity matters! The + leg (longer, or marked +) goes to the Arduino pin, the − leg goes to GND.
Jumper wires connect components on a breadboard and to Arduino pins. Use colors as a convention: red for power (+), black for ground (−), other colors for signals.
It doesn't actually matter electrically — but consistent colors help you and others read your circuit and spot mistakes.
The Arduino is a tiny computer that reads inputs (buttons, sensors) and controls outputs (LEDs, buzzers) based on code you give it.
The negative terminal. Every component's negative leg must connect here to complete the circuit.
Supplies 5 volts. Use this to power components that need constant power (like the pull-up reference).
Can be set as INPUT or OUTPUT. Read buttons (HIGH/LOW) or control LEDs and buzzers. Our game uses pins 2, 4, 6, 7, 8, 11.
Powers the board and transfers your code from the computer. The Arduino IDE sends code here when you click Upload.
Restarts the program from the beginning. Useful when you want to restart a game without unplugging.
There's an LED soldered onto the board connected to pin 13. Great for quick tests — no wiring needed.
Start with Blink to get confident, then build the full reaction game.
The "Hello World" of electronics. Wire one LED and make it blink every half second. Once this works, you understand circuits.
| Component | From | To |
|---|---|---|
| LED (short leg −) | Short leg | GND rail on breadboard |
| 220Ω Resistor | One end | Same row as LED long leg |
| Resistor other end | Other end | Pin 7 on Arduino |
| GND wire | Arduino GND | − rail on breadboard |
// Blink — makes LED on pin 7 blink every 500ms void setup() { pinMode(7, OUTPUT); // tell Arduino pin 7 is an output } void loop() { digitalWrite(7, HIGH); // turn LED ON delay(500); // wait 500 milliseconds digitalWrite(7, LOW); // turn LED OFF delay(500); // wait 500 milliseconds // then loop() runs again! }
This is where you tell Arduino what each pin does — input or output.
After setup, loop() keeps repeating until you unplug the Arduino.
delay() pauses the program. 1000 = 1 second. Try changing it!
HIGH turns the pin on (5V). LOW turns it off (0V). Simple!
🚀 Challenge: once it blinks, try...
Make it blink 3 times fast, then pause for 2 seconds. Or add a second LED that blinks out of sync!
A yellow LED lights up at a random moment. Whoever presses their button first wins the round. 3 rounds, best of 3 wins.
| Component | Arduino Pin | Notes |
|---|---|---|
| Button P1 | Pin 2 → GND | Uses internal pull-up. No resistor needed! |
| Button P2 | Pin 4 → GND | Uses internal pull-up. No resistor needed! |
| Green LED (P1) | Pin 7 | + leg → 220Ω → pin 7. − leg → GND. |
| Red LED (P2) | Pin 8 | + leg → 220Ω → pin 8. − leg → GND. |
| Yellow LED (GO) | Pin 6 | + leg → 220Ω → pin 6. − leg → GND. |
| Buzzer (+) | Pin 11 | + leg to pin 11. − leg to GND. Remove seal! |
⚠️ False start rule
Press your button before the yellow LED lights up and you automatically lose that round. Your LED flashes with a penalty buzzer. Be patient!
// Insert your printed wiring diagrams here
// PROJECT 1 — BLINK
// PROJECT 2 — REACTION GAME