Go Down

Topic: POV 7 leds (Read 1 time) previous topic - next topic

favio-mdp

Aca les dejo una version de arduino pro dedicada a un POV para poder ser colocado en la rueda de una bicicleta y mediante un sensor magnetico se pueda tomar la velocidad y visualizarla en el radio de giro.(aun no temino el codigo).
esta placa tiene 7 led pero puede funcionar con 5 con el codigo que adjunto.
he sabido de problemas de memoria para poder trabajar con 7 leds, en este caso solo lo utilizare para los numeros y las letras son solo 4 Km/h

aqui va el codigo del pov para 5 lineas de leds:

// define el alfabeto
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()
{
 // define puertos de salida
 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 
 // define el espacio entre letras (ms)
 letterSpace = 6;
 // define el tiempo del punto (ms)
 dotTime = 3;
 
}

void printLetter(int letter[]) //
{
 int y; // inicializa la variable como un entero
 // recorre el array de cada letra
 // la primera linea Y de la letra
 for (y=0; y<5; y++) // setea y=0, limita y hasta 5 puntos horizontales, comienza a sumar
 {
   digitalWrite(y+2, letter[y]); // (pin 2 al 6, asigna valor 1 o 0) empieza del 1 al 5 de la array
 }
 delay(dotTime); // retiene encendido
 
 // la segunda linea Y de la letra
 for (y=0; y<5; y++)
 {
   digitalWrite(y+2, letter[y+5]); // empieza del 6 al 10 de la array
 }
 delay(dotTime);
 
 // la tercera Linea Y de la letra
 for (y=0; y<5; y++)
 {
   digitalWrite(y+2, letter[y+10]); // empieza del 11 al 15 de la array
 }
 delay(dotTime);
 
 // imprime espacio entre letras
 for (y=0; y<5; y++)
 {
   digitalWrite(y+2, 0);
 }
 delay(letterSpace);
}

void loop()
{
 // palabras
 printLetter(H);
 printLetter(O);
 printLetter(L);
 printLetter(A);
 printLetter(_);
}
la placa tiene los puertos para poder cargar el codigo, conectando los pin 1 y 2 desde una arduino si el micro.

http://www.tirrenia.com.ar/pov-veloz.pdfPlaca
http://www.tirrenia.com.ar/pov-veloz.schesquematico eagle
http://www.tirrenia.com.ar/pov-veloz.brdplaca eagle






;D
mucha suerte.

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy