Dificultad: avanzada

Una matriz es un arreglo de diodos led dentro del mismo encapsulado, estos se distribuyen en filas y columnas, el 74hc595 es un registro de desplazamiento de 8 bit con una entrada serie y salida paralelo, la gran utilidad de esto es poder utilizar y controlar ocho salidas con tan solo 3 pines, normalmente si se desea conectar la matriz se necesitan 16 pines para controlarla, pero al utilizar 1 registros de desplazamiento usaremos 11 pines, ahorrando 5 pines en el Arduino.

  • Arduino Uno
  • Matriz de leds 8×8
  • Circuito integrado 74hc595
  • Resistencias de 330ohms
  • Cables de conexión
  • Protoboard

Imágenes ilustrativas de componentes:

PASO 1 : conexión de componentes:

En esta ocasión por la complejidad del circuito utilizaremos un circuito electrónico en vez de un diagrama en la protoboard. Se realizaran las conexiones de igual forma, siguiendo las conexiones con cables individuales en una protoboard.

Nota: En las imagenes ilustrativas de los componentes se puede observar una muesca en un solo lado de la matriz, eso indica que es la parte frontal y que desde ahí empezamos a contar de izquierda a derecha los pines.

Paso 2 programacion:

Aquí se encuentra el código para la Matriz de leds con el 74HC595:

</pre>
byte character[8]={0x24, 0x24, 0x24, 0xa5, 0x81, 0x81, 0x7e, 0x0};

uint8_t colPins[8]={ 2, 3, 4, 5, 6, 7, 8, 9};

#define SER_PIN 10
#define SCK_PIN 11
#define RCK_PIN 12

void setup() {
  // Turn everything to low
  for(int i=0; i&lt;8; i++) {
    pinMode(colPins[i],OUTPUT);
  }
  pinMode(SER_PIN, OUTPUT);
  pinMode(SCK_PIN, OUTPUT);
  pinMode(RCK_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // iterate each row
  int rowbits = 0x80;
  for(int row=0; row&lt;8; row++) {
    for(int k=0; k&lt;8; k++) 
      digitalWrite(colPins[k],HIGH); // Cleanup cols
    write595(rowbits); // prepare to write the row
    for(int col=0; col&lt;8; col++)
      digitalWrite(colPins[7-col], character[row] &amp; 1 &lt;&lt; col ? LOW : HIGH);
    delay(1);
    write595(0);
    rowbits &gt;&gt;= 1; 
  } 
}

void write595(byte data) {
  digitalWrite(RCK_PIN, LOW);
  shiftOut(SER_PIN, SCK_PIN, LSBFIRST, data);
  digitalWrite(RCK_PIN, HIGH);
}

<pre>

 

Aprieta el boton subir para enviar el codigo al Arduino.

Si “cargado exitosamente” aparece al fondo de la Ventana, significa que el código se cargó exitosamente en la placa.

El código debería mostrar una carita como se muestra en la imagen:

Si puedes ver la carita feliz en tu matriz, revisar todas las conexiones nuevamente.

Si quisieras crear tu propios caracteres, visita la siguiente pagina web:

https://rodrigosc.github.io/ArduinoLedMatrix/char_builder/builder.html

allí podrás formar tu carácter a gusto, y luego para poder programarlo, debes copiar el carácter generado y pegarlo en tu código de Arduino en la línea:

byte character[8]={0x24, 0x24, 0x24, 0xa5, 0x81, 0x81, 0x7e, 0x0};