Thursday, July 24, 2014

POV ( Persistance of Vision ) Arduino


Parts needed :
: Arduino uno x 1
: led x 5
: 1k resistor x 5

Step 1: Wiring



Connect all the wire as shown in the figure :
Digital pin 2 to led 1
Digital pin 3 to led 2
Digital pin 4 to led 3
Digital pin 5 to led 4
Digital pin 6 to led 5

don't forget the resister ...!
.............................................................................................................................
Possible improvement

# custom shield for arduino
# adding battery
# adding more led 's
.............................................................................................................................
and upload the sketch and you are left with an amazing pov display...:)

Step 2: Sketch

Change in the " loop " function the text !!!!

    CODE :

int _[] = {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0};
int A[] = {0,1,1,1,1, 1,0,1,0,0, 0,1,1,1,1};
int B[] = {1,1,1,1,1, 1,0,1,0,1, 0,1,0,1,0};
int C[] = {0,1,1,1,0, 1,0,0,0,1, 1,0,0,0,1};
int D[] = {1,1,1,1,1, 1,0,0,0,1, 0,1,1,1,0};
int E[] = {1,1,1,1,1, 1,0,1,0,1, 1,0,1,0,1};
int F[] = {1,1,1,1,1, 1,0,1,0,0, 1,0,1,0,0};
int G[] = {0,1,1,1,0, 1,0,1,0,1, 0,0,1,1,0};
int H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1};
int I[] = {0,0,0,0,1, 1,0,1,1,1, 0,0,0,0,1};
int J[] = {1,0,0,0,0, 1,0,0,0,1, 1,1,1,1,1};
int K[] = {1,1,1,1,1, 0,0,1,0,0, 0,1,0,1,1};
int L[] = {1,1,1,1,1, 0,0,0,0,1, 0,0,0,0,1};
int M[] = {1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1};
int N[] = {1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1};
int O[] = {0,1,1,1,0, 1,0,0,0,1, 0,1,1,1,0};
int P[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,0,0};
int Q[] = {0,1,1,1,1, 1,0,0,1,1, 0,1,1,1,1};
int R[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,1,1};
int S[] = {0,1,0,0,1, 1,0,1,0,1, 1,0,0,1,0};
int T[] = {1,0,0,0,0, 1,1,1,1,1, 1,0,0,0,0};
int U[] = {1,1,1,1,1, 0,0,0,0,1, 1,1,1,1,1};
int V[] = {1,1,1,1,0, 0,0,0,0,1, 1,1,1,1,0};
int W[] = {1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,0};
int X[] = {1,1,0,1,1, 0,0,1,0,0, 1,1,0,1,1};
int Y[] = {1,1,0,0,0, 0,0,1,0,0, 1,1,1,1,1};
int Z[] = {1,0,0,1,1, 1,0,1,0,1, 1,1,0,0,1};
int letterSpace;
int dotTime;
void setup()
{
  // setting the ports of the leds to OUTPUT
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);

  // defining the space between the letters (ms)
  letterSpace = 6;
  // defining the time dots appear (ms)
  dotTime = 3;

}
void printLetter(int letter[])
{
  int y;

  // printing the first y row of the letter
  for (y=0; y<5; y++)
  {
    digitalWrite(y+2, letter[y]);
  }
  delay(dotTime);

  // printing the second y row of the letter
  for (y=0; y<5; y++)
  {
    digitalWrite(y+2, letter[y+5]);
  }
  delay(dotTime);

  // printing the third y row of the letter
  for (y=0; y<5; y++)
  {
    digitalWrite(y+2, letter[y+10]);
  }
  delay(dotTime);

  // printing the sspace between the letters
  for (y=0; y<5; y++)
  {
    digitalWrite(y+2, 0);
  }
  delay(letterSpace);
}
void loop()
{
  // you can print your own text by modifing here :) !!!!!!!!!!!!!!!!
  printLetter(H);
  printLetter(U);
  printLetter(A);
  printLetter(_);
  printLetter(_);
 
}

Vu Meter ( Arduino )

Schematic :



Code :

int timp = 10; 
int song = 10  ;
int val  = 0 ;
void setup() {
  for (int i=2;i<=13;i++)
  {
  pinMode (i, OUTPUT);
  }
  Serial.begin(9600);
}

void loop() {
    delay(timp);
    val = analogRead(A0);
    Serial.print("Valoare audio: ");
    Serial.println(val);
  
  if ( (song *1)  < val){
    digitalWrite (13 ,HIGH);} 
  else {
    digitalWrite (13 ,LOW);}
  
  if ( (song *2)  < val) {
    digitalWrite (12 ,HIGH);} 
  else {
    digitalWrite (12 ,LOW);}
    
  if ( (song *3)  < val) {
    digitalWrite (11 ,HIGH);} 
  else {
    digitalWrite (11 ,LOW);}
    
  if ( (song *4)  < val) {
    digitalWrite (10 ,HIGH);} 
  else {
    digitalWrite (10 ,LOW);}
    
  if ( (song *5)  < val) {
    digitalWrite (9  ,HIGH);} 
  else {
    digitalWrite (9  ,LOW);}
    
  if ( (song *6)  < val) {
    digitalWrite (8  ,HIGH);} 
  else {
    digitalWrite (8  ,LOW);}
    
  if ( (song *7)  < val) {
    digitalWrite (7  ,HIGH);} 
  else {
    digitalWrite (7  ,LOW);}
    
  if ( (song *8)  < val) {
    digitalWrite (6  ,HIGH);} 
  else {
    digitalWrite (6  ,LOW);}
    
  if ( (song *9)  < val) {
    digitalWrite (5  ,HIGH);} 
  else {
    digitalWrite (5  ,LOW);}
    
  if ( (song *10) < val) {
    digitalWrite (4  ,HIGH);} 
  else {
    digitalWrite (4  ,LOW);}
    
  if ( (song *11) < val) {
    digitalWrite (3  ,HIGH);} 
  else {
    digitalWrite (3  ,LOW);}
    
  if ( (song *12) < val) {
    digitalWrite (2  ,HIGH);} 
  else {
    digitalWrite (2  ,LOW);}
  
} // end loop