martes, 3 de diciembre de 2019

Encendemos LEDs (multiplexado)

El programa que vamos a incluir en esta entrada sólo pretende ser una primera aproximación al multiplexado de la matriz de LEDs, para que podamos visualizar la imagen que deseemos. En este ejemplo, dibujaremos una X con los LEDs:


/* multiplexadoFacil.ino
 * Dibujamos una X en la matriz de LEDS
 * Estos son los pines a los que están conectados
 * cada uno de los LEDs, entre paréntesis los que
 * hay que encender:
 *  (26-3)  27-23  26-4   27-24 (26-10)
 *   28-23 (28-24) 28-25 (28-9)  28-7
 *   27-4   26-6  (27-10) 28-6   27-3
 *   26-7  (26-9)  26-25 (26-24) 26-23
 *  (28-10) 27-9   28-3   27-25 (28-4)
 */

void setup() {
 pinMode(26,OUTPUT); //Programamos los pines
 pinMode(27,OUTPUT); //como salidas.
 pinMode(28,OUTPUT);
 pinMode(3,OUTPUT);
 pinMode(4,OUTPUT);
 pinMode(10,OUTPUT);
 pinMode(9,OUTPUT);
 pinMode(24,OUTPUT);
}

void loop() {
  digitalWrite(26,HIGH); //activamos la fila 1 (interna)
  digitalWrite(3,LOW);   //encendemos los LEDs de esa fila
  digitalWrite(10,LOW);
  digitalWrite(9,LOW);
  digitalWrite(24,LOW); 
  delay(1);              //esperamos 1 milisegundo
  digitalWrite(26,LOW);  //desactivamos la fila 1
  digitalWrite(3,HIGH);  //y apagamos los LEDs
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(24,HIGH);
  
  digitalWrite(27,HIGH); //activamos la fila 2 (interna)
  digitalWrite(10,LOW);  //encendemos los LED de esa fila (sólo uno)
  delay(1);              //esperamos 1 milisegundo
  digitalWrite(27,LOW);  //desactivamos la fila 2
  digitalWrite(10,HIGH); //y apagamos el LED
  
  digitalWrite(28,HIGH); //activamos la fila 3 (interna)
  digitalWrite(4,LOW);   //encendemos los LEDs de esa fila
  digitalWrite(10,LOW);
  digitalWrite(9,LOW);
  digitalWrite(24,LOW);
  delay(1);              //esperamos 1 milisegundo
  digitalWrite(28,LOW);  //desactivamos la fila 3
  digitalWrite(4,HIGH);  //y apagamos los LEDs
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(24,HIGH);
}

Si vamos aumentando los tiempos de la instrucción delay podremos comprobar como se obtiene la X por el multiplexado de las tres filas internas de la matriz de LEDs.

Mas adelante volveremos sobre estas cuestiones.

No hay comentarios:

Publicar un comentario