Programando en Arduino un Led Matrix 5x 7 monócromo

En este caso estamos utilizando un led matrix 5×7 monócromo, 5 resistencias de 330 ohmios (para limitar la corriente en las 5 columnas, cátodo en cada fila) y un Arduino ONE. Físicamente tenemos en este componente 14 pins (7 en cada lado), pero debemos saber leer qué pines representan las columnas y filas. Una Web confiable para esto es Datasheet, a continuación la distribución correspondiente para el led matrix:

led7x5Se observa en el gráfico que el pin 13 corresponde al conexionado de la columna 1, el pin 3 a la columna 2, el pin 4 y 11 representan a la columna 3 y así respectivamente; pero ¿cómo determinar cuál es el pin 13, 3, 4 u 11 físicamente?… para ello, testeamos cada pin con un multímetro,  este caso el primer pin de la parte superior derecha representa el pin 1 y el útimo pin de la derecha representa el pin 14.

DSCN0344

Se recomienda tomar en cuenta la distribución en orden física del Arduino porque facilita el trabajo para el direccionamiento de los puertos. En este caso las columnas del uno al cinco toman el valor de los pines del 8 al 13, en el Arduino; y para el caso de las filas del 1 al 7, se han conectado a los pines, del 0 al 6.

A continuación el código en Arduino, presenta un barrido desde la primera columna hasta la última (quinta columna). Cuando está encendida la primera columna, las demás columnas están apagadas, cuando todas los leds de la segunda columna se encienden, las demás columnas se apagan y así sucesivamente.

void setup() {

  pinMode( 8, OUTPUT );
  pinMode( 9, OUTPUT );
  pinMode( 10, OUTPUT );
  pinMode( 11, OUTPUT );
  pinMode( 12, OUTPUT );

  pinMode( 0, OUTPUT );
  pinMode( 1, OUTPUT );
  pinMode( 2, OUTPUT );
  pinMode( 3, OUTPUT );
  pinMode( 4, OUTPUT );
  pinMode( 5, OUTPUT );
  pinMode( 6, OUTPUT );

   for( int f = 0; f < 7; f++) {
     digitalWrite( f, HIGH);
   }
   for( int c = 8; c < 13; c++) {
     digitalWrite( c, LOW);
   }
}

void loop()
{

  for( int k = 0; k < 5; k++) {

  for( int c = 8; c < 13; c++) {
     digitalWrite( c, HIGH);
   }
     digitalWrite( 8+k, LOW);

  for( int f = 0; f < 7; f++) {
     digitalWrite( f, HIGH);
   }

  delay(500);
  } 
}

Finalmente la fotografía de las luces  de una columna encendida en nuestra matriz led 7×5:

DSCN0361PD (:  Mis compañeros hicieron trabajos con Arduino más elaborados que el descrito🙂

arduinogroup

About Julita Inca

Ingeniero de Sistemas UNAC, Magíster en Ciencias de la Computación PUCP, OPW GNOME 2011, Miembro de la GNOME Foundation desde el 2012, Embajadora Fedora Perú desde el 2012, ganadora del scholarship of the Linux Foundation 2012, experiencia como Admin Linux en GMD y Especialista IT en IBM, con certificaciones RHCE, RHCSA, AIX 6.1, AIX 7 Administrator e ITILv3. Experiencia académica en universidades como PUCP, USIL y UNI. HPC researcher, a simple mortal, like you!
This entry was posted in τεχνολογια :: Technology and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s