DIY Cardboard Rotating Globe

DIY Cardboard Rotating Globe: Touch Button Switches Weather, Countries, Time & Night Lights | Kids STEM Project
Kid-Friendly Cardboard STEM Project 🌎✋

Build a tiny cardboard Earth that spins forever — and change modes with one touch!

This little globe is made almost entirely from cardboard, but it hides real electronics inside: a motor that keeps it spinning non-stop, and a single touch button that cycles the base display through four modes — Weather, Countries, Time, and Night Lights. Here's exactly how to build it, with the full circuit and code.

1

How the spinning globe and touch button work together

The globe itself is simple: a slow motor turns an axle forever, so the cardboard Earth on top just keeps spinning like a real planet. All the "smart" parts live in the stationary base underneath — a small screen and a colorful light ring that never spin, plus one touch pad you tap to change what they show.

Always spinning

One slow motor

A small geared DC motor turns continuously, keeping the globe rotating smoothly and quietly.

One touch, one mode

Tap to cycle

Each tap on the touch pad moves to the next mode: Weather → Countries → Time → Night Lights → back to Weather.

Lights + screen

Base does the display work

A tiny OLED screen shows text for each mode, while a ring of colorful LEDs glows up through the globe for the Night Lights mode.

2

What you'll need

Mostly cardboard and craft supplies, plus a small set of beginner electronics parts. Ask a grown-up to help with cutting and ordering parts.

Brain

Arduino Uno or Nano

Runs the code, reads the touch pad, and controls the motor, screen, and lights.

Spin power

Small 5V geared DC motor

Turns the axle slowly and steadily so the globe spins forever without wobbling.

Motor control

Motor driver (L293D or MOSFET)

Lets the Arduino safely run the motor without damaging its pins.

Touch input

TTP223 touch sensor module

A simple touch pad that sends a signal each time you tap it — no physical button to wear out.

Screen

0.96" OLED display (I2C)

Shows the text and icons for whichever mode is currently active.

Real clock

DS3231 RTC module

Keeps accurate real-world time and date, even when the Arduino is unplugged, for the Time mode.

Night lights

8-LED WS2812 ring

Glows warm and twinkly under the globe for Night Lights mode, and different colors for other modes.

Power

4×AA battery pack or 5V USB power bank

Powers the Arduino, which powers everything else.

Craft supplies

Cardboard, foam ball, paper world map, glue

Builds the spinning globe itself and the base stand around the electronics.

🛡️ Adult helper zone: Build and test with a grown-up nearby, especially for cutting cardboard, using a hot glue gun, and wiring the battery.
3

How the circuit works

Everything electronic stays in the non-spinning base. The OLED screen and RTC clock share one I2C "conversation line," the touch pad sends a simple on/off signal, the LED ring gets its own data pin, and the motor gets its own driver so it doesn't overload the Arduino.

// Rotating Globe wiring map
   Arduino Uno / Nano
     5V  -----------------------> VCC rail (OLED, RTC, touch pad, LED ring)
     GND -----------------------> GND rail (shared by everything + motor driver)

     A4 (SDA) -------------------> OLED SDA  +  DS3231 SDA
     A5 (SCL) -------------------> OLED SCL  +  DS3231 SCL

     D2  ------------------------> TTP223 touch sensor OUT
     D6  ------------------------> WS2812 LED ring DIN
     D9 (PWM) --------------------> Motor driver IN (speed control)

   Motor Driver (L293D / MOSFET)
     OUT -------------------------> 5V Geared DC Motor -----> Axle -----> Cardboard Globe
     VMOTOR ----------------------> Battery pack +
     GND -------------------------> Shared GND
🧠 Arduino = the brain 🎚️ Motor driver = the muscle helper ⚙️ Motor + axle = keeps it spinning 🖥️ OLED + RTC = the display + clock 👆 Touch pad = mode switcher 💡 LED ring = the night lights
⚠️
Keep the spinning part simple: only the motor's axle and the cardboard globe should spin. The screen, lights, touch pad, and RTC all stay fixed in the base, so no wires ever twist up.
4

Step-by-step build

Follow these in order — the base electronics get built and tested before the globe goes on top.

Build the base stand

Cut a sturdy cardboard box or cylinder to hold the Arduino, breadboard, battery pack, OLED, and LED ring, with a hole in the center-top for the motor shaft to poke through.

Mount the motor and LED ring

Glue the geared motor upright in the center of the base with its shaft pointing up, and place the WS2812 ring around the shaft so light can shine upward.

Wire the OLED and RTC

