LA LIBRERÍA LedControl

Facebooktwittergoogle_pluslinkedinmailFacebooktwittergoogle_pluslinkedinmail

Esta librería se emplea para que Arduino pueda gestionar módulos de displays LED de siete segmentos y otros dispositivos de señalización LED basados en la arquitectura del circuito integrado MAX 7219 o MAX 7221. En el artículo 16 vemos cómo se emplea. Aquí vamos a incluir el enlace de descarga (para los que aún no la tengáis) y, por supuesto, una referencia de los métodos de esta librería, para que podáis usarla en vuestros sketches.

EL CONSTRUCTOR

Este es un método con el mismo nombre que la clase que, como ya sabemos, se emplea para instanciarla en un objeto, que será la estructura que podremos usar para controlar nuestros dispositivos LED. La sintaxis general es la siguiente:

LedControl dispositivo = LedControl (DIN, CS, CLK, NUM);

Los valores que recibe son los siguientes:

  • DIN. Es el pin de Arduino donde conectaremos el pin DIN del dispositivo.
  • CS. Es el pin de Arduino donde conectaremos el pin CS del dispositivo.
  • CLK. Es el pin de Arduino donde conectaremos el pin CLK del dispositivo.
  • NUM. Es el número de dispositivos que conectaremos “en cascada” en nuestro montaje. 

EL MÉTODO clearDisplay()

Este método se emplea para apagar, en una sola línea de código, todos los LED’s de un dispositivo. Como argumento recibe el índice del dispositivo que hay que apagar. Recuerda que los dispositivos de empiezan a numerar desde 0, no desde 1. Así, si tu montaje incluye, digamos, cuatro dispositivos en cascada, y quieres apagar el tercero, la instrucción adecuada sería:

dispositivo.clearDisplay(2):

EL MÉTODO getDeviceCount()

Este método nos permite determinar cuantos dispositivos hay conectados en cascada. No recibe argumentos. Un ejemplo de uso sería:

cantidad = dispositivo.getDeviceCount();

EL MÉTODO setChar()

Este método nos permite enviar un carácter a un display de siete segmentos específico en uno de los módulos conectados en cascada. La sintaxis general es la siguiente:

dispositivo.setChar (modulo, display, caracter, punto); 

  • modulo es el índice del módulo al que queremos enviar el carácter. Si sólo tenemos un módulo, este será 0.
  • display es el índice del display de siete segmentos dentro del módulo, al que queremos enviar el carácter. La mayoría de estos módulos cuentan con ocho displays de siete segmentos, numerados de 0 a 7. Otros módulos cuentan con cuatro displays, numerados de 0 a 3. En todo caso, se empieza a contar por la derecha (el 0).
  • caracter es el carácter que queremos visualizar en el display especificado por los dos datos anteriores. Si queremos poner un carácter directamente, lo encerraremos entre comillas simples. Si es una variable, esta deberá ser de tipo char (mira aquí los tipos de datos).
  • punto es un valor booleano (true o false) para indicar si, en el display referido, queremos que el punto decimal aparezca encendido o apagado.

La lista de caracteres que se pueden enviar a los displays de 7 segmentos es limitada. Son los siguientes: ‘0‘, ‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘5‘, ‘6‘, ‘7‘, ‘8‘, ‘9‘, ‘0‘, ‘A‘, ‘b‘, ‘c‘, ‘d‘, ‘E‘, ‘F‘, ‘H‘, 'L‘, ‘P‘, ‘-‘, ‘_‘ y ‘ ‘ (espacio en blanco lo que, en la práctica, significa que el display no visualice ningún carácter).

EL MÉTODO setColumn()

Se emplea para establecer que LED’s estarán encendidos, y cuáles no, en una columna concreta de una matriz de LEDS (las normales son de ocho por ocho y de cinco por siete LED’s). La sintaxis general es la siguiente:

