Getting Started with Arduino Uno R3: Blinking an LED in 5 Minutes

🔰 Beginner Tutorial · Arduino Uno R3 · Bangladesh 2026

Getting Started with Arduino Uno R3:
Blinking an LED in 5 Minutes

Your very first Arduino project — step by step, from unboxing to a blinking LED, in under 5 minutes. No prior experience needed. Written for beginners in Bangladesh by the Dream RC team. 💡

📅 Updated January 2026
⏱️ 15 min read
🎯 Absolute Beginners
✍️ Dream RC Bangladesh

✅ What You Will Build in This Tutorial

By the end of this guide you will have an LED blinking on and off every second — controlled by code you wrote yourself. You will understand the circuit, understand the code, and be ready to modify it for your own projects. This is the foundation of everything in Arduino and microcontroller programming. 🚀

⏱️5 MinutesSetup time
🎯BeginnerZero experience
🔴Arduino UnoR3 / R4
💡Blink LEDFirst project
🆓Free IDEArduino IDE 2

Section 01

🔴 What is Arduino Uno R3?

The Arduino Uno R3 is the world’s most popular microcontroller development board for beginners. It is based on the ATmega328P microcontroller running at 16 MHz with 5V logic — making it simple, forgiving, and compatible with thousands of sensors and modules available in Bangladesh.

Think of it as a small, programmable computer you can hold in your hand. You write code on your laptop using the free Arduino IDE software, click Upload, and the board runs your code — controlling LEDs, reading buttons, spinning motors, or reading sensors. No operating system to deal with. No complicated setup. Just code and hardware. 🛠️

The “R3” stands for Revision 3 — the third major design revision of the original Arduino Uno. It is the standard version you will find in most shops, tutorials, and courses. All the code in this guide works on R3.

SpecificationArduino Uno R3
MicrocontrollerATmega328P
Clock Speed16 MHz
Operating Voltage5V logic
Digital I/O Pins14 pins (6 with PWM)
Analog Input Pins6 pins (10-bit ADC)
Flash Memory32 KB
SRAM2 KB
Onboard LEDPin 13 (built-in)
💡

Good News for Absolute Beginners

Arduino Uno has a built-in LED on Pin 13. This means you can run your first blink project with zero external components — no LED, no resistor, no breadboard needed. Just the board, a USB cable, and your laptop. We will start with the built-in LED, then move to an external one.

Section 02

🧰 What You Need

Here is everything you need to complete this project. The bare minimum (just the board and USB cable) gets you started with the built-in LED. Adding a breadboard and components lets you wire an external LED too.

ComponentQuantityRequired For
Arduino Uno R31✅ Essential
USB Type-B Cable (or Type-C)1✅ Essential
Computer with Arduino IDE 21✅ Essential
LED (any colour)1For external LED
220Ω or 330Ω Resistor1For external LED
Breadboard1For external LED
Jumper Wires (Male to Male)2For external LED
💡

Start Simple — No External Components Needed

You do not need a breadboard, resistor, or external LED to complete Step 1 of this guide. Arduino Uno has a built-in LED on Pin 13. Start there. Once your first blink works, then add the external LED and resistor for the second part of the tutorial.

Section 03

💻 Install Arduino IDE

Arduino IDE is the free software you use to write and upload code to your Arduino Uno. Download Arduino IDE 2 — it is the newest version with autocomplete, better error messages, and a cleaner interface than the older 1.x. Both are free.

⬇️ Download Arduino IDE 2 — Choose Your Method

Both options give you the same free software. The Microsoft Store version updates automatically on Windows — handy for keeping things current without manual downloads.

⚙️ Setup Steps for Arduino Uno

  1. 1
    Install Arduino IDE 2

    Download from one of the two links above. Run the installer and accept all defaults. Wait for the installation to complete — it only takes 1–2 minutes.

  2. 2
    Install the USB Driver

    Most Arduino Uno R3 boards use a CH340G or ATmega16U2 USB chip. Dream RC’s product page lists which chip your board uses and includes the correct driver download link. Install it, then reboot your computer.

  3. 3
    Connect and Select Your Board

    Plug your Arduino Uno into your computer via USB. In Arduino IDE, go to Tools → Board → Arduino AVR Boards → Arduino Uno. Arduino Uno is built into the IDE — no extra packages to install! 🎉

  4. 4
    Select the COM Port

    Go to Tools → Port and select the port that appeared when you plugged in the board (e.g., COM3, COM5 on Windows). If no port appears, check the USB cable is a data cable (not charge-only) and the driver is installed correctly.