Connect both to the shared A4/A5 (SDA/SCL) pins as shown in the circuit map — they can share the same two wires.

Wire the touch pad and motor driver

Connect the TTP223 to D2, and wire the motor driver between the Arduino's D9 pin, the battery, and the motor.

Upload and test the electronics

Paste in the code below and upload it. Confirm the motor spins, the OLED shows a mode, and tapping the touch pad changes it — before attaching the globe.

Build the cardboard globe

Wrap a foam ball or papier-mâché sphere with a printed world map, and push a short cardboard tube through its center so it fits snugly onto the motor shaft.

Attach the globe to the shaft

Slide the globe onto the motor shaft and secure it with a dab of glue so it spins smoothly without wobbling.

Decorate and finish

Add labels, paint the base, and trim any visible wires. Set the DS3231's time once using a quick setup sketch (see the FAQ) so Time mode is accurate.

5

The Arduino code

This sketch keeps the motor running all the time, watches the touch pad for taps, and redraws the OLED and LED ring whenever the mode changes.

rotating_globe.ino
// Rotating Globe — spins forever, touch button cycles 4 display modes
// Beginner-friendly Arduino sketch

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <RTClib.h>
#include <FastLED.h>

#define TOUCH_PIN   2
#define LED_PIN     6
#define MOTOR_PIN   9
#define NUM_LEDS    8

Adafruit_SSD1306 oled(128, 64, &Wire, -1);
RTC_DS3231 rtc;
CRGB leds[NUM_LEDS];

const char* countries[4] = {"Japan", "Brazil", "Kenya", "Norway"};
const char* weatherIcons[4] = {"Sunny", "Rainy", "Cloudy", "Snowy"};

int mode = 0;          // 0=Weather 1=Countries 2=Time 3=Night Lights
bool lastTouch = false;

void setup() {
  Wire.begin();
  oled.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  rtc.begin();

  pinMode(TOUCH_PIN, INPUT);
  pinMode(MOTOR_PIN, OUTPUT);
  analogWrite(MOTOR_PIN, 160); // motor spins at a steady gentle speed forever

  FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS);
  drawMode();
}

void loop() {
  bool touched = digitalRead(TOUCH_PIN);

  // only change mode on the moment of a new tap
  if (touched && !lastTouch) {
    mode = (mode + 1) % 4;
    drawMode();
    delay(200); // simple debounce
  }
  lastTouch = touched;
}

void drawMode() {
  oled.clearDisplay();
  oled.setTextColor(SSD1306_WHITE);
  oled.setCursor(0, 0);

  if (mode == 0) {                     // Weather
    oled.println("WEATHER MODE");
    oled.println(weatherIcons[random(0,4)]);
    fillRing(CRGB::SkyBlue);
  } else if (mode == 1) {              // Countries
    oled.println("COUNTRIES MODE");
    oled.println(countries[random(0,4)]);
    fillRing(CRGB::LimeGreen);
  } else if (mode == 2) {              // Time
    DateTime now = rtc.now();
    oled.println("TIME MODE");
    oled.print(now.hour()); oled.print(":"); oled.println(now.minute());
    fillRing(CRGB::White);
  } else {                                // Night Lights
    oled.println("NIGHT LIGHTS");
    twinkleRing();
  }

  oled.display();
}

void fillRing(CRGB color) {
  for (int i = 0; i < NUM_LEDS; i++) leds[i] = color;
  FastLED.show();
}

void twinkleRing() {
  for (int i = 0; i < NUM_LEDS; i++) {
    leds[i] = random(0,3) == 0 ? CRGB(255,210,120) : CRGB::Black;
  }
  FastLED.show();
}
🧩
Make it your own: try changing the number 160 in analogWrite(MOTOR_PIN, 160) to spin the globe faster or slower, or expand the countries list with fun facts you look up together.
6

Frequently asked questions

How do I set the real time on the DS3231 clock?

Most RTC library examples include a one-time "set time" sketch that reads your computer's clock and writes it to the module. Run that once, then switch back to the main sketch above.

Do the wires twist up as the globe spins?

No — only the motor shaft and the cardboard globe rotate. The screen, lights, RTC, and touch pad all stay still in the base, so nothing twists.

Can Weather mode show real weather instead of random icons?

Yes, as an upgrade — swapping the Arduino for an ESP32 lets you connect to Wi-Fi and fetch real weather data from an online weather service instead of picking a random icon.

Is it safe for kids to build?

Yes, with a grown-up helping — especially for cutting cardboard, using a hot glue gun, and any wiring around the battery pack.

Built for curious young makers 🌍 — always build with a grown-up, and keep it spinning!

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