• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Circuit Ideas for You

Get free circuit ideas online.

  • Home
  • Privacy Policy
  • About
Home » POV Project with LEDs and Arduino Circuit

POV Project with LEDs and Arduino Circuit

Last updated on 7 September 2025 by Admin-Lavi Leave a Comment

POV means Persistence of Vision.

Our eyes cannot see very fast blinking light separately.

If light blinks very fast then we see it like a line or picture.

Using this idea we can create letters or shapes with some LEDs.

Arduino controls LEDs in speed to make effect of display.

This project uses Arduino Nano, some LEDs, resistors and 9V battery.

LEDs are arranged in line and rotate or move fast.

When Arduino switch ON and OFF LEDs in sequence then it looks like text or design is floating in air.

Circuit coding:

// Arduino POV Display with 10 LEDs and Hall Sensor
// LEDs connected to D2–D9, D11, D12
// Hall sensor connected to D10

const int ledPins[10] = {2, 3, 4, 5, 6, 7, 8, 9, 11, 12}; // 10 LED pins
const int hallPin = 10;                                    // Hall sensor pin
int hallState = 0;

// Example pattern for letter "A" (10 rows)
byte patternA[10] = {
  B0001111000,
  B0010000100,
  B0100000010,
  B0100000010,
  B0111111110,
  B0100000010,
  B0100000010,
  B0100000010,
  B0100000010,
  B0100000010
};