Arduino Uno Advantage — No Board Package Needed!

Unlike ESP32 which requires downloading a ~250 MB board package separately, Arduino Uno support is built directly into Arduino IDE. Select Arduino Uno from the board list and you are ready to upload. This is one reason Arduino Uno is genuinely simpler to set up than ESP32 for absolute first-timers.

Section 04

⚡ Understand the Circuit

Part A — Using the Built-in LED (No Components Needed)

Arduino Uno R3 has a small yellow or green LED soldered directly onto the board, connected to Pin 13. When Pin 13 is set HIGH (5V), the LED turns on. When set LOW (0V), it turns off. You do not need any external components for this first step — just power the board via USB and the built-in LED will respond to your code.

Part B — Wiring an External LED

Once the built-in LED blink works, try connecting an external LED. You can use any digital pin (Pin 13, 9, 8, 7, etc.). Here is the wiring for Pin 13:

🔌
Circuit Diagram: Arduino Uno LED Blink
Suggested diagram: Arduino Uno → Pin 13 → 220Ω resistor → LED anode (+) → LED cathode (-) → GND
Replace this block with your Dream RC uploaded wiring diagram (PNG/WebP, 800×400px, white background)

📌 Wiring Instructions (External LED)

  1. Take a jumper wire and connect it from Pin 13 on the Arduino to a row on the breadboard
  2. Place your 220Ω resistor in series in that same row — one leg in the same row as the wire from Pin 13, other leg in a new empty row
  3. Place the LED anode (longer leg) in the same row as the second resistor leg
  4. Place the LED cathode (shorter leg) in a different row
  5. Take another jumper wire from the cathode row to GND on the Arduino
⚠️

Always Use a Resistor — This is Critical

Connecting an LED directly to a GPIO pin without a resistor will draw too much current and can permanently damage the GPIO pin or burn out the LED. Always use a 220Ω or 330Ω resistor in series. It reduces the current to a safe level. This rule applies to every board — Arduino Uno, ESP32, Raspberry Pi — always. 🛡️

💡

How to Tell LED Polarity

Longer leg = Anode (+) → goes toward the resistor (toward Pin 13). Shorter leg = Cathode (−) → goes toward GND. If your LED does not light up, try flipping it around — it simply will not work in the wrong direction but will not be damaged either.

Section 05

📝 Write and Upload the Blink Code

Open Arduino IDE. Click File → New Sketch. Delete any default code that appears and paste in the following:

C++ · Arduino Uno Blink LED

// ============================================================
// Arduino Uno R3 — Blink LED
// Dream RC Bangladesh 🇧🇩
// Built-in LED = Pin 13 on Arduino Uno
// Works with both built-in LED and external LED on Pin 13
// ============================================================

const int LED_PIN = 13;   // Pin 13 = built-in LED on Arduino Uno

void setup() {
  Serial.begin(9600);           // Open Serial Monitor at 9600 baud
  pinMode(LED_PIN, OUTPUT);    // Set Pin 13 as a digital output
  Serial.println("Arduino Uno Blink — Ready! 💡");
}

void loop() {
  digitalWrite(LED_PIN, HIGH); // Turn LED ON  — Pin 13 = 5V
  Serial.println("LED ON");
  delay(1000);                   // Wait 1000 milliseconds = 1 second

  digitalWrite(LED_PIN, LOW);  // Turn LED OFF — Pin 13 = 0V
  Serial.println("LED OFF");
  delay(1000);                   // Wait 1000 milliseconds = 1 second
}

🔍 What Each Line Does

