Matrices de Diodos

Matriz Luciendo

Ya por fin conseguí hacerme con unas cuantas matrices de LEDs y así me ahorro soldar centenares de leds.

Por falta de previsión no me he hecho con un convertidor serie paralelo (shift register) y no he podido probar como mostrar caracteres en una matriz de 8×8 como la de la fotografía, a sí que me he tenido que conformar con  hacer un pequeño efecto de cortinilla con un modulo para ir probando. Es bastante sencillito.  Tras localizar cada pin (que es bastante laborioso y no he encontrado un datasheet decente) conectamos los negativos al GND de la placa arduino, y los 8 positivos a 8 entradas de la placa arduino. Y después con un bucle encendemos las columnas que queremos…

Este es el resultado:


Ir a MetaCafe

Y aquí otra forma:

Ir a MetaCafe

El esquema de conexión es el siguiente:
Esquema de conexion

Es una putada que los positivos no estén en un lado y los negativos en otro, sería bastante mas fácil.

Ahora abrimos el IDE de arduino y pegamos el codigo:
Arduino IDE

Ahora dependiendo del efecto que queramos tenemos un bucle o dos dentro del “void loop”:
El mas simple es el que esta dando vueltas de un lado a otro (se encienden las columnas por este orden: 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8…):

void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}

void loop() {
for (int i=2; i <= 9; i++){
digitalWrite(i, HIGH); //Encendemos
delay(100); //Esperamos
digitalWrite(i, LOW); //Apagamos y vamos a la siguiente
}
}

Pero tambien podemos hacer uno que valla de un lado al otro (las columnas se encienden 1, 2, 3, 4, 5, 6, 7, 8, 7, 6, 5, 4, 3, 2, 1...):
void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
}

void loop() {
for (int i=2; i <= 9; i++){
digitalWrite(i, HIGH); //
delay(100);
digitalWrite(i, LOW); //
}
for (int i=9; i >= 2; i--){
digitalWrite(i, HIGH); //
delay(100);
digitalWrite(i, LOW); //
}
}

Pero esto solo son dos ejemplos, deja volar la imaginación, experimenta con el código y observa que obtienes!

Si buscáis en internet, encontrareis por ejemplo muy buenos instructables como este o como este otro

Bueno y una vez tengamos varios "shift registers" habrá que avanzar algo mas no?

PD: En un articulo anterior tenéis una mas información sobre esto.

- Home -