Project tutorial
POV Fan Display Making

POV Fan Display Making

I have made this project using an old CD player's DC motor, Arduino Pro Mini, LED, a Hall sensor, and some other electronic components.

  • 3,989 views
  • 0 comments
  • 20 respects

Components and supplies

Apps and online services

About this project

I have made this project for fun only.

I want to create a 3D printing display having RGB LED and rotating display. this project is first step in that direction.

Another reason of thir project is I inspire to made this kind of project after watching videos of my favorite YouTuber ( GreatScott).

Code

POV fanArduino
This code work with 5 LED POV display.
int timer = 900; //LED ON TIMING FOR ONE COLUM    
int HALL_SENS = 2; // HALL SENSOR INPUT PIN
int State = 0; // HALL SENSOR SENSED FLAG         
int lastState = 0; // HALL SENSOR SENSED FLAG LAST SCAN
long count; //TIME COUNTER FOR CHANGIING DISPLAY PRINTING
boolean space[]={0,0,0,0,0};   // SINGLE SPACE BAR
boolean A[]={1,1,1,1,1,0,0,1,0,1,1,1,1,1,1};//BIT MAP FOR A
boolean B[]={1,1,1,1,1,1,0,1,0,1,1,1,1,1,1};//BIT MAP FOR B
boolean C[]={1,1,1,1,1,1,0,0,0,1,1,0,0,0,1};//BIT MAP FOR C
boolean D[]={1,1,1,1,1,1,0,0,0,1,0,1,1,1,0};//BIT MAP FOR D
boolean E[]={1,1,1,1,1,1,0,1,0,1,1,0,1,0,1};//BIT MAP FOR E
boolean F[]={1,1,1,1,1,0,0,1,0,1,0,0,1,0,1};//BIT MAP FOR F
boolean G[]={1,1,1,1,1,1,0,0,0,1,1,0,1,0,1,1,1,1,0,1};//BIT MAP FOR G
boolean H[]={1,1,1,1,1,0,0,1,0,0,1,1,1,1,1};//BIT MAP FOR H
boolean I[]={1,0,0,0,1,1,1,1,1,1,1,0,0,0,1};//BIT MAP FOR I
boolean J[]={1,1,0,0,0,1,0,0,0,0,1,1,1,1,1};//BIT MAP FOR J
boolean K[]={1,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1};//BIT MAP FOR K
boolean L[]={1,1,1,1,1,1,0,0,0,0,1,0,0,0,0};//BIT MAP FOR L
boolean M[]={1,1,1,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1};//BIT MAP FOR M
boolean N[]={1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,1,1,1,1};//BIT MAP FOR N
boolean O[]={1,1,1,1,1,1,0,0,0,1,1,1,1,1,1};//BIT MAP FOR O
boolean P[]={1,1,1,1,1,0,0,1,0,1,0,0,1,1,1};//BIT MAP FOR P
boolean Q[]={1,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,0,0,1,0,0,0,0};//BIT MAP FOR Q
boolean R[]={1,1,1,1,1,0,1,1,0,1,1,0,1,1,1};//BIT MAP FOR R
boolean S[]={1,0,1,1,1,1,0,1,0,1,1,1,1,0,1};//BIT MAP FOR S
boolean T[]={0,0,0,0,1,1,1,1,1,1,0,0,0,0,1};//BIT MAP FOR T
boolean U[]={1,1,1,1,1,1,0,0,0,0,1,1,1,1,1};//BIT MAP FOR U
boolean V[]={0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1};//BIT MAP FOR V
boolean W[]={1,1,1,1,1,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1};//BIT MAP FOR W
boolean X[]={1,0,0,0,1,0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1};//BIT MAP FOR X
boolean Y[]={0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1};//BIT MAP FOR Y
boolean Z[]={1,1,0,0,1,1,0,1,0,1,1,0,0,1,1};//BIT MAP FOR Z
boolean exclamationmark[]={1,0,1,1,1,1,0,1,1,1};//BIT MAP FOR !
int m;//MARKER MEMORY FOR CHARECTER PRINTING LOOP
void setup() {// SETUP FOR INITIALISE SERIAL PORT AND DEFINE INPUT & OUTPUTS
  Serial.begin(115200);
  for (int Pin = 3; Pin <=7; Pin++) {
    pinMode(Pin, OUTPUT);
    digitalWrite(Pin,LOW);}
    pinMode(HALL_SENS, INPUT_PULLUP);}