CodeWhat It Does
const int LED_PIN = 13Creates a constant named LED_PIN with value 13. Using a named constant makes code easier to read and change.
void setup()Runs once when the Arduino powers on. Used for one-time setup tasks like configuring pin modes.
Serial.begin(9600)Opens serial communication at 9600 baud so you can see messages in the Serial Monitor window.
pinMode(LED_PIN, OUTPUT)Tells Pin 13 that it will be an OUTPUT — meaning the Arduino controls the voltage on that pin.
void loop()Runs forever in a continuous loop as long as the Arduino has power. Your main program logic goes here.
digitalWrite(LED_PIN, HIGH)Sets Pin 13 to 5V — this turns the LED on by allowing current to flow through it.
delay(1000)Pauses the program for 1000 milliseconds = 1 second. Change this number to change blink speed.
digitalWrite(LED_PIN, LOW)Sets Pin 13 to 0V — this turns the LED off by stopping current flow.

📤 How to Upload

  1. Make sure Arduino Uno is selected under Tools → Board
  2. Make sure the correct COM Port is selected under Tools → Port
  3. Click the Upload button (right-facing arrow in the toolbar)
  4. Watch the bottom console — you will see “Compiling sketch…” then “Uploading…”
  5. When you see “Done uploading” — the code is running ✅
  6. The LED on your Arduino Uno should now blink on and off every second. Open Tools → Serial Monitor, set baud to 9600, and watch “LED ON / LED OFF” messages appear. 🎉

Section 06

🧪 Modify and Experiment

Congratulations — your LED is blinking! 🎉 Now let’s make it interesting. The best way to learn programming is to make small changes and see what happens. Try each of these modifications one at a time:

⚡ Experiment 1 — Change the Blink Speed

Find the two delay(1000) values and change both to 100. Upload again. The LED now blinks 10 times per second — much faster! Try different values: 2000 (very slow), 500 (half second), 50 (very fast flickering).

🔆 Experiment 2 — Different ON and OFF Times

Change the first delay (after HIGH) to 200 and the second delay (after LOW) to 800. Now the LED is ON for 0.2 seconds and OFF for 0.8 seconds. Interesting rhythm! Try making it flash like a camera: 50ms ON, 950ms OFF.

🆘 Experiment 3 — SOS Pattern

C++ · SOS Morse Code Blink

const int LED = 13;
const int DOT  = 150;  // Short blink
const int DASH = 400;  // Long blink
const int GAP  = 150;  // Gap between symbols

void blink(int duration) {
  digitalWrite(LED, HIGH);
  delay(duration);
  digitalWrite(LED, LOW);
  delay(GAP);
}

void setup() { pinMode(LED, OUTPUT); }

void loop() {
  // S = dot dot dot
  blink(DOT); blink(DOT); blink(DOT);
  delay(300);
  // O = dash dash dash
  blink(DASH); blink(DASH); blink(DASH);
  delay(300);
  // S = dot dot dot
  blink(DOT); blink(DOT); blink(DOT);
  delay(2000);  // Pause before repeating
}

🧠

What You Just Learned

The SOS code introduced a custom function blink(duration) — your first step toward structured, reusable code. This is how real programs are built: break complex tasks into small, reusable functions. From here, the jump to more advanced Arduino projects is smaller than you think. 💪

Section 07

⚠️ Common Errors and Fixes

Ran into a problem? These are the most common issues beginners face in Bangladesh with their first Arduino project:

🔧 Error Reference — Arduino Uno Blink
Port not showing / greyed out in Tools → Port
Fix: Install the correct USB driver for your board’s chip (CH340G or ATmega16U2). Also try a different USB cable — many cables sold in Bangladesh are charge-only with no data lines. Use a cable labelled “data cable” or test with one from your phone charger kit.

avrdude: stk500_getsync(): not in sync — programmer is not responding
Fix: Wrong board selected. Make sure Arduino Uno is selected under Tools → Board (not Mega, Nano, or something else). Also check the correct COM port is selected.

Upload completes but LED does not blink
Fix: For the built-in LED, ensure you are using Pin 13. For external LED: check polarity (long leg toward resistor), check resistor is connected, check GND connection. Swap the LED direction if unsure.

Serial Monitor shows garbled characters
Fix: The baud rate in Serial Monitor (bottom-right dropdown) must match your code. If your code says Serial.begin(9600), set Serial Monitor to 9600 baud.

LED is very dim or flickering rapidly
Fix: Check resistor value — a very large resistor (10 kΩ) will make the LED very dim. Use 220Ω or 330Ω. Also check that GND is connected to the Arduino GND pin, not a data pin.

🇧🇩

