Envío Gratis en compras mínimas de $1200 mxn Enviamos a toda la Republica Mexicana
Buscar

Librería Mod Matriz LED – MPLAB X

EL Módulo de Matriz LED es un arreglo de 64 LED’s de ánodo común que facilita el encendido de los LED’s ya que incorpora todos los transistores y resistencias necesarios para el funcionamiento de la matriz. Puede ser utilizando con un FPGA, microcontrolador o algún otro sistema de entrenamiento, siendo ideal para proyectos estudiantiles.

 


Declaración De Pines

El MOD matriz LED cuenta con 18 pines de los cuales 2 son para la alimentación. De los restantes, 8 pines son para las columnas y 8 son para las filas.

Las conexiones se mencionan en la librería, y es necesario destinar dos puertos del microcontrolador para su uso; sin embargo puede cambiarse según los requerimientos del usuario.

* EN CASO DE CMABIAR LAS CONEXIONES, LA FILA 1 DEBE IR CON EL PIN 7 DEL PUERTO EN CUESTION
 * B - Filas
 *      R1 ---->   LB7 ----- LD7 ----- LA7
 *      R2 ---->   LB6 ----- LD6 ----- LA6
 *      R3 ---->   LB5 ----- LD5 ----- LA5
 *      R4 ---->   LB4 ----- LD4 ----- LA4
 *      R5 ---->   LB3 ----- LD3 ----- LA3
 *      R6 ---->   LB2 ----- LD2 ----- LA2
 *      R7 ---->   LB1 ----- LD1 ----- LA1
 *      R8 ---->   LB0 ----- LD0 ----- LA0
 * EN CASO DE CMABIAR LAS CONEXIONES, LA COLUMNA 1 DEBE IR CON EL PIN 7 DEL PUERTO EN CUESTION
 * D - Columnas
 *      C1 ---->   LD7 ----- LB7 ----- LA7
 *      C2 ---->   LD6 ----- LB6 ----- LA6
 *      C3 ---->   LD5 ----- LB5 ----- LA5
 *      C4 ---->   LD4 ----- LB4 ----- LA4
 *      C5 ---->   LD3 ----- LB3 ----- LA3
 *      C6 ---->   LD2 ----- LB2 ----- LA2
 *      C7 ---->   LD1 ----- LB1 ----- LA1
 *      C8 ---->   LD0 ----- LB0 ----- LA0
 */

//Delcaración de pines CAMBIAR AL GUSTO SI ES NECESARIO
#define PUERTO_FILAS        LATB
#define PUERTO_COLUMNAS     LATD

 


Funciones

  • DIGITO(x): Permite mostrar un dígito entre el cero y el nueve, el parámetro de entrada es igualmente un dígito entre el 0 y el 9.
  • MAYUS(x): Esta función muestra una letra mayúscula del alfabeto, el parámetro de entrada es un número entre el 1 y el 26 de acuerdo con la letra de que dese mostrarse.
  • MINUS(x): Función que muestra una letra minúscula del alfabeto, de la misma manera, el parámetro de entrada es un número entre el 1 y el 26.
  • SIMBOLO(x): Sirve para mostrar símbolos de uso común, el parámetro de entrada es un número entre el 1 y el 18.

Para poder utilizar la librería, basta con declarar los pines del puerto B, D o los utilizados como salidas digitales y limpiarlos, para posteriormente utilizar alguna de las siguientes sentencias en un ciclo inifnito

DIGITO(7);
MAYUS(4);
MINUS(16);
SIMBOLO(1);
  • En la primera sentencia solo se muestra el número “7”
  • En la segunda sentencia se muestra la letra “D” mayúscula
  • En la tercera sentencia se muestra la letra “p” en minúscula
  • En la cuarta sentencia se muestra el símbolo “π”

 


Conexiones (Miuva 18 / PIC18F46K22)

Las conexiones mencionadas en la librería pueden observarse en la siguiente ilustración, pero pueden cambiarse según lo requiera el usuario.

Conexiones entre la tarjeta Miuva 18 y el MOD matriz LED

Disposición

Filas

Nombre

R1

R2

R3

R4

R5

R6

R7

R8

Pin

RB7

RB6

RB5

RB4

RB3

RB2

RB1

RB0

Disposición

Columnas

Nombre

C1

C2

C3

C4

C5

C6

C7

C8

Pin

RD7

RD6

RD5

RD4

RD3

RD2

RD1

RD0

 

 


Código de ejemplo (Miuva 18 / PIC18F46K22)

Nota: Es muy importante incluir la librería después de declarar la frecuencia del oscilador en el programa principal.

//Configuracion de los fusbibles
#pragma config PLLDIV = 2, CPUDIV = OSC1_PLL2, USBDIV = 2
#pragma config FOSC = HSPLL_HS, FCMEN = OFF, IESO = OFF
#pragma config PWRT = OFF, BOR = OFF, VREGEN = OFF
#pragma config WDT = OFF
#pragma config MCLRE = ON, LPT1OSC = OFF, PBADEN = OFF
#pragma config STVREN = ON, LVP = OFF, ICPRT = OFF, XINST = OFF
#include <xc.h>
//Declarar frecuencia del oscilador
#define _XTAL_FREQ 48000000
#include "Matriz_LED.h"
int contador = 0;
void main(void) {
    //Configuramos todos los pines como salidas digitales
    TRISD = 0x00;
    TRISB = 0x00;
    //Limpiamos los pines de los puertos
    LATD = 0x00;
    LATB = 0x00;
    
        //Configuramos interrupciones del PIC
    INTCONbits.GIE_GIEH = 0; //Deshabilitamos interrupciones globales
    INTCONbits.PEIE_GIEL = 0; //Deshabilitamos interrupciones periféricas
    RCONbits.IPEN = 0; // apagamos prioridades
    T0CONbits.TMR0ON = 0; //Apagamos módulo de TIMER0
    //Configuramos fuentes de interrupción
    INTCONbits.TMR0IE = 1; //Habilitamos interrupción por desbordamiento
    INTCONbits.TMR0IF = 0; //Limpiamos bandera de interrupción del TMR0
    //Configuramos módulo TMR0
    T0CONbits.T08BIT = 0; //Seleccionamos registro de 16 bits
    T0CONbits.T0CS = 0; //Fuente de reloj viene de FOSC
    T0CONbits.PSA = 0; //Activamos preescaler
    T0CONbits.T0PS = 0b111; //Preescala seleccionada de 1:32
    TMR0 = 28035; //Vslor de incio del timer 0
    T0CONbits.TMR0ON = 1; //Encendemos módulo de TIMER0
    INTCONbits.GIE_GIEH = 1; //habilitamos interrupciones globales
    INTCONbits.PEIE_GIEL = 1; //habilitamos interrupciones periféricas
    
    while(1){
        //DIGITO(contador);
        MAYUS(contador);
        //MINUS(contador);
        //SIMBOLO(contador);
    }
    return;
}

void __interrupt() myISR(){ //Funcion de interrupciones, my interruption service rutine
    if(INTCONbits.TMR0IF == 1){ //Estructura if, preguntamos activación de la bandera del timer1
        contador++; //Iniciamos el conteo ascendente
        //if (contador > 9) contador = 0; //El contador para los números
        if (contador > 26) contador = 1; //El contador para letras mayusculas y minuscuñas
        //if (contador > 18) contador = 1; //El contador para los simbolos
        TMR0 = 28035; //Valor de incio del timer 0
        INTCONbits.TMR0IF = 0; //Limpiamos bandera de interrupcion  
        } 
    return;
}

 


Funcionamiento

 


Descarga de archivos

Descargar librería