Introduction: Bluetooth Controlled Arduino POV

About: Studying Electronics andCommunication Engineering and passionate about IOT.


Persistence of vision refers to the optical illusion that occurs when visual perception of an object does not cease for some time after the rays of light proceeding from it have ceased to enter the eye. The illusion has also been described as "retinal persistence",”persistence of impressions" or simply "persistence" and other variations.

The working of Arduino POV is based on the principle of persistence of vision. The human brain stores the visual for atleast tp sec . So any change within tp seconds gets unnoticed.

Let us consider an example of displaying letter H.

Initially all the LEDs of 1st position are switched ON. Within tp sec one LED of 2nd positions is made ON. Again within tp sec, all the LEDs of 3rd position are ON. Thus H is displayed.

Now for displaying 2nd letter after H, after time greater than tp sec, display the letter in a similar way as H is displayed, by making required LEDs high.

This project is made of 2 parts:

PART A (without bluetooth)

PART B (with bluetooth)

Hardware requirements:

Arduino Nano

Leds ( 5 nos)

resistors (220 ohms and 10 k ohms)

Hall effect Sensor ( 44e)

HC-05 bluetooth module

30cm ruler

Table fan/ motor

mobile battery/ Lipo battery (3.7v/5v)

General purpose PCB


male and female burg pins

soldering gun and soldering lead

magnet and tape.

Software Requirements:

Arduino IDE

Bluetooth Terminal Application on smartphone.

Step 1: Setup

Download the Arduino IDE for their Official Website.

Gather all the parts required.

Step 2: Connections (PART A)

The circuit diagram is shown in the figure. Solder the components onto a general purpose PCB.

Hall effect sensor is used so that the display always start from the position where the magnet is kept.

without using hall effect sensor you get a running display which is not visible properly.

Step 3: Program

In the program we can see the each letter is defined in an array.


int H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1};

Letters are virtually made of 3 rows as shown in figure. In the array a set of 5 elements comprise of row (ie 1st 5 is for row1 and next 5 are for row2 and next 5 for row3). This array information is supplied to the leds to make them glow in specific order.

To Display H:

At time 't' all leds are turned ON(first 5 elements of array are 1's/HIGH). After a very small time delay of Tp(dotTime) only middle led in turned on( in middle 5 elements only one element is 1/HIGH) .Then after Tp again all leds are turned ON(last 5 elements of array are 1's/HIGH). this is done is a very quick succession which creates a illusion that the letter H is Displayed.

This time delay depends of the speed of the fan motor and cannot be calculated easily as the fan motor speed in not ideal. Hence Trial and error method is used to calculate this delay.

the next element is displayed after another time delay Tn(letterSpace).


Step 4: Final Setup

Fit the above setup onto the scale and mount it onto the fan rotor as shown in the video.

Make sure you balance weight on the either side of the ruler. This is essential for smooth operation.

entire setup must be balanced when you hold at the mid point of the scale.Balancing can be done by attaching required amount of weights(ex : coins) on any side.

Place the magnet in the position where you want to start the display.

Upload the code using Arduino IDE to the Arduino Nano board.

Step 5: RUN!

Run the Fan/motor. Make sure to hold the fan if there is any unbalance.

Turn OFF the room lights for better effect and clarity.

If your are not seeing the letters try to change the dot time and letterspace time delays and try again until you get the proper display.

Step 6: With Bluetooth (PART B)

Follow this step only if PART A is Completed and working.

Connect the bluetooth module to the pin 10 and 11 of nano board and also connect Vcc and Gnd. Don't forget to balance the ruler after adding bluetooth module!

Download the Bluetooth terminal application on android phone.

Software Serial is Used for the bluetooth interfacing.

Upload the program(POV_BLUETOOTH_SIMPLE) onto the Nano board. Connect the bluetooth module to the bluetooth terminal app on the phone.

Type the text in the terminal App and send it to Nano.

This is a simple code. To Send new text you will have to reset the arduino manually by switching OFF the Fan/motor.

Step 7: Displaying (PART B)

Run the fan/motor.

Use This program to update the texts in real time without resetting the arduino:

Type the text on the bluetooth terminal application and end with '&' symbol and send it. '&' is used to indicate the end of the text. The text is stored in an array(buffer) and it is used for displaying as done in PART A.

To send the next text you need to send a '$' symbol first and then the required text. If the program receives '$' symbol then the buffer containing the previous text is erased.

Step 8: Finish!!

You have made yourself a arduino POV display! Show it your family and friends and enjoy!!

Thank YOU!!

LED Contest 2017

Participated in the
LED Contest 2017

Arduino Contest 2017

Participated in the
Arduino Contest 2017

Remote Control Contest 2017

Participated in the
Remote Control Contest 2017