Bangladesh Tip — USB Cable Quality

Many cheap USB cables sold in Bangladesh markets carry power only — they cannot transfer data. If your computer does not recognise the Arduino at all (no port appears), the most likely cause is a charge-only cable, not a faulty board or driver. Always test with a known-good USB cable first.

Section 08

🚀 What’s Next After Blink?

You have got the blink working. That is the foundation. Now it gets exciting. Here are the best next steps to take your Arduino Uno skills further — and when you should consider switching to ESP32:

🔘
Read a Button
Step 2 in Arduino

Use digitalRead() and a pushbutton to control the LED manually. Introduces INPUT pins, pull-up resistors, and if/else conditional logic.

🔆
Fade with PWM
Smooth brightness control

Use analogWrite() on a PWM pin (3, 5, 6, 9, 10, 11) to fade the LED brightness up and down smoothly. Introduces PWM and for loops.

🌡️
Read a Sensor
Temperature, distance, light

Connect a DHT11 (temperature), HC-SR04 (ultrasonic distance), or LDR (light sensor) and read the values in Serial Monitor. Introduces analogRead() and sensor libraries.

🔊
Buzzer Melody
tone() function

Connect a passive buzzer and use tone() to play melodies. A fun way to learn timing, arrays, and note frequencies.

⚙️
Control a Servo
Robotics foundation

Use the Servo library to sweep a servo motor from 0° to 180° and back. The first step toward building robots, robotic arms, and RC vehicles.

📶
Upgrade to ESP32
When you need WiFi / BT

When your project needs WiFi, Bluetooth, IoT, or more processing power — it’s time for ESP32. Same Arduino IDE, same code style, just more capability.

Section 09

🛒 Get Your Arduino & ESP32 from Dream RC

Dream RC stocks genuine, tested development boards with fast nationwide delivery across Bangladesh. 🇧🇩

🔴
Arduino Uno R3
Add Dream RC product image

⭐ This Tutorial

Arduino Uno R3
ATmega328P · 16 MHz · 14 Digital I/O · 5V logic. The board used in this tutorial. Wide 5V sensor and shield compatibility.
Best for: This guide, school projects, 5V sensors


Check Now →

ESP32 Type-C 30 Pin Development Board Bangladesh Dream RC
📶 Next Step
ESP32 Type-C (30-Pin)
Dual-core 240 MHz · 520 KB RAM · Built-in WiFi + BT 4.2 · Type-C USB. Same Arduino IDE as Uno — but with WiFi and Bluetooth built in.
Best for: When you need WiFi, IoT, or Bluetooth ✅

Check Now →

ESP32 C3 Super Mini Bangladesh Dream RC
Ultra Compact
ESP32-C3 Super Mini
RISC-V · 160 MHz · WiFi + BLE 5.0 · Ultra-compact. Smallest and most affordable WiFi + Bluetooth board in Bangladesh. 💰
Best for: Compact IoT, wearables, tiny projects

Check Now →

🗂️ Looking for more development boards?
Browse the full Dream RC collection — Arduino, ESP32 family, Raspberry Pi, sensors, and more

View All Boards →

🇧🇩 Dream RC — Bangladesh’s Trusted Electronics Partner

From your first blink project to advanced IoT systems — Dream RC stocks the hardware, writes the guides, and supports makers at every level across Bangladesh.

500+Products Stocked
2,000+Orders Delivered
100%Tested Hardware

FAQ

❓ Frequently Asked Questions

Common beginner questions about Arduino Uno and the blink LED project — answered for Bangladesh makers. 📋

Do I need to install anything extra for Arduino Uno in Arduino IDE?
No! This is one of Arduino Uno’s biggest advantages for beginners. Arduino Uno support is built directly into Arduino IDE 2. After installing the IDE, go to Tools → Board → Arduino AVR Boards → Arduino Uno and you are ready. No extra board packages to download unlike ESP32 which requires a separate 250 MB download.

Why does my LED not turn on even though the code uploaded successfully?
The most common causes: (1) LED polarity is reversed — flip the LED around, it will not be damaged. (2) Missing or incorrect resistor connection — check all breadboard connections carefully. (3) Wrong pin — if using external LED, make sure your code pin number matches the physical pin you connected to. (4) Loose jumper wire — press the wire into the breadboard firmly. Try the built-in LED on Pin 13 first to confirm the code works before adding external components.

