POV DISPLAY

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

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Start a Blog at WordPress.com.

Up ↑

Create your website at WordPress.com
Get started
%d bloggers like this: