Aim: The main aim is to make a virtual display for affectation of ones thoughts. It could be a birthday present for the beloved ones.
Working :
Rotating LED Display or POV Display is a rotating LED strip, and LEDs blinks according to alphabets, that makes some visible words. The complete working is shown in “Working of Rotating LED Display” ➢ Rotating LED display is an amazing and very simple project, you can make this easily and gift to your special someone. Rotating LED Display also called POV Display. This project is made by using Arduino Nano. Arduino Nano is very small in size, cheap and have on board programmer, so it doesn’t need any external programmer. Arduino Nano is Breadboard friendly so its an positive point.
Components required:

Circuit Diagram:

Working:
- “POV display” or “Rotating LED Display” is just an Eye Cheat, our eyes does not differentiate the very fast movement. In this ‘POV display’ LED strip rotates very fast (More than 500 RPM) and LEDs makes a pattern according to the alphabets, so we can see the words or alphabets.
- If we want to show the alphabet ‘A’ on POV Display, some LEDs of first column are glowing, LEDs glows according to the alphabet. After some milliseconds delay LEDs of second column are glowing and the speed of LED, blinking is very fast so we cannot differentiate the changes and see only some alphabets.
- In the rotating LED display, Arduino Nano used as controlling Unit. Arduino is a microcontroller Board, which control the LEDs and make a blink pattern. A pair of IR LED (Infrared LED) and PD (Photodiode) used for determining the starting point of the rotation.
- When circuit of the POV display cross over the white strip, Photo diode detect it and starts the LED strip according to alphabets, every time it makes the same pattern so we can clearly see the alphabets.
Code:
int StartPin=A7; // PD is connected to this Pin int LED1 =12; //LED int LED2 =11; //LED int LED3 =10; //LED int LED4 =9; //LED int LED5 =8; //LED int LED6 =7; //LED int LED7 =6; //LED int i=0; int j=0; char TEXT[12]; char TEXT1[] = "---HELLO---"; char TEXT3[] = "----HOW----"; char TEXT4[] = "----ARE----"; char TEXT5[] = "----YOU----"; int txt = 9; int t = 5; void setup(){ Serial.begin(9600); pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); pinMode(LED5,OUTPUT); pinMode(LED6,OUTPUT); pinMode(LED7,OUTPUT); pinMode(13,OUTPUT); strcpy(TEXT, TEXT1); } void loop(){ int val=analogRead(StartPin); //read the value of PD if(val < 200){ //TEXT write Here j++; if (0*t < j && j < 10*t ) {strcpy(TEXT, TEXT1);} if (10*t < j && j < 20*t ) {strcpy(TEXT, TEXT2);} if (20*t < j && j < 30*t ) {strcpy(TEXT, TEXT3);} if (30*t < j && j < 40*t ) {strcpy(TEXT, TEXT4);} if (40*t < j && j < 50*t ) {strcpy(TEXT, TEXT5);} if (50*t < j && j < 60*t ) {strcpy(TEXT, TEXT6);} if (60*t < j && j < 70*t ) {strcpy(TEXT, TEXT7);} if (70*t < j && j < 80*t ) {strcpy(TEXT, TEXT8);} if (80*t < j && j < 90*t ) {strcpy(TEXT, TEXT9);} if (txt < 2 && j > 10*t-1) {j=0;} if (txt < 3 && j > 20*t-1) {j=0;} if (txt < 4 && j > 30*t-1) {j=0;} if (txt < 5 && j > 40*t-1) {j=0;} if (txt < 6 && j > 50*t-1) {j=0;} if (txt < 7 && j > 60*t-1) {j=0;} if (txt < 8 && j > 70*t-1) {j=0;} if (txt < 9 && j > 80*t-1) {j=0;} if (txt < 10 && j > 90*t-1) {j=0;} Serial.println(j); Serial.println(TEXT); for (i=0; i<12; i++){ if (TEXT[i] == 'A') {A(); Sp();}; if (TEXT[i] == 'B') {B(); Sp();}; if (TEXT[i] == 'C') {C(); Sp();}; if (TEXT[i] == 'D') {D(); Sp();}; if (TEXT[i] == 'E') {E(); Sp();}; if (TEXT[i] == 'F') {Ff(); Sp();}; if (TEXT[i] == 'G') {G(); Sp();}; if (TEXT[i] == 'H') {H(); Sp();}; if (TEXT[i] == 'I') {I(); Sp();}; if (TEXT[i] == 'J') {J(); Sp();}; if (TEXT[i] == 'K') {K(); Sp();}; if (TEXT[i] == 'L') {L(); Sp();}; if (TEXT[i] == 'M') {M(); Sp();}; if (TEXT[i] == 'N') {N(); Sp();}; if (TEXT[i] == 'O') {O(); Sp();}; if (TEXT[i] == 'P') {P(); Sp();}; if (TEXT[i] == 'Q') {Q(); Sp();}; if (TEXT[i] == 'R') {R(); Sp();}; if (TEXT[i] == 'S') {S(); Sp();}; if (TEXT[i] == 'T') {T(); Sp();}; if (TEXT[i] == 'U') {U(); Sp();}; if (TEXT[i] == 'V') {V(); Sp();}; if (TEXT[i] == 'W') {W(); Sp();}; if (TEXT[i] == 'X') {X(); Sp();}; if (TEXT[i] == 'Y') {Y(); Sp();}; if (TEXT[i] == 'Z') {Z(); Sp();}; if (TEXT[i] == '-') {Sp();Sp();}; } } } void A(){ //Alphabet A signal(0,1,1,1,1,1,1); // 1st Column signal(1,0,0,1,0,0,0); // 2nd Column signal(1,0,0,1,0,0,0); // 3rd Column signal(1,0,0,1,0,0,0); // 4th Column signal(0,1,1,1,1,1,1); // 5th column } void B(){ signal(1,1,1,1,1,1,1); signal(1,0,0,1,0,0,1); signal(1,0,0,1,0,0,1); signal(1,0,0,1,0,0,1); signal(0,1,1,1,1,1,0); } void C(){ signal(0,1,1,1,1,1,0); signal(1,0,0,0,0,0,1); signal(1,0,0,0,0,0,1); signal(1,0,0,0,0,0,1); signal(0,1,0,0,0,1,0); } void D(){ signal(1,1,1,1,1,1,1); signal(1,0,0,0,0,0,1); signal(1,0,0,0,0,0,1); signal(1,0,0,0,0,0,1); signal(0,1,1,1,1,1,0); } void E(){ signal(1,1,1,1,1,1,1); signal(1,0,0,1,0,0,1); signal(1,0,0,1,0,0,1); signal(1,0,0,1,0,0,1); signal(1,0,0,0,0,0,1); } void Ff(){ signal(1,1,1,1,1,1,1); signal(1,0,0,1,0,0,0); signal(1,0,0,1,0,0,0); signal(1,0,0,1,0,0,0); signal(1,0,0,0,0,0,0); } void G(){ signal(0,1,1,1,1,1,0); signal(1,0,0,0,0,0,1); signal(1,0,0,0,1,0,1); signal(1,0,0,0,1,0,1); signal(0,1,0,0,1,1,1); } void H(){ signal(1,1,1,1,1,1,1); signal(0,0,0,1,0,0,0); signal(0,0,0,1,0,0,0); signal(0,0,0,1,0,0,0); signal(1,1,1,1,1,1,1); } void I(){ signal(1,0,0,0,0,0,1); signal(1,1,1,1,1,1,1); signal(1,0,0,0,0,0,1); } void J(){ signal(0,0,0,0,0,1,0); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); signal(1,1,1,1,1,1,0); } void K(){ signal(1,1,1,1,1,1,1); signal(0,0,0,1,0,0,0); signal(0,0,1,0,1,0,0); signal(0,1,0,0,0,1,0); signal(0,0,0,0,0,0,1); } void L(){ signal(1,1,1,1,1,1,1); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); } void M(){ signal(1,1,1,1,1,1,1); signal(0,1,0,0,0,0,0); signal(0,0,1,0,0,0,0); signal(0,0,0,1,0,0,0); signal(0,0,1,0,0,0,0); signal(0,1,0,0,0,0,0); signal(1,1,1,1,1,1,1); } void N(){ signal(1,1,1,1,1,1,1); signal(0,0,1,0,0,0,0); signal(0,0,0,1,0,0,0); signal(0,0,0,0,1,0,0); signal(1,1,1,1,1,1,1); } void O(){ signal(0,1,1,1,1,1,0); signal(1,0,0,0,0,0,1); signal(1,0,0,0,0,0,1); signal(1,0,0,0,0,0,1); signal(0,1,1,1,1,1,0); } void P(){ signal(1,1,1,1,1,1,1); signal(1,0,0,1,0,0,0); signal(1,0,0,1,0,0,0); signal(0,1,1,0,0,0,0); } void Q(){ signal(0,1,1,1,1,1,0); signal(1,0,0,0,0,0,1); signal(1,0,0,0,1,0,1); signal(1,0,0,0,0,1,0); signal(0,1,1,1,1,0,1); } void R(){ signal(1,1,1,1,1,1,1); signal(1,0,0,1,0,0,0); signal(1,0,0,1,1,0,0); signal(1,0,0,1,0,1,0); signal(0,1,1,0,0,0,1); } void S(){ signal(0,1,1,0,0,0,1); signal(1,0,0,1,0,0,1); signal(1,0,0,1,0,0,1); signal(1,0,0,1,0,0,1); signal(1,0,0,0,1,1,0); } void T(){ signal(1,0,0,0,0,0,0); signal(1,0,0,0,0,0,0); signal(1,1,1,1,1,1,1); signal(1,0,0,0,0,0,0); signal(1,0,0,0,0,0,0); } void U(){ signal(1,1,1,1,1,1,0); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); signal(0,0,0,0,0,0,1); signal(1,1,1,1,1,1,0); } void V(){ signal(1,1,1,0,0,0,0); signal(0,0,0,1,1,0,0); signal(0,0,0,0,0,1,1); signal(0,0,1,1,0,0,0); signal(1,1,1,0,0,0,0); } void W(){ signal(1,1,1,1,1,1,1); signal(0,0,0,0,0,1,0); signal(0,0,0,1,1,0,0); signal(0,0,0,0,0,1,0); signal(1,1,1,1,1,1,1); } void X(){ signal(1,1,0,0,0,1,1); signal(0,0,1,0,1,0,0); signal(0,0,0,1,0,0,0); signal(0,0,1,0,1,0,0); signal(1,1,0,0,0,1,1); } void Y(){ signal(1,1,0,0,0,0,0); signal(0,0,1,0,0,0,0); signal(0,0,0,1,1,1,1); signal(0,0,1,0,0,0,0); signal(1,1,0,0,0,0,0); } void Z(){ signal(1,0,0,0,0,1,1); signal(1,0,0,0,1,0,1); signal(1,0,0,1,0,0,1); signal(1,0,1,0,0,0,1); signal(1,1,0,0,0,0,1); } void Sp(){ signal(0,0,0,0,0,0,0); signal(0,0,0,0,0,0,0); signal(0,0,0,0,0,0,0); } void signal(int D1,int D2,int D3,int D4,int D5,int D6,int D7){ if (D1==1) {digitalWrite(LED1,HIGH);} else {digitalWrite(LED1,LOW);} if (D2==1) {digitalWrite(LED2,HIGH);} else {digitalWrite(LED2,LOW);} if (D3==1) {digitalWrite(LED3,HIGH);} else {digitalWrite(LED3,LOW);} if (D4==1) {digitalWrite(LED4,HIGH);} else {digitalWrite(LED4,LOW);} if (D5==1) {digitalWrite(LED5,HIGH);} else {digitalWrite(LED5,LOW);} if (D6==1) {digitalWrite(LED6,HIGH);} else {digitalWrite(LED6,LOW);} if (D7==1) {digitalWrite(LED7,HIGH);} else {digitalWrite(LED7,LOW);} delay(1); // change this accordimg to speed of motor }
Leave a Reply