Biblioteca LedControl
La biblioteca LedControl se escribió inicialmente para placas Arduino basadas en procesadores AVR de 8 bits. Pero dado que el código no usa ninguna función interna sofisticada del procesador, es altamente portátil y debe ejecutarse en cualquier placa Arduino (similar a) que admita las funciones pinMode()y digitalWrite().[1]
LedControl()
Crea la instancia del objeto donde vamos a llamar a cada una de las funciones, esta función recibe como parámetros los pines que serán usados en la conexión desde el arduino al max7219[1].
Sintaxis
LedControl lc = LedControl(DIN, CS, CLK, NUM);
Parámetros
- DIN Entrada de los datos en serie de la comunicacion ISP.
- CS Pin de selección de chip de la comunicacion ISP.
- CLK Pin del reloj en serie pasa sincronizar con el controlador.
- NUM Es el número de dispositivos que conectaremos "en cascada" en nuestro montaje.
Retorno
Retorna una instancia del objeto LedControl con el que se llamaran las distintas funciones.
clearDisplay()
Esta función permite limpiar y restablecer a ceros el display que le seleccionemos como parámetro, 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.
Sintaxis
lc.clearDisplay(NUM):
Parámetros
- NUM Es el número de dispositivos que conectaremos "en cascada" en nuestro montaje.
getDeviceCount()
Este método nos permite determinar cuantos dispositivos hay conectados en cascada. No recibe argumentos. Un ejemplo de uso sería.
Sintaxis
int cantidad = lp.getDeviceCount();
Retorno
Retorna la cantidad de dispositivos conectados.
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.
Sintaxis
dispositivo.setChar(modulo, display, caracter, punto);
Parámetros
- modulo Es el número de dispositivos que conectaremos "en cascada" en nuestro montaje. 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.
- punto Se pasa una variable booleana, esta es para encender o apagar el punto decimal del display.
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.
Sintaxis
lp.setColumn(matriz, columna, valor);
Parámetros
- matriz Es la matriz de LED’s a la que queramos referirnos. 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.
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.
Sintaxis
lp.setDigit(modulo, display, digito, punto);
Parámetros
- modulo Es el número de dispositivos que conectaremos "en cascada" en nuestro montaje. 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.
- punto Se pasa una variable booleana, esta es para encender o apagar el punto decimal del display.
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.
Sintaxis
lp.setIntensity(modulo, valor);
Parámetros
- modulo Es el número de dispositivos que conectaremos "en cascada" en nuestro montaje. Si sólo tenemos un módulo, este será 0.
- valor Es la intensidad que queremos, entre 0 y 15.
setLed()
Este método se usa para encender o apagar un LED concreto en una matriz de LED’s.
Sintaxis
lp.setLed(matriz, fila, columna, estado);
Parámetros
- matriz Módulo al que nos referimos.
- fila Fila donde está el LED sobre el que queremos actuar. Las filas empiezan a contarse desde 0, por la izquierda de la matriz.
- columna 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.
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.
Sintaxis
lp.setRow(matriz, fila, valor);
Parámetros
- matriz Módulo al que nos referimos.
- fila Fila donde está el LED sobre el que queremos actuar. Las filas empiezan a contarse desde 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.
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.
Sintaxis
lp.shutdown(indice, estado);
Referencias
[1] wayoda http://wayoda.github.io/LedControl/pages/software, Consultado Agosto 2020
[1] eldesvandejose https://eldesvandejose.com/2016/04/07/la-libreria-ledcontrol/, Consultado Agosto 2020