What resistor value should I use with the LED?
Use a 220Ω or 330Ω resistor. Both are safe and will give a bright, clear LED. A 220Ω resistor produces slightly brighter light; 330Ω is slightly dimmer but protects the components a little more conservatively. Either works perfectly for this project. Avoid using very large values (10 kΩ or more) as the LED will be too dim to see clearly.

Can I use a different digital pin instead of Pin 13?
Yes! Any of the 14 digital pins (0–13) can be used as a digital output. The only special thing about Pin 13 is that it has the built-in LED attached. If you use a different pin (say Pin 7), just change the code: const int LED_PIN = 7; Then wire your external LED from Pin 7 through a resistor to GND. Pins 0 and 1 are also used for USB serial communication, so avoid those for LED projects while using the Serial Monitor.

What is the difference between Arduino Uno R3 and R4?
Arduino Uno R4 is the newer revision released in 2023. It comes in two variants: Minima (same basic concept, slightly more RAM) and WiFi (adds an ESP32-S3 WiFi module). The R3 is the classic version that has been the standard since 2011. All code in this guide works on both R3 and R4 Minima. If you are buying in Bangladesh, both versions are available at Dream RC — check the current listings for availability.

How do I make the LED blink faster or slower?
Change the delay() values. delay(1000) = 1 second. delay(500) = 0.5 seconds (twice as fast). delay(200) = 0.2 seconds (5 times faster). delay(2000) = 2 seconds (twice as slow). You can make the ON time different from the OFF time by giving each delay() a different value — for example delay(100) after HIGH and delay(900) after LOW makes the LED flash briefly once per second.

My Arduino is not recognised by Windows — what should I do?
Step 1: Try a different USB cable — this solves the problem in about 60% of cases in Bangladesh. Many phone charger cables are charge-only. Step 2: Install the correct USB driver. Boards with CH340G chip need the CH340 driver. Boards with original ATmega16U2 chip usually work without a driver on modern Windows. Step 3: Try a different USB port on your computer. Step 4: Right-click My Computer → Device Manager → look for unknown devices and check which driver is missing.

When should I switch from Arduino Uno to ESP32?
Switch to ESP32 when: (1) You need WiFi to send data to the internet or receive remote commands. (2) You need Bluetooth to communicate with your phone or another device. (3) Your project requires more processing power or memory. (4) You want to control multiple tasks simultaneously (ESP32’s dual core handles this well). (5) You want to build IoT devices for home automation, data logging, or smart systems. ESP32 uses the same Arduino IDE and similar code — the transition is very smooth once you know the basics from Arduino Uno.

Where can I buy Arduino Uno R3 in Bangladesh?
You can buy genuine, tested Arduino Uno R3 boards from Dream RC at dream-rc.com. Dream RC lists the USB chip model on the product page (so you know which driver to download), offers fast nationwide delivery, and all boards are tested before listing. Buying from a trusted source like Dream RC avoids the frustrating experience of receiving defective or counterfeit boards from unknown sellers.

Conclusion

🏁 Your First Step into the World of Electronics

You just completed your first Arduino project — blinking an LED. That might seem small, but it is genuinely significant. You installed software, selected the right board, wrote code, connected hardware, and made something physical respond to your instructions. That is the complete loop of embedded programming, and you have done it. 🎉

From here, every new project is just adding more pieces to the same foundation. A button is just another input. A sensor is just a smarter input. A motor driver is just a bigger output. WiFi is just a more powerful input/output layer — which is exactly where ESP32 comes in when you are ready.

Dream RC is here to support your journey — with tested hardware, practical guides written for Bangladesh beginners, and components available for nationwide delivery. From your first blink to your first robot to your first IoT system — we stock what you need and explain how to use it. 🇧🇩


📝 About This Guide: Written and maintained by the Dream RC team in Bangladesh. Last reviewed January 2026. All code examples tested on Arduino Uno R3 with Arduino IDE 2.3. Hardware specifications sourced from the official ATmega328P datasheet. If you spot an error or have a question, contact us via dream-rc.com. 🇧🇩

Leave a Reply

Shopping cart

0
image/svg+xml

No products in the cart.

Continue Shopping