DIY Blooming Flower Robot 🌸 Arduino Servo Petals

DIY Blooming Flower Robot 🌸 Arduino Servo Petals Project for Kids
🌸 ROBOTICS FOR KIDS · LEVEL: BEGINNER

Build a Robot Flower That Blooms Open, Petal by Petal!

Meet Blossom — an Arduino-powered flower that slowly opens its petals in a beautiful wave, just like a real flower greeting the sun. Follow our easy step-by-step guide, circuit diagram, and code to grow your own!

⏱️ 2–3 hours 🎂 Ages 8+ (with an adult) 🌷 5 servo-powered petals

🌼 Say hi to Blossom, your robot flower!

What Is a Blooming Flower Robot, Anyway?

Real flowers slowly open their petals as they grow toward sunlight. In this project, we'll recreate that magic using five servo motors — one hidden behind each petal — controlled by an Arduino. When triggered, each petal swings open one after another, creating a smooth, wave-like blooming motion.

This is a fantastic project for learning how to make several motors move in a coordinated sequence, with small timing delays between each one — a trick used in real animatronics and robotics displays!

🧰

What You'll Need

Gather these parts before you start building your flower!

x1

Arduino Uno

The brain that controls the blooming sequence.

x5

SG90 Micro Servo Motors

One motor per petal, hidden inside the flower.

x1

LDR (Light Sensor)

Makes the flower bloom automatically in bright light.

x1

Push Button

Manually trigger a bloom or close-up anytime.

x1

Breadboard

For connecting everything without soldering.

x5

Craft Foam or Felt Petals

Cut petal shapes and glue them to each servo horn.

x1

Cardboard Tube + Green Paper

Forms the stem and hides the wiring.

x1

4x AA Battery Pack

Powers all five servos once unplugged from USB.

~15

Jumper Wires

Male-to-male and male-to-female.

🔌

The Circuit Diagram

Here's how all five petal servos, the light sensor, and the button connect to the Arduino.

Arduino Uno UNO Pin 3 — Petal 1 Pin 5 — Petal 2 Pin 6 — Petal 3 Pin 9 — Petal 4 Pin 10 — Petal 5 A0 — LDR Sensor Pin 2 — Push Button 5V GND Servo 1 — Petal 1 Servo 2 — Petal 2 Servo 3 — Petal 3 Servo 4 — Petal 4 Servo 5 — Petal 5 LDR — Light Sensor Push Button
Petal servos → pins 3, 5, 6, 9, 10 LDR → analog pin A0 Button → digital pin 2 Pink dashed = 5V · Green dashed = GND
🛠️

Step-by-Step Build Instructions

Ask an adult to help with cutting foam petals and gluing. Let's grow Blossom!

1

Arrange the five servos in a circle

Mount all five servos facing outward in a flower-shaped ring, like the numbers on a clock, inside a small cardboard base.

2

Cut and attach the petals

Cut five petal shapes from craft foam or felt. Glue each petal to a servo horn so that turning the servo swings the petal from closed (folded in) to open (spread out).

💡 Tip: Start each petal folded inward at 0° so your flower looks like a closed bud at rest.
3

Build the stem and hide the wiring

Slide a cardboard tube up through the center of the base and wrap it in green paper. Run all the servo wires down through the tube to the Arduino below.

4

Add the light sensor

Mount the LDR pointing upward near the center of the flower so it can "sense" when a bright light (like a lamp or sunlight) shines on it.

5

Add the manual button

Place the push button on the base so you can trigger a bloom or closing motion anytime, even without bright light.

6

Upload the code and test

Plug in your Arduino, upload the code below, then switch to battery power. Shine a light on Blossom or press the button and watch each petal open one after another!

💻

The Arduino Code

Copy this code into the Arduino IDE, then click Upload. It opens each petal in a wave, then closes them back up.

blooming_flower.ino
// 🌸🤖 Blossom the Robot Flower — Arduino Multi-Servo Bloom Project
// Uses 5 servos, one per petal, plus an LDR and a manual button

#include <Servo.h>

Servo petals[5];
const int petalPins[5] = {3, 5, 6, 9, 10};

const int ldrPin    = A0;
const int buttonPin = 2;

const int closedAngle = 0;    // petal folded in (bud)
const int openAngle   = 100;  // petal fully bloomed
bool isBloomed = false;