void loop() {// MAIN LOOP 
State = digitalRead(HALL_SENS);
if (State != lastState){
  if (State == LOW) {
if(count >= 0 & count < 20001){//Ashish
                    WriteLetter3Width(A);
                    WriteLetter1Width(space);
                    WriteLetter3Width(S);
                    WriteLetter1Width(space);
                    WriteLetter3Width(H);
                    WriteLetter1Width(space);
                    WriteLetter3Width(I);
                    WriteLetter1Width(space);
                    WriteLetter3Width(S);
                    WriteLetter1Width(space);
                    WriteLetter3Width(H);
                    WriteLetter1Width(space);
                    WriteLetter3Width(I);
                    WriteLetter1Width(space);
                    WriteLetter3Width(S);
                    WriteLetter2Width(exclamationmark);
                    WriteLetter1Width(space);

                    }
if(count > 20001 & count < 40001 ){//Great
                    WriteLetter4Width(G);
                    WriteLetter1Width(space);
                    WriteLetter3Width(R);
                    WriteLetter1Width(space);
                    WriteLetter3Width(E);
                    WriteLetter1Width(space);
                    WriteLetter3Width(A);
                    WriteLetter1Width(space);
                    WriteLetter3Width(T);
                    WriteLetter1Width(space);
                    WriteLetter2Width(exclamationmark);
                    WriteLetter1Width(space);}}
lastState = State;}
count++;
if(count > 40001) {count = 0;}}
void WriteLetter5Width(boolean letter[]){// FUNCTION FOR 5 WIDTH CHARECTERS M,N,Q,V,W,X,Y
  m=0;
  for (int n=0; n<=4; n++){
  for (int Pin = 7; Pin >=3; Pin--) {
    digitalWrite(Pin, letter[m]);
    m=m+1;}
    delayMicroseconds(timer);}}
void WriteLetter4Width(boolean letter[]){// FUNCTION FOR 4 WIDTH CHARECTERS G,K
  m=0;
  for (int n=0; n<=3; n++){
  for (int Pin = 7; Pin >=3; Pin--) {
    digitalWrite(Pin, letter[m]);
    m=m+1;}
    delayMicroseconds(timer);}}
void WriteLetter3Width(boolean letter[]){// FUNCTION FOR 3 WIDTH CHARECTERS A,B,C,D,E,F,H,I,J,L,O,P,R,S,T,U,V,Z
  m=0;
  for (int n=0; n<=2; n++){
  for (int Pin = 7; Pin >=3; Pin--) {
    digitalWrite(Pin, letter[m]);
    m=m+1;}
    delayMicroseconds(timer);}}
void WriteLetter2Width(boolean letter[]){// FUNCTION FOR 2 WIDGH CHARECTERS !
  m=0;
  for (int n=0; n<=1; n++){
  for (int Pin = 7; Pin >=3; Pin--) {
    digitalWrite(Pin, letter[m]);
    m=m+1;}
    delayMicroseconds(timer);}}
void WriteLetter1Width(boolean letter[]){// FUNCTION FOR SINGLE WIDHT CHARECTERS "SPACE BAR"
  m=0;
   for (int Pin = 7; Pin >=3; Pin--) {
    digitalWrite(Pin, space[m]);
    m=m+1;}
    delayMicroseconds(timer);}

Schematics

POV fan.fzz
Schematic of POV fan.
i have used bread bord in schematic. in real all wiring are made directly to shrink project so that it can fixed on scale and rotate easily,
pov_fan_JscAXhIP2t.fzz

Comments

Similar projects you might like

Fitness Tracker Using POV Display

Project showcase by sayinath karuppanan

  • 2,487 views
  • 0 comments
  • 4 respects

GPS Location Display With GPS And TFT Display Shields

Project tutorial by Boian Mitov

  • 8,819 views
  • 5 comments
  • 23 respects

(Updated) Digital Clock w/ Mirrored Display for UNO-R3 & 101

Project tutorial by LAGSILVA

  • 993 views
  • 0 comments
  • 3 respects

Control a 7 Segment Display with a keypad!

Project tutorial by Isaac100

  • 9,257 views
  • 17 comments
  • 17 respects

LED Matrix Display Badge

Project tutorial by Team FabLabAQ

  • 2,117 views
  • 0 comments
  • 12 respects

DIY 7-Segment Display

Project tutorial by Pop Gheorghe

  • 909 views
  • 2 comments
  • 1 respect
Add projectSign up / Login