void setup() {
  // Set all LED pins as OUTPUT
  for (int i = 0; i < 10; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
  pinMode(hallPin, INPUT);
}

void loop() {
  // Wait for hall sensor trigger (magnet passes sensor)
  hallState = digitalRead(hallPin);
  if (hallState == LOW) {
    showLetter(patternA); // show letter A
  }
}

// Function to display a letter pattern
void showLetter(byte letter[10]) {
  for (int col = 0; col < 10; col++) {
    for (int row = 0; row < 10; row++) {
      if (bitRead(letter[col], row)) {
        digitalWrite(ledPins[row], HIGH);
      } else {
        digitalWrite(ledPins[row], LOW);
      }
    }
    delayMicroseconds(1000); // adjust for clarity of letter
  }
}

Coding Explanation:

  • const int ledPins[10] = {2, 3, 4, 5, 6, 7, 8, 9, 11, 12}
  • This array saves pin numbers for all 10 LEDs and each LED connected with a resistor.
  • const int hallPin = 10
  • Hall sensor output connected to pin D10 of Arduino and is used for rotation synchronization.
  • byte patternA[10] = { … }
  • This makes a 10×10 binary pattern for letter “A”.
  • Each value is one vertical column of the letter.
  • 1 = LED ON, 0 = LED OFF.
  • void setup()
  • Runs one time when Arduino starts.
  • All LED pins are set as OUTPUT.
  • Hall sensor pin is set as INPUT.
  • void loop()
  • Runs again and again.
  • Arduino keeps checking hall sensor.
  • When hall sensor detects magnet with LOW signal and Arduino starts showing the letter by calling showLetter(patternA).
  • void showLetter(byte letter[10])
  • Function to display a letter column by column.
  • Outer loop goes through each column of the letter.
  • Inner loop goes through each LED (row).
  • If bit = 1 then LED is ON or else LED is OFF.
  • After one column is shown then delayMicroseconds(1000) gives short delay before next column.
  • How letters appear
  • LEDs turn ON/OFF very fast while the strip rotates.
  • Our eyes merge the blinking into full shapes.
  • Because of persistence of vision we can see floating letters like “A” in the air.

Circuit Working:

POV Project with LEDs and Arduino Circuit Diagram

Parts List:

ComponentSpecificationQuantity
Resistors220Ω 1/4 watt10
SemiconductorsArduino Nano1
Hall Sensor Module1
Red LEDs 5mm 20mA10
9V Battery1

The heart of this project is Arduino Nano.

It controls 10 LEDs through pins D2 to D12.

Each LED has resistor in series to limit current.

Arduino take power from 9V battery through Vin pin.

There is also a small IR sensor module in the circuit which is connected to D10 of Arduino.

This sensor is used for synchronizing display or detecting position while rotating.

Sensor sends signal to Arduino at one position and then Arduino start sending pattern to LEDs.

When motor or hand rotates LED strips fast and Arduino blink LEDs in programmed pattern.

Our eye see full letters or symbols because of persistence of vision.

Note:

We can use an old fan which is one of the easiest ways to rotate the LEDs for a POV display.

Many hobbyists do this because:

The fan motor already gives a steady rotation.

It is low cost and easy to find in old table fans, CPU fans or cooler fans.

We can just attach the LED strip with Arduino Nano on one blade or on a piece mounted to the fan.

Formula:

For LED resistor value we use ohms law formula:

R = (Vcc – Vf) / If

here,

  • Vcc is 5V from Arduino pin
  • Vf is forward voltage of LED which is approx 2V
  • If is forward current which is approx 20mA

How to Build:

To build a POV Project with LEDs and Arduino Circuit follow the below steps for connections:

  • Take all the parts as shown in circuit diagram
  • Arduino Nano Vin pin connected to 9V battery positive
  • Arduino Nano GND connected to battery negative
  • Pins D2 to D12 are connected to resistors one end and other end are connected to LED anodes in series
  • All LED cathodes connected together to ground
  • IR sensor module VCC pin connect to 5V pin of Arduino
  • IR sensor GND pin connect to Arduino GND
  • IR sensor output pin connect to pin D10 of Arduino as per circuit diagram

Conclusion:

This POV Project with LEDs and Arduino Circuit shows how simple parts can create visual magic.

By fast blinking LEDs, Arduino creates words or shapes in air.

This is called Persistence of Vision display.

We can program different patterns or letters.

It is fun project for beginners and also useful for learning timing, sensor and LED control with Arduino.

References:

POV Display using ESP32

Filed Under: Arduino Projects, Sensors and Detectors

About Admin-Lavi

Lavi is a B.Tech electronics engineer with a passion for designing new electronic circuits. Do you have questions regarding the circuit diagrams presented on this blog? Feel free to comment and solve your queries with quick replies

Previous Post: « Single Transistor Theremin Oscillator Circuit
Next Post: Arduino Based Automatic Gate Opening and Closing Circuit »

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar




Categories

  • Alarm Circuits (33)
  • Amplifier Circuits (67)
  • Arduino Projects (36)
  • Audio Circuits (94)
  • Automobile Circuits (19)
  • Battery Charger Circuits (48)
  • Free Energy (13)
  • Heater and Temperature Controllers (10)
  • High Voltage (1)
  • Indicator Circuits (38)
  • Inverter Circuits (13)
  • LDR Circuits (15)
  • LED and Lamps (116)
  • Meters and Testers (28)
  • Motor Controllers (18)
  • Oscillator Circuits (34)
  • Power Supply Circuits (92)
  • Remote Control Circuits (6)
  • Security and Protection (25)
  • Sensors and Detectors (84)
  • Solar Circuits (17)
  • Timer Circuits (30)
  • Transistor Circuits (57)
  • Transmitter Circuit (12)
  • Tutorials (5)
  • Water Level Controller (4)

Recent Posts

  • Sound Sensor Circuit using IC LM393
  • Sound Sensor Direction Circuit using Arduino
  • Dancing Water Fountain Circuit with Arduino
  • Arduino Based Obstacle Avoidance Robot Circuit
  • Arduino Based Automatic Gate Opening and Closing Circuit

Recent Comments

  1. Admin-Lavi on Constant Voltage, Constant Current Battery Charger Circuit
  2. Bill on Constant Voltage, Constant Current Battery Charger Circuit
  3. Admin-Lavi on Long Range FM Transmitter Circuit (2km)
  4. Sina on Long Range FM Transmitter Circuit (2km)
  5. Admin-Lavi on Long Range FM Transmitter Circuit (2km)

Copyright © 2025 | New Circuit Ideas