void setup() {
  for (int i = 0; i < 5; i++) {
    petals[i].attach(petalPins[i]);
    petals[i].write(closedAngle);  // start as a closed bud
  }
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  int lightLevel = analogRead(ldrPin);
  bool buttonPressed = (digitalRead(buttonPin) == LOW);

  // Bloom when it's bright OR the button is pressed
  if ((lightLevel > 600 || buttonPressed) && !isBloomed) {
    bloomFlower();
    isBloomed = true;
    delay(500);
  }

  // Close back up when it's dark again
  if (lightLevel < 300 && isBloomed) {
    closeFlower();
    isBloomed = false;
    delay(500);
  }
}

// Opens each petal one after another, like a wave
void bloomFlower() {
  for (int i = 0; i < 5; i++) {
    petals[i].write(openAngle);
    delay(300);  // small pause creates the wave effect
  }
}

// Closes each petal back into a bud, in reverse order
void closeFlower() {
  for (int i = 4; i >= 0; i--) {
    petals[i].write(closedAngle);
    delay(300);
  }
}
🧠

How Does Blossom Actually Work?

Here are the big robotics ideas hiding inside this project:

🌞

Light Sensing

The LDR's reading gets higher in bright light. By comparing it to a threshold number, the Arduino decides whether it's "bright enough" to bloom — just like a real flower reacting to sunlight.

📚

Arrays Save Repeated Code

Instead of writing five separate Servo variables, we use an arraypetals[5] — so one small loop can control all five motors.

🌊

Creating a Wave Motion

Adding a tiny delay(300) between each petal opening makes them move one after another instead of all at once, creating that smooth blooming wave.

🔁

Remembering State

The isBloomed variable helps the flower remember whether it's already open, so it doesn't try to bloom over and over again while the light stays bright.

🧑‍🔬 Safety First!

  • Build with an adult, especially when using scissors or a glue gun for the petals.
  • Don't force a petal by hand while its servo is powered on — let the motor do the moving.
  • Keep small foam pieces away from little siblings and pets.
  • Unplug the battery pack when you're finished playing with Blossom.

Frequently Asked Questions

Can I use fewer than five petals?

Yes! Just remove the extra pins from the petalPins array and change the 5 in the loops to match how many petals you're using.

How do I make the bloom slower or faster?

Change the delay(300) value inside bloomFlower() and closeFlower() — a bigger number makes each petal wait longer before opening, creating a slower wave.

What if I don't have an LDR?

No problem! You can remove the light-sensing part and trigger bloomFlower() and closeFlower() using only the push button.

What age group is this project good for?

This project is great for curious kids around age 8 and up, working with a parent, teacher, or older sibling on the wiring and petal assembly.

🎉 Beautiful work — you just built a real animatronic flower! Shine a flashlight on Blossom and watch it bloom to life.

⬆️ Back to Materials List

Comments

Product Cards
Buddy Bot eBook
⭐ New 2026 Release
Build Your
Own Robot!
3D design, wiring &
Arduino coding.
Young inventors love it!
🖨️
3D Print
All parts
Wire it
Circuit guide
💻
Code it
Arduino IDE
🤖
Watch it
Walk & react
📋 Your Details
Enter your name
Valid 10-digit no.
Enter a valid email
Special Website Offer
₹499 300
🌍 International: $5 USD
One-time · Instant digital delivery
🔒 Secured by Razorpay · Your data is safe
📄 Download Free Sample Copy
🔒 Secured by Razorpay · Your data is safe
🍓
Raspberry Pi Pico Mastery
21 Projects
⚡ Launch Price — 80% OFF
Learn Pico
Build 21 Projects!
MicroPython · Wokwi
IoT · Certificate
Perfect for beginners!
🖥️
Wokwi
No hardware
🐍
MicroPy
From zero
🔨
21 Projects
IoT + sensors
📄
Certificate
Verified cert
📋 Your Details
Enter your name
Valid 10-digit no.
Enter a valid email
Special Launch Offer
₹999 200 80% OFF
🌍 International: $5 USD
One-time · Lifetime access · No subscription
🔒 Secured by Razorpay · UPI · Cards · NetBanking
🎉

You're in!

Payment successful! Your Buddy Bot eBook is ready. Time to build!

📖 Access Your eBook Now
🎉

Enrolled!

Payment successful! Lifetime access to all 21 Pico Projects is yours!

🍓 Go to My Course