matrizLEDs.setColumn (matriz, columna, valor);

  • matriz es la matriz de LED’s a la que queramos referirnos. Estas matrices también pueden conectarse en cascada, unas a continuación de otras. El índice de la primera es siempre 0.
  • columna es la columna, dentro de la matriz especificada, sobre la que queremos actuar, encendiendo o apagando sus LED’s. Las columnas empiezan a contarse por 0, por la izquierda de la matriz.
  • valor es un valor que indica que LED’s de la columna estarán encendidos y cuales no. Podemos expresarlo en decimal, pero el método lo interpretará en binario. Por ejemplo. Si ponemos el valor 34, que en binario se representa como B01000100 (siempre sobre la base de ocho bits) lo que estamos diciendo es que queremos encendidos los LED’s tercero y séptimo de la columna (los LED’s de una columna empiezan a contarse desde arriba). Este valor también puede expresarse, directamente, en binario pero, en ese caso, no olvides precederlo de la B (mayúscula). 

EL MÉTODO setDigit()

Este método actúa de forma similar a setChar(), y con una sintaxis semejante. La diferencia es que lo que enviamos no es un carácter, sino un dígito numérico entre el 0 y el 9. Al ser un número, si lo indicamos directamente no le pondremos comillas. Si es una variable, deberá ser de tipo numérica entera. La sintaxis general es la siguiente:

dispositivo.setDigit (modulo, display, digito, punto); 

EL MÉTODO setIntensity()

Este método se emplea para establecer la intensidad luminosa con la que brillarán los LEDs de nuestro dispositivo, tanto si es un módulo de displays de siete segmentos como si es una matriz de LED’s. Los valores pueden ir de 0 a 15 y, en general, un valor medio, como 7 u 8 es adecuado en la mayoría de los casos. La sintaxis general es la siguiente:

dispositivo.setIntensity (indice, valor);

  • indice es el índice del dispositivo. Si nos queremos referir al primero de la cascada (o si sólo hay uno), será 0.
  • valor es la intensidad que queremos, entre 0 y 15

EL MÉTODO setLed()

Este método se usa para encender o apagar un LED concreto en una matriz de LED’s. La sintaxis general es la siguiente:

setLed (matriz, fila, columna, estado);

  • matriz es el índice del módulo al que nos referimos.
  • fila es el índice de fila donde está el LED sobre el que queremos actuar. Las filas empiezan a contarse desde 0, por la izquierda de la matriz.
  • columna es el índice de columna donde está el LED sobre el que queremos actuar. Las columnas empiezan a contarse desde 0 por la parte superior de la matriz.
  • estado es un valor booleano (true o false), que indica si el LED especificado debe quedar encendido o apagado. 

EL MÉTODO setRow()

Actúa sobre una fila concreta de una matriz de LED’s, de forma equivalente a cómo setColumn() lo hace con una columna. La sintaxis general es la siguiente:

matrizLEDs.setRow (matriz, fila, valor);

  • matriz es la matriz de LED’s a la que queramos referirnos. Estas matrices también pueden conectarse en cascada, unas a continuación de otras. El índice de la primera es siempre 0.
  • fila es la fila, dentro de la matriz especificada, sobre la que queremos actuar, encendiendo o apagando sus LED’s. Las filas empiezan a contarse por 0, por la parte superior de la matriz.
  • valor es un valor que indica que LED’s de la columna estarán encendidos y cuales no. Podemos expresarlo en decimal, pero el método lo interpretará en binario. Por ejemplo. Si ponemos el valor 34, que en binario se representa como B01000100 (siempre sobre la base de ocho bits) lo que estamos diciendo es que queremos encendidos los LED’s tercero y séptimo de la fila (los LED’s de una fila empiezan a contarse desde la izquierda). Este valor también puede expresarse, directamente, en binario pero, en ese caso, no olvides precederlo de la B (mayúscula).  

EL MÉTODO shutdown()

Sirve para activar o desactivar el modo de ahorro de energía en un módulo de displays de siete segmentos, o en una matriz de LED’s. Cuando se crea el objeto con el constructor, por defecto, el modo de ahorro de energía está activado, lo que significa que el dispositivo no es operativo (no se puede visualizar nada en él). Es necesario desactivar este modo. La sintaxis general es la siguiente:

dispositivo.shutdown (indice, estado);

indice es, como ya sabemos, el índice del módulo o matriz a que nos referimos, empezando desde 0.

estado es un valor booleano (true o false) que indica si queremos activar o desactivar el ahorro de energía. Para poder usar el dispositivo, necesitamos desactivar este modo (valor false).

 

     

2 comentarios:

  1. Pingback: ARD16 – Más sobre LED’s » eldesvandejose.com

  2. Pingback: Los ojos de mi robota: Utilizar funciones en el Arduino IDE – BETA

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *