What Should I Build After Learning Arduino Basics?
After uploading your first Blink sketch and wiring an LED circuit, build these 10 projects in order. Each one introduces a new skill — reading sensors, controlling motors, displaying data, and automating real-world tasks. You only need a starter kit and a few extra components to complete all ten.
These projects assume you’ve completed steps 1–5 of our getting started with Arduino roadmap — you have a board, a breadboard, jumper wires, and you know how to upload a sketch. Each project lists exactly what components you need and what new concept you’ll learn.
[IMAGE: Flat-lay of an Arduino board surrounded by components for multiple projects — LEDs, sensors, servo motor, LCD display, buzzer, relay module. Alt text: “Arduino Uno with components for beginner projects — LEDs, DHT11 sensor, servo motor, OLED display, buzzer, and relay module”]
Project 1 — Traffic Light Simulator
What you learn: Controlling multiple outputs in sequence with timing.
Components: 3 LEDs (red, yellow, green), 3× 220Ω resistors, breadboard, jumper wires.
Wire three LEDs to three separate digital pins. Write a sketch that cycles through them like a real traffic light — green on for 5 seconds, yellow for 2 seconds, red for 5 seconds, then repeat. This teaches you how to manage multiple outputs and use delay() to control timing sequences.
Extend it: Add a pedestrian button using a push button and a 10kΩ pull-down resistor. When pressed, the light cycle interrupts and switches to red. This introduces digitalRead() and conditional logic with if statements.
Difficulty: Easy. Uses only components from a basic starter kit.
Project 2 — Light Level Monitor
What you learn: Reading analogue sensors and visualising data with the Serial Plotter.
Components: Light-dependent resistor (LDR), 10kΩ resistor, breadboard, jumper wires.
Build a voltage divider with the LDR and resistor. Connect the middle point to an analogue input pin. Read the value with analogRead() and print it to the Serial Monitor. Then open the Serial Plotter (Tools → Serial Plotter) to see a real-time graph. Cover the sensor with your hand and watch the graph change.
Extend it: Add an LED that turns on automatically when the light level drops below a threshold. This is the logic behind automatic night lights.
Difficulty: Easy. Teaches analogue input and the map() function.
Project 3 — Temperature and Humidity Display
What you learn: Using external libraries, reading a digital sensor, printing data to Serial Monitor.
Components: DHT11 temperature and humidity sensor, 10kΩ resistor, breadboard, jumper wires.
Install the DHT sensor library (Sketch → Include Library → Manage Libraries → search “DHT sensor library” by Adafruit). Wire the DHT11 to a digital pin. Read temperature in °C and humidity as a percentage. Print both to the Serial Monitor every 2 seconds.
Extend it: Add a 16×2 LCD or 0.96-inch OLED display to show the readings without a computer. This turns it into a standalone room thermometer. Browse display modules at Kunkune.
Difficulty: Easy–Medium. First time installing a library and reading a sensor that returns processed data.
Project 4 — Ultrasonic Distance Meter
What you learn: Working with a time-based sensor, converting raw data to useful measurements.
Components: HC-SR04 ultrasonic sensor, breadboard, jumper wires.
The HC-SR04 sends an ultrasonic pulse and measures how long the echo takes to return. Wire the trigger pin to a digital output and the echo pin to a digital input. Use pulseIn() to measure the echo time in microseconds, then convert it to centimetres using the speed of sound (distance = time × 0.0343 / 2).
Extend it: Add an LED or buzzer that activates when an object comes within 20 cm. This is the basic logic behind car parking sensors.
Difficulty: Medium. Introduces pulseIn() and real-world physics calculations.
Project 5 — Servo-Controlled Sweep
What you learn: Controlling a motor with Arduino, using the Servo library.
Components: SG90 micro servo motor, jumper wires (male-to-male or male-to-female depending on servo connector).
Connect the servo’s signal wire to a PWM pin, power to 5V, and ground to GND. Use the built-in Servo library to sweep the servo from 0° to 180° and back. The Servo.write(angle) function sets the position.
Extend it: Connect a potentiometer to an analogue pin and use map() to control the servo angle by turning the dial. This is your first input-to-output control loop.
Difficulty: Medium. First time controlling a physical actuator.
Project 6 — Melody Player with Buzzer
What you learn: Using tone() to generate sound, working with arrays and loops.
Components: Passive buzzer, breadboard, jumper wires.
The tone(pin, frequency, duration) function plays a specific frequency on a digital pin. Store a melody as two arrays — one for note frequencies, one for note durations — and loop through them. The Arduino plays a recognisable tune through the buzzer.
Extend it: Add a button to trigger different melodies. Or wire a photoresistor and create a light-controlled theremin — the pitch changes as you move your hand closer to or further from the sensor.
Difficulty: Medium. Introduces arrays, loops, and the concept of frequency.
Project 7 — OLED Display Dashboard
What you learn: I2C communication, displaying text and graphics on a screen.
Components: 0.96-inch OLED display (SSD1306, I2C), 4× jumper wires (female-to-male or male-to-male depending on module).
Connect the OLED to the Arduino’s SDA and SCL pins (A4 and A5 on the Uno), plus 5V and GND. Install the Adafruit SSD1306 and Adafruit GFX libraries. Display text, numbers, and simple graphics on the screen.
Extend it: Combine with Project 3 (DHT11) or Project 4 (HC-SR04) to create a standalone dashboard that displays sensor readings on the OLED. No computer needed — this is your first truly independent device.
Difficulty: Medium. First time using I2C and managing a display library.
Project 8 — Motion-Activated Alarm
What you learn: Using a PIR motion sensor, triggering outputs based on sensor state.
Components: HC-SR501 PIR motion sensor, buzzer or LED, jumper wires.
The PIR sensor detects infrared radiation from warm bodies (people, animals). It outputs HIGH when motion is detected. Wire it to a digital input pin and trigger a buzzer or LED when the reading goes HIGH. Add a delay after detection to avoid constant re-triggering.
Extend it: Add a countdown timer displayed on an OLED — when motion is detected, the alarm gives a 10-second warning before sounding. This introduces millis() for non-blocking timing instead of delay().
Difficulty: Medium. The PIR sensor itself is simple (one digital pin), but learning millis() is a key skill.
Project 9 — Automatic Plant Watering System
What you learn: Reading an analogue soil moisture sensor, controlling a relay or pump.
Components: Soil moisture sensor module, relay module (or a small 5V water pump), jumper wires, breadboard.
The soil moisture sensor outputs an analogue value — low when soil is wet, high when dry (or vice versa depending on the module). Read the value with analogRead(). When the soil is too dry, activate a relay that switches on a water pump or solenoid valve.
Extend it: Add a threshold adjustment using a potentiometer, so you can tune the moisture level without re-uploading code. Add an OLED display to show the current moisture percentage.
Browse relay modules and Arduino sensors at Kunkune.
Difficulty: Medium–Hard. Combines analogue input, threshold logic, and controlling a relay. This is your first project that does something genuinely useful.
Project 10 — Weather Station with Data Logging
What you learn: Combining multiple sensors, storing data, building a complete system.
Components: BMP280 pressure/temperature sensor (or DHT11 + BMP280), 0.96-inch OLED display, breadboard, jumper wires. Optional: SD card module for data logging.
Read temperature, humidity, and barometric pressure. Display all three readings on the OLED, updating every few seconds. If you add an SD card module, log each reading with a timestamp so you can analyse trends later on a computer.
Extend it: When you’re ready for wireless, swap the Arduino Uno for an ESP32 board and send your weather data to a web dashboard or phone app over Wi-Fi. This is the natural bridge from Arduino to IoT.
Difficulty: Hard (for beginners). Multiple I2C devices on one bus, data formatting, and optional file storage. This project uses everything you’ve learned in projects 1–9.
[IMAGE: Completed weather station project on a breadboard — BMP280 sensor, OLED display, and Arduino Uno wired together. Alt text: “Arduino weather station project with BMP280 sensor and OLED display on a breadboard showing temperature, humidity, and pressure readings”]
What Components Do I Need for All 10 Projects?
If you already have a Kunkune starter kit, you’ll have most of what’s needed for projects 1–6. For projects 7–10, you’ll need a few extra modules. Here’s the full list of additions beyond a standard kit:
- 0.96-inch OLED display (SSD1306 I2C) — for projects 7, 8, 9, 10
- HC-SR501 PIR motion sensor — for project 8
- Soil moisture sensor module — for project 9
- BMP280 pressure/temperature sensor — for project 10
- Relay module — for project 9
- SD card module — optional, for project 10
All of these are available individually from Kunkune’s sensors and display modules categories, or as part of the 45-piece sensor kit which covers most of them in one box.
Frequently Asked Questions
The Bottom Line
These 10 projects take you from blinking LEDs to building a real weather station. Each one adds a new skill that stacks on the last. Start at Project 1 and work through them in order — by the time you finish Project 10, you’ll have enough experience to design your own projects from scratch.
