MATRIZ DE LEDS DE 8×16 GIGANTE.   318 comments

PROYECTO DE CREACIÓN DE GRAN PANEL DE MATRIZ DE LEDS DE 8X16

 

INTRODUCCIÓN:

     El presente proyecto trata de crear no sólo una matriz de 8×16, sino de que esa matriz posea un tamaño significativo, para lo cual vamos a usar leds que poseen una característica especial, y es que poseen un ángulo de salida de luz mas abierto, entorno a 100º, a diferencia de los leds convencionales que poseen un ángulo de salida sobre 13º a 23º. Que posean una proyección de luz tan abierta la vamos a usar para proyectar esa luz sobre un fondo difuso de manera que crearemos la capacidad de que en vez de ver un puntito de luz veremos un círculo iluminado. Aquí las características de los leds que vamos a usar:

       

 

EL CONCEPTO DE PIXEL AMPLIADO:

    Cuando enfrenté la idea de crear este panel en principio pensé en usar bombillas convencionales de rosca E-14, pero el coste de usar 128 bombillas mas casquillos de rosca E-14 hizo inviable la idea, además el circuito de gobierno de la matriz se complicaba por el uso de elementos de control de altas potencias como TRIACS. Empecé a pensar como podría amplificar la luz de un led de manera que de frente no viéramos un simple punto de luz, y se me ocurrió la idea de crear un píxel de circunferencia aproximada a los 4cm “encerrando” a un led dentro de una circunferencia de pvc y de determinada altura, y proyectando su luz como si fuera una pantalla de cine sobre un elemento que dejase escapar la luz parcialmente. Este es el concepto de “píxel ampliado” el panel posee 128 píxeles ampliados, y cada píxel tiene 4 cm, multiplicar esos 4cm por 8, y esos 4cm por 16 y os dareis cuenta de las dimensiones de esta matriz de leds.

PRUEBAS Y DESARROLLO DEL PIXEL AMPLIADO:

    Para crear el píxel y hacer pruebas de luminosidad cree un prototipo de “píxel básico”. Para ello usé un tubo de P.V.C de los que se usan en fontanería de 4 cm de diámetro exterior y de 3,5 cm de diámetro interior, corte un segmento de 1,5 cm de altura y lijé las rebabas. A continuación corte un cuadrado de madera de aglomerado de 7 cm de lado por 10 mm de espesor. Centre el círculo de P.V.C sobre el cuadrado de madera y lo pegué con pegamento de contacto. Hice un agujero en el centro del mismo diámetro del led (5mm) para poder pasar el led, y posteriormente pegue una lámina de papel “cebolla” (así le denominamos en España) sobre el círculo, que serviría como elemento sobre el que incidirá la luz y la difuminará.

TUBO PVC DE 4Cm DE DIÁMETRO.

CUADRADO DE MADERA.

SEGMENTO P.V.C Y MADERA.

UNION SEGMENTO A CUADRADO (Lo pinté de negro).

PAPEL CEBOLLA SOBRE CÍRCULO.

LED PASANDO POR DETRÁS.

LED ILUMINANDO SIN PAPEL.

LED ILUMINANDO CON PAPEL CEBOLLA.

FASE NÚMERO 1, CREACIÓN DEL PANEL

    En primer lugar cortaremos 128 segmentos de P.V.C de 1,5 cm de alto por 4 cm de diámetro.

MARCADO DE LA ALTURA.

Para cortar los segmentos usaré una sierra que me garantice  un corte recto de forma que se guarde el paralelismo entre las caras del tubo, en las fotos veis el tipo de sierra que he usado, en cada segmento han de lijarse las rebabas del corte con la sierra.

SIERRA EN POSICIÓN DE CORTE.

DESPUES DE 128 CORTES YA TENEMOS LOS SEGMENTOS.

Siguiente paso, para hacer nuestro panel usaremos como base un tablero de aglomerado de 10 mm de espesor de las siguientes dimensiones, 82 cm de largo por 46 cm de alto, en la foto de abajo al tablero ya le he marcado el eje que delimita el centro.

A continuación marcaremos los puntos por donde pasarán los leds y que nos serviran de coordenada para trazar el círculo de guía para la colocación de los segmentos de P.V.C.

y dibujaremos un círculo de 4,1 cm (algo mayor que el diámetro de la tubería de P.V.C ) alrededor de dichos puntos, ese círculo nos servirá de referencia para centrar y pegar el segmento circular de P.V.C que conforma cada píxel, los píxeles están separados entre ellos por 1 cm.

En detalle.

Ahora cogemos un punzón y un martillo y marcamos un pequeño agujerito guía para el posterior taladrado, de esta forma evitaremos que “baile” la broca al empezar el taladrado.

Cogemos una broca para madera de 5mm de diámetro y usaremos una taladradora en un porta-taladro para que el agujero que realicemos quede lo mas vertical posible, y efectuamos los correspondientes 128 taladros.

Hago notar que debajo del tablero a taladrar hay otra tabla, que no se ve, y que sirve de “sufridera” para evitar que la broca toque el suelo.

Una vez hechos los taladros de 5mm tendremos que hacer otra serie de taladros debido al espesor de la tabla, estos taladros son un “avellanado” que amplía la circunferencia alrededor del led para evitar la proyección de sombras sobre el fondo difuso. Abajo dos fotos, una con el led iluminando por uno de los agujeros sin avellanar, y otra con el avellanado hecho.

Sin avellanado.

Con avellanado.

¿Veis la diferencia?, se nota una sombra perimetral en la primera foto porque la luz al salir del led se abre entorno a los 100º y se encuentra con las paredes del agujero de 5mm y proyecta esa sombra (es mas notable en directo que en la foto). Por eso efectuaremos un taladro con una broca de mas diámetro, esta vez broca para acero por poseer un ángulo de casi 120º, yo he usado una de 12mm, no es lo mas conveniente para taladrar madera porque estás brocas no tienen el filo adecuado para ese material, pero es lo único que tenia y la solución que se me ha ocurrido al ser el tablero que porta los leds de tanto espesor, debería de haber usado un tablero mas fino pero creí conveniente usar este por motivos de rigidez en el montaje. La profundidad del taladro ha de ser tal que permita asomar unos 2mm la cabecita del led sobre el taladro de menos  diámetro.

 Broca a usar.

Tablero con el avellanado ya hecho.

Detalle del avellanado.

    Ahora cogemos pegamento de contacto y como tenemos ya dibujada la referencia vamos colocando y pegando cada segmento en el tablero.

    Una vez terminado de pegar los segmentos la tabla queda así.

En detalle.

Continuamos con la realización de los laterales de la matriz de leds, para ello necesitamos cuatro listones de madera de pino, los dos mas largos de 86 cm de largo, 7,5cm  de alto y 1,9 cm de espesor, los dos mas cortos serán de 46 cm de largo, 7,5 cm de alto y 1,9 de espesor. Con los cuatro listones de pino realizamos un marco que ensamblaremos de la forma de la foto de abajo.

 Detalle del ensamblado de las cuatro piezas que conforman el marco.

 Si os fijais bien los tornillos tirafondos están en la tabla larga (la de 86 cm de largo), en la foto está ya terminado el panel con los laterales. Queda el detalle de destacar que al ser el marco mas grande que el tablero que portará los leds este tablero al introducirlo dentro del marco ajusta en todo el perímetro interior de dicho marco y cae hacia abajo, para evitar eso y para que exista por encima y especialmente por debajo una determinada altura he pegado en cada lateral madera contrachapada de 1 cm de espesor y 4 cm de alto dejando un espacio para que encaje el tablero portaleds y por encima de él otra madera contrachapada de 1,7 cm de altura, abajo os quedará mas claro en las fotos.

Listón en detalle.

Detalle del encaje de listones y tablero.

En esta foto se ve claramente el espaciado por detrás y por delante del tablero, el de por detrás es necesario pues albergará todo el cableado y la circuitería que controlará el panel de leds.

Panel totalmente acabado a falta de realizar la tapa trasera que cerrará toda la circuitería y el cableado.

Por delante.

 Por detras.

Colocado en vertical.

 Ahora pintaré el panel de color negro, para ello he usado pintura acrílica al agua de color negro de aspecto satinado, y una paletina estrecha para las superficies de mas anchura y pincel para pintar los contornos de cada segmento.

Este es el resultado.

FASE NÚMERO 2, LOS LEDS Y EL CIRCUITO ELECTRÓNICO:

 En un costado del tablero he realizado dos taladros con broca para madera tipo paleta, uno para poder acceder a un jack hembra de 3,5 mm que lo usaré para alimentar al circuito con un conector macho tipo jack de 3,5 mm, y otro para acceder a un interruptor de palanca con el que activare o desactivare la alimentación eléctrica al circuito de control del panel de leds. Estos dos elementos (jack hembra e interruptor de palanca) los he fijado a un rectángulo de cartón piedra, y este rectángulo lo he fijado al costado donde realicé los dos taladros mencionados, en la foto queda claro, también se ven los leds que estaban colocándose en los agujeros del tablero.

Los 128  leds se colocan quedando de la manera que se ve en la foto quedando el lado negativo del led a la izquierda y positivo a la derecha.

Para el cableado de los leds seguimos el esquema siguiente, donde se ven claramente las filas (8 filas) y las columnas (16 columnas).

Se coge ahora un cable rígido fino, de esos que usamos para hacer puentes en los circuitos impresos o en las placas protoboard, se le quita el aislante y con el vamos a ir uniendo con soldadura todos los negativos de los leds de cada columna, de la forma que sigue. En la foto se aprecian unidas las cuatro últimas columnas de la matriz, son las últimas porque lo estas viendo desde atrás, si le dieras la vuelta al tablero verías mas claro que son las últimas.

Los terminales negativos una vez realizada la soldadura se corta el sobrante, obviamente. Con el positivo lo que haremos será doblar el terminal de los leds como se ve abajo y separado de la parte negativa para evitar cortocircuitos.

Una vez soldadas las columnas y separadas entre ellas, deben de haber 16 columnas, con cada una de las columnas y sus 8 leds unidos por su parte negativa. A continuación se soldarán las filas, 8 filas separadas entre ellas pero con cada fila unidos los leds por su terminal positiva. Para la unión de los positivos se usarán segmentos de hilo rígido con el aislante puesto para evitar contactos con la parte negativa al cruzar sobre los negativos, en la foto se ven los cables de color rojo.

Se observan en la foto también en la parte central cuatro tornillos pasantes desde atrás del tablero y con contratuerca para que no se muevan y que nos servirán para fijar la placa de control del tablero de leds.

Una vez terminados de soldar los terminales comunes de las columnas y las filas, en los extremos se soldaran cables flexibles de forma que tendremos en las filas 8 cables y en las columnas 16 cables. En las filas estos cables los he soldado en una placa de circuito impreso perforada como paso intermedio hacia el circuito de control, y en las columnas he hecho dos grupos, uno, de los 8 cables de las primeras 8 columnas que he soldado en otra placa perforada, y el segundo grupo, las ocho restantes columnas cuyos cables he soldado a otra placa de circuito impreso perforada. En la foto se aprecia en la parte superior y de color azul los hilos correspondientes a las 8 filas que están soldados en la placa perforada, y en la inferior se observan los trabajos de soldadura de los hilos correspondientes a las columnas en una de las dos placas mencionadas que conformaran el “canal” de señales de las columnas provenientes de registros de desplazamiento.

A cada una de las tres placas de filas y columnas irán luego soldados un cable plano de 8 hilos a cada placa, si no quereis usar un cable plano pues usar cables normales, eso ya es vuestra elección. Estos cables planos llevan en el extremo opuesto un conector que facilita labores de desconexión  de la placa de control respecto a la matriz.

Llegados a este punto es hora de afrontar la placa de circuito impreso y componentes que forman la electrónica de la placa controladora.

FASE NÚMERO 3, LA ELECTRÓNICA DE LA PLACA DE CONTROL:

 En primer lugar fabricaremos la placa de circuito impreso, yo he realizado el método de “planchado”, que si no lo sabeis, consiste en imprimir el diseño del circuito impreso con una impresora laser en papel fotográfico (mejor si es de poco espesor), y luego con una plancha a máxima potencia planchar el folio fotográfico con la parte de la tinta tocando el cobre de la placa de circuito impreso virgen, como consejo NO TOQUES EL COBRE CON LOS DEDOS, pues la grasilla que se deja es indeseable para un buen resultado, pasado un tiempo ( y sin que se tueste el papel) el toner se habrá quedado pegado al cobre, luego para quitar el papel lo introduces en un recipiente con agua y espera a que se ablande el papel y con los dedos efectúas movimientos circulares para ir retirando el papel, si lo haces bien lo normal es que este transferido todo el toner sobre la placa de cobre con todas las pistas, si alguna se te ha cortado pues repásala con tinta grasa indeleble (el famoso eding). Luego pasamos al ataque químico, en un recipiente de plástico tipo bandeja o en un taper de buen tamaño en cuanto a sección, viertes dos partes de agua, una parte de ácido clorhídrico (agua fuerte), y una parte de agua oxigenada de 120 volúmenes (venta en farmacias), pera todo esto hacerlo en un sitio ventilado, poneos gafas y usar guantes de goma, estas usando ácidos y en la reacción química en la que se come el cobre se desprenden gases, dos peligros, por contacto y por inhalación, con que lo hagas en sitio ventilado y no pongas las napias encima y cerca de la reacción es suficiente. Introduces la placa en la solución y mueves el recipiente como creando olas que “lamen” la superficie del cobre, veras como el líquido se va poniendo verde e iras viendo como las pistas se van quedando marcadas, cuando creas conveniente según lo que veas retiras la placa del recipiente. Para terminar y retirar el toner que sigue en las pistas usar acetona y algodón para limpiar, y quedará pulido y brillante como en la foto (el tachón es en mi nombre y apellidos).

Descargaros el fotolito desde aquí:

matriz 8×16

Para mas detalles de cómo hacer placas consultar por la red, existen muchos tutoriales bien detallados y con fotos, yo sólo os he comentado el tema pues me da pereza hacer un reportaje fotográfico de ello, bastante es con este desarrollo.

Las pistas y el esquema general es el que sigue, esta vista es desde el lado de los componentes.

Se ven la ubicación de los componentes y los puentes, este proyecto posee una posible ampliación como veis en los terminales Gnd, DATOS, +5Vcc y RELOJ, por si quereis hacer una matriz mas larga, de 8×32 por ejemplo. Están numerados el orden de filas y columnas para hacer mas sencillo saber donde conectar estas.

El esquema eléctrico es el siguiente.

La lista de componentes es:

 

–         8 transistores BC-327

–         8 resistencias de 1/4w de 1K5 Ohm

–         16 resistencias de 1/4w de 100 Ohm

–         2 registros de desplazamiento 74LS164

–         1 PIC 16F84A

–         1 Memoria I2C 24LC256

–         Regulador tension LM-7805

–         2 resistencias de 1/4w de 4K7 Ohm

–         2 condensadores cerámicos de 22pf

–         Cristal de cuarzo de 4 Mhz

–         1 resistencia 1/4w de 10K

–         2 Zocalos DIL de 14 contactos

–         1 Zocalo DIL de 18 contactos

–         1 Zocalo DIL de 8 contactos

–         2 conectores para cable plano de 16 pines macho

–         2 conectores para cable plano de 16 pines hembra

–         1 interruptor tipo palanca

–         Jack hembra de 3,5mm para alimentación del circuito

–         Jack macho de 3,5mm para alimentación del circuito

–         Cable plano de 16 conductores (aunque sólo usamos 8)

–         Placa de circuito impreso de 100×160 mm

DESCRIPCIÓN DEL CIRCUITO

El circuito está alimentado con una fuente de alimentación exterior con mala rectificación (comprada en los chinos y con mas rizado que el pelo de un negro) que nos proporciona 5 voltios de contínua, esta fuente la acoplamos al panel por una entrada lateral mediante jack macho de 3,5 mm a jack hembra, la tensión pasa a través de un interruptor de palanca unipolar, el cual accionamos por un taladro hecho en la parte lateral del panel por encima del otro agujero por donde introducimos el jack de alimentación desde la fuente exterior. Esta tensión entra a la placa de control y pasa por un regulador de tensión que garantiza una calidad mejor de la alimentación al circuito, se que no es muy ortodoxo pero no he colocado condensadores en el circuito del regulador de tensión. Esta tensión ya regulada de 5Vcc es entregada a los diferentes integrados que conforman el circuito, estos integrados son el PIC 16F84 que es el cerebro, la memoria 24LC256, y los registros de desplazamiento 74LS164, los transistores BC-327 funcionando en modo interruptor son los encargados de ir activando las filas según las señales que recibe del PIC-16F84, cada fila será activada de forma individual y una cada vez, de tal forma que nunca coincidirán dos filas activadas al mismo tiempo, esto se controla mediante el software que gobernará la secuencia de encendido de las filas, la corriente que pasa por colector de cada transistor como mucho será la corriente de cada led, 20mA multiplicado x 16 leds, que es el máximo número de leds que estará encendido en un momento determinado, es decir 320mA, según las hojas de caracteristicas del BC-327 la intensidad máxima de colector Ic es de 800mA, o sea, por encima de nuestro consumo máximo (si haceis uso de la ampliación observad la posibilidad de cambiar el transistor por uno que se adapte a las nuevas exigencias de intensidad). Los registros de desplazamiento 74LS164 reciben de forma serie y sincronizada por una señal de reloj procedente del PIC tramas de 8 bits y la van sacando de forma paralela en sus salidas activando o desactivando el encendido y apagado de los leds.  Las resistencias de 100 Ohm colocadas en las salidas paralelas de los registros 74LS164 tienen por misión crear una caida de tensión adecuada a las caracteristicas  de la tensión de trabajo de los leds, como en cada columna al estar activa una fila sólo podrá iluminarse un led, la corriente de trabajo del led es de 20mA, y la tensión que le llega desde el transistor es de 5Vcc, y como el led trabaja a 3,5Vcc nos sobran 1,5Vcc, o sea por la ley de Ohm, V=R.I——-R=1,5/0,02= 75 Ohm y cogemos el valor estandar de 100 Ohm, la potencia disipada será P=V.I=1,5×0,02= 0,03W— 30mW, con resistencias de ¼ de Watio tenemos suficiente.

Vista de la placa ya montada con los componentes.

Placa montada en el tablero.

Se observa el cable de alimentación que procede desde la placa que alberga el interruptor y el conector hembra jack de 3,5 mm. Tambien observad la disposición de los cables azules que van a cada fila, se ve menos la disposición de los cables que van a las columnas, pero es exactamente igual a los cables azules en cuanto a distribución.

El jack de alimentación y el interruptor, y los dos cables de alimentación electrica a la placa.

FASE NÚMERO 4, EL SOFTWARE DEL PIC E INFORMACIÓN ALMACENADA EN LA MEMORIA EXTERNA:

Pondremos un ejemplo sencillo explicado en base a una matriz de 8×8 caracteres. Los transistores dicen que fila está activa en cada momento, pero el encendido o apagado de cada led lo determina la trama de bits que esta presente a la salida de los registros, por ejemplo, si a la salida de un registro tenemos la siguiente trama 01110011 y esta activa la fila 1 en los leds estará encendido lo siguiente:

O sea, para activar la fila 1, el PIC por su patita envía un 0, al ser el transistor PNP y recibir en su base un 0 pasa a estado de conducción, dejando pasar la tensión positiva a al terminal positivo de los 8 leds que conforman la fila, al salir de forma paralela en el registro 74LS164 la trama 01110011, en la columna 1 (numerada de izquierda a derecha del 1 al 8) tenemos un 0 que permite el paso de corriente por el led haciendo que se encienda, en la columna 2 tenemos un 1 que no permite que circule la corriente y led apagado, en la columna 2 tenemos otro 1…….así sucesivamente.

¿Cómo conseguimos iluminar toda la matriz?, eso se realiza con una técnica llamada multiplexado por líneas, lo que hacemos es:

-Envio trama de 8 bits al registro 74LS164 activo línea 1 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 2 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 3 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 4 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 5 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 6 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 7 espero 2 ms y apago.

-Envio trama de 8 bits al registro 74LS164 activo línea 8 espero 2 ms y apago.

Y repito la secuencia el tiempo que quiera que este presente el dibujo de 8×8 o carácter que se muestre.

La velocidad a la que se enciende y apaga cada línea es tal que a nuestra vista le da la sensación de que las 8 lineas están activas mostrándonos la información, el carácter tarda en mostrase enteramente 16 ms, o sea una frecuencia de F=1/t es decir 62,5Hz, acordaos de las televisiones de 50Hz en la que la superposición de los cuadros se hacía a esa frecuencia para que no nos diéramos cuenta de que el haz de electrones mostraba un cuadro arriba y luego otra abajo, a tal velocidad que no notábamos que en cada momento sólo estaba encendida una parte de la pantalla y no la totalidad.

Explicaré ahora el pseudo código de como hago para mostrar en matriz 8×16 información en pantalla y que técnica uso para desplazar caracteres numéricos y alfabéticos a lo largo de la pantalla.

OJO a partir de aquí el lenguaje a usar es ASM, ensambler.

Yo divido la pantalla en dos, al dividirla en dos tengo dos matrices de 8×8 y declaro en variables cada fila de la pantalla, cada variable almacena 8 bits la matriz 8X16 es esta declarada en sus variables:

FILA1                       FILA9

FILA2                       FILA10

FILA3                       FILA11

FILA4                       FILA12

FILA5                       FILA13

FILA6                       FILA14

FILA7                       FILA15

FILA8                       FILA16

A estas variables le sumo otra variable como si fuera otra matriz 8×8 (la tercera) pero será virtual y que sólo me servirá como buffer y para rotar bits sin que se note en la pantalla real, quedaría así:

 FILA1                       FILA9                        FILA17

FILA2                       FILA10                      FILA18

FILA3                       FILA11                      FILA19

FILA4                       FILA12                      FILA20

FILA5                       FILA13                      FILA21

FILA6                       FILA14                      FILA22

FILA7                       FILA15                      FILA23

FILA8                       FILA16                      FILA24

Imaginemos que formo el carácter A en una tabla, llamo a la tabla y lo almaceno en las variables FILA17, FILA18, FILA19, FILA20, FILA21, FILA22, FILA23, y FILA24

Carácter A:

Este carácter en la variable FILA17 tendra almacenado en binario 11111111

Este carácter en la variable FILA18 tendra almacenado en binario 11100011

Este carácter en la variable FILA19 tendra almacenado en binario 11011101

Este carácter en la variable FILA20 tendra almacenado en binario 11011101

Este carácter en la variable FILA21 tendra almacenado en binario 11011101

Este carácter en la variable FILA22 tendra almacenado en binario 11000001

Este carácter en la variable FILA23 tendra almacenado en binario 11011101

Este carácter en la variable FILA24 tendra almacenado en binario 11011101

 Ahora llamo a una rutina que me muestre el estado actual de las variables de pantalla, es decir:

FILA1                       FILA9

FILA2                       FILA10

FILA3                       FILA11

FILA4                       FILA12

FILA5                       FILA13

FILA6                       FILA14

FILA7                       FILA15

FILA8                       FILA16

Para ello cojo el registro FILA9 y llamo a una rutina de transmisión de 8 bits en serie y lo “empujo” al primer registro fisico 74LS164, retorno de la rutina de transmisión serie y cojo la variable FILA1 y vuelvo a irme a la rutina de transmisión en serie de 8 bits y “empujo” estos 8 bits al registro físico 74LS164, conforme ingresan estos 8 bits a su vez “empujan” a los 8 bits que habían de FILA9 y los van metiendo en el segundo registro 74LS164, de forma que al acabar la transmisión serie en los dos registros 74LS164 estan almacenados los 16 bits de las variables FILA9 y FILA1, al retornar de la rutina transmisión serie activo la FILA NÚMERO 1 DE LA MATRIZ (no confundir con la variable FILA1) y se verá el contenido de los registros 74LS164, como en ese momento están vacíos, es decir llenos de 1111111111111111 la pantalla aparecerá apagada, sin nada, hago lo mismo con el resto de variables que determinan la pantalla, es decir llamo a la variable FILA10 y FILA2 y las muestro, FILA11 y FILA3, y cuando llegue a la FILA16 y FILA8 repito el tiempo necesario para que se mantenga en pantalla el suficiente tiempo para poder observarlo. Ahora las variables donde almaceno la LETRA ‘A’, y resto de variables las roto “de rotar” un espacio hacia la izquierda y borro el acarreo:

 Nº1          FILA1                       FILA9                        FILA17

Nº2          FILA2                       FILA10                      FILA18

Nº3          FILA3                       FILA11                      FILA19

Nº4          FILA4                       FILA12                      FILA20

Nº5          FILA5                       FILA13                      FILA21

Nº6          FILA6                       FILA14                      FILA22

Nº7          FILA7                       FILA15                      FILA23

Nº8          FILA8                       FILA16                      FILA24

Empiezo por rotar FILA17, luego FILA9, y luego FILA1—-TODOS EN LA FILA NUMERO 1 DE LA MATRIZ…..luego roto FILA18, FILA10 y FILA2—–TODOS EN FILA NUMERO 2 DE LA MATRIZ. Y así hasta que rote las variables de  las 8 FILAS DE LA MATRIZ. Como quedará después de esto las variables donde se almaceno la letra ‘A’:

Así antes:

Así después:

El resto de las variables siguen igual porque aunque han rotado al estar llenas de ‘1’ no se nota.

Otra rotación:

En el resto de variables seguimos sin cambios y al mostrar el estado de estas en pantalla sigue vacía.

Otra rotación:

Veamos que ocurre ahora al activar la pantalla de las variables e ingresarlas a los registros de desplazamiento 74LS164:

FILA1                       FILA9

FILA2                       FILA10

FILA3                       FILA11

FILA4                       FILA12

FILA5                       FILA13

FILA6                       FILA14

FILA7                       FILA15

FILA8                       FILA16

Pues que ahora si empieza a aparecer parte del carácter que va rotando hacia la izquierda. En la siguiente rotación aparecerá así:

Una vez explicado el pseudocódigo pondré el código en ASM que nos sirve de ejemplo para mostrar esta primera secuencia en el panel de leds 8×16. Dejo un primer archivo con el .asm , el .INC y simulación en PROTEUS, renombrar este archivo a extensión .zip para descomprimirlo:

A

Subo otro archivo con el ABECEDARIO completo en una tabla de la memoria de programa del PIC, son 27 letras y un espacio en blanco que totalizan un total de 28 x 8 = 224 posiciones a contar por el contador que al ser de 8 bits puede contar como mucho 255 posiciones. Esto es importante recordarlo a la hora de meter datos en una tabla, para que no se desborde el contador y de un resultado inestable y fuera de lugar. Renombrar el archivo a zip y descomprimirlo:

ABC

Un video del codigo ABC, notar los destellos de los leds, pues no tiene colocado en los pixeles las laminas de papel «cebolla» para que la luz no se disperse:

Dentro de esta última fase (La Nº4), y según el titulo de esta, ahora toca desarrollar el almacenamiento en memoria externa para evitar las limitaciones propias de la memoria interna del PIC16F84A y dotar al montaje de múltiples posibilidades. La memoria a usar esta basada en el protocolo de comunicación I2C, esta comunicación es serie, con la limitación propia en velocidad que toda comunicación en serie tiene, sobre este protocolo hay múltiple información en la red, buscad si quereis saber mas. El PIC16F84A no lleva implementado por hardware este protocolo por lo que es necesario acudir a una rutina software que establezca la comunicación entre PIC y MEMORIA EXTERNA. Este protocolo software esta extraido del libro MICROCONTROLADOR PIC16F84A de la EDITORIAL RA-MA lo tengo como archivo «include» .INC en mi software.   

Manos a la obra, lo primero que haré y como ejemplo será diseñar una secuencia de ocho pantallas con la que crearemos una ANIMACIÓN, para ello os descargais esta aplicación EXCEL: matriz-8×16 , teneis que tener instalado en el excel la funcion BIN A HEX para que funcione correctamente.

Empiezo a diseñar la animación, tened en cuenta que los «unos» será un led apagado y los «ceros» serán led encendido. Esto es así debido al diseño del circuito electrónico. 

                  

Cuando hemos hecho el diseño de las ocho pantallas, copiamos el código señalado con la flecha ROJA, y haremos un «copia pega» el cual se verá mas adelante.

A continuación descargaros este programa: http://www.winpic800.com//descargas/WinPic800.zip

Lo instalais y al abrirlo queda así:

Debemos seleccionar en el cuadro superior derecho el dispositivo, en este caso I2C 24C, y en el desplegable de abajo la memoria con la que trabajeis, en mi caso es la 24C32.

En el siguiente video vereis claro el proceso de crear un archivo .bin, el cual será el que grabaremos en la memoria externa:

Ahora que tenemos el archivo LLUVIA.bin, debemos meterlo en la memoria EEPROM externa, yo he usado una 24C32 que tiene 4096 bytes, en ella podrían caber 256 pantallas de 8X16,  aunque existen en el mercado mas memorias I2C como las 24C64, 24C128, 24C256 y 24C512. Abajo en la foto se ve el tamaño de la memoria, la tengo insertada en un zócalo aparte del zócalo del circuito impreso para que con las sucesivas extracciones e inserciones no se dañen las patitas de la memoria.

Detalle del grabador con la memoria 24C32  insertada y el PIC16F84A tambien.

El video de la animación.

Aquí os podeis descargar los archivos para hacer uso de la memoria externa, renombrar el .odt a .zip para poder descomprimir: Lluvia

He hecho otra secuencia animada de 244 pantallas como cartel navideño, estas 244 pantallas han consumido 3896 bytes de la memoria 24C32 que tiene 4096 bytes, es decir que casi la he llenado toda con esta secuencia, vereis que chulo ha quedado.

ÚLTIMOS RETOQUES

    Bueno, quedaba algo por terminar del panel ¿verdad?, lo que pasa es que por perrería lo había relegado, es que es un coñazo recortar 128  cuadraditos de papel cebolla, pegarlos, y finalmente contornearlos en su forma redonda, pero bueno, ya lo he hecho.

APLICACIÓN PEGAMENTO RAPIDO (CIOANACRILATO):

IMG_5834

PEGADO DE LOS CUADRADITOS DE PAPEL CEBOLLA:

IMG_5835

CONTORNEADO CON UN CUTTER DE LOS CUADRADITOS:

IMG_5836

Lo prometido es deuda, fijaros bien en el video, en primer lugar se abre un bloc de notas del windows, luego ponemos el mensaje, guardamos el archivo y luego lo abrimos con el ic-prog seleccionando previamente la memoria externa a usar, guardamos el archivo como .bin, y ya lo tenemos dispuesto para grabar en la memoria externa. Solo podremos usar MAYUSCULAS, EL PUNTO, LA COMA Y TECLA ESPACIO, NADA MAS, esto es debido a que el programa principal del PIC16F84A ya está al límite de la memoria de programa del PIC16F84A, si está memoria fuera mayor (usando otro PIC por ejemplo) podríamos crear mas caracteres. Ojo, usar otro PIC no significa que sea compatible con el circuito electrónico de este proyecto, creo que el 16F628A si lo es pero hay que adaptar el software a las caracteristicas de tal PIC.

Aquí el resultado en este otro video.

Y finalmente los archivos, ya sabeis que están en formato .odt, debeis de poner el ratón encima y botón derecho y darle a abrir con, y elegid el winzip. Dentro de los archivos he incluido una hoja excel de carácteres alfabéticos y numéricos que proporcionan los codigos en hexadecimal, debeis tener instalado en el excel el BIN.A.HEX.

DESCARGAR:  CARTEL LARGO

Añado un archivo nuevo que alguno me ha solicitado, se trata de la animación del cartel navideño, como siempre, renombrar el archivo .odt que descargueis a .zip para poder descomprimirlo.

DESCARGAR: NAVIDAD

Añado, debido a los trabajos del amigo hércules en los cuales está usando un cristal de mayor frecuencia que los 4 Mhz de este proyecto, un enlace que genera el código de tiempos en ensamblador eligiendo la frecuencia del cristal y el tiempo requerido. Esto es necesario porque he detectado que hércules usa la misma rutina de tiempos del archivo «RETARDOS.INC», que esta pensada para 4Mhz en sus proyectos con cristal de 10Mhz, y aunque a él no le haya dado problemas si se emplean mayores frecuencias los tiempos no serán los adecuados.

ENLACE: http://www.golovchenko.org/cgi-bin/delay

Pongo el enlace para descargar el programa que sirve para compilar los .asm y sacar el .hex, el software MPASMWIN.

https://www.mediafire.com/?8nl83koi8ozdmvx

Última edición 21-Diciembre-2014, continuará….

Publicado julio 28, 2011 por dragon333 en Electrónica y PICS

318 Respuestas a “MATRIZ DE LEDS DE 8×16 GIGANTE.

Suscríbete a los comentarios mediante RSS.

  1. exelente la forma ilustrativa para este tipo d. matriz d. led

  2. Mire mr luces, el lenguaje de programación de los microcontroladores PIC que se usa habitualmente es el ensamblador, el basic y el C, estos tres lenguajes tienen su peculiaridad y enfoque específico para ese microcontrolador así como sus compiladores adecuados. Yo sólo estoy adiestrado en el ensamblador, que es un lenguaje de muchas líneas de código, aunque comprendo que el C es mas reducido en líneas de código y mas simplificado. Le recomiendo que visite webs introductorios a los primeros pasos con el PIC, pues el proposito de mi blog está enfocado a personas que ya han tenido contacto con los PICS y saben algo del tema, si pone interes y tiempo tendrá resultados interesantes, para simular los PICS tambien le recomiendo que use el programa emulador de circuitos PROTEUS, en él podrá desarrollar la simulación del software en un PIC virtual, saludos.

  3. me podrías pasar el código xfa!

  4. ok grasias¡¡¿

  5. disculpa pero podria jalar en el pic16f886?

  6. Juanito, sabes, o debieras saber, que el cambio de un pic a otro tiene sus peculiaridades como por ejemplo la palabra de configuración o desactivar determinadas entradas/salidas que poseen conversores A/D, o el número de pines etc. Debes tú adaptar mi código al pic que desees usar, y ojo, lo mas probable es que el esquema electrónico aquí expuesto NO SEA COMPATIBLE.

  7. Bueno esto esta interesante
    se algo de electronica
    pero ojala me ayuden
    pues como gravo eso en el PIC?
    o como se hace
    ehhh
    porfa alguien ayudemeeeee

  8. jjjjose, ya lo he dicho por aquí, este blog está enfocado a quienes YA HAN TENIDO CONTACTO CON LOS PICS, no es un cusillo de PICS ni de como programarlos. El la red tienes abundante información al respecto para dar tus primeros pasos. Saludos.

  9. HUY
    PERDON
    PERO GRACIAS DE TODOS MODOS
    JEJEJEJE
    POR SI ACASO NO TENDRAS ALGUN CIRCUITO PROGRAMADOR EN POR USB
    PARA ESTE PIC????

  10. Dragon333, estoy iniciando en esto delos micros, he leido el codigo ABC y tengo una pregunta, nose si es muy obvia pero me va a entender, soy un novel en micros, cuando lee el valor de fila 9 y lo carga a w, q valor tiene fila nueva por primera vez cuando lo carga a w, y que valor tiene tambien fila 1, fila 11 ,fila 2, fila 12,fila 3 y asi sucesivamente, la verdad no encuentro un valor asignado o no entiendo esa parte, espero me ilustre, muchas gracias por su ayuda, hasta pronto

  11. pero este codigo muestra al reves
    las letras aparecen apagadas

  12. Si montas mi circuito las letras estan encendidas, en Proteus salen apagadas, saludos.

  13. En la subrutina de CARGA el valor de fila 17 a fila 24 lo veo claramente, pero en la subrutina de caracter cuando le da movf fila 9,0; aqui lee lo que tiene fila 9 y lo deja en w, eso creo, lo mismo con fila 1y asi sucesivamente, no logro entender de donde provienen los valores de cada fila;
    De fila 9 a la 16 y fila 1 a la 8(subrutina caracter)
    de antemano gracias por la rapida respuesta

    • Las filas 17 a 24 forman el «buffer» donde se almacena el caracter, el contenido de este «buffer» no se ve en pantalla, cuando se llama a «Rota» los registros del buffer rotan y van «cargando» a los registros 9 a 16 y 1 a 8, que si se ven en la pantalla.

  14. Bueno una ultima
    preguntilla
    no entiendo bien la parte de las tablas
    cuando forman las letras
    por ejemplo la letra a

    TABLA addwf PCL,F

    retlw h’FF’ ;A
    retlw h’E3′
    retlw h’DD’
    retlw h’DD’ COMO SACASTE ESTE CODIGO O COMO LO HICISTE
    retlw h’DD’ NO LA ENTIENDO MUY BIEN
    retlw h’C1′
    retlw h’DD’
    retlw h’DD’

  15. jjjjose este codigo resulta de dibujar el caracter a cargar este se encuentra en hexagesimal , si lo pasa a binario y lo ubica por filas va a ver como se forma la letra o caracter, en el proyecto lo explican claramente,
    espero haber dejado claro , saludos

  16. MUCHISISISISISMASSSSSSSSS
    GRACIASSSSS
    Solo una mas
    si??
    como puedo expadir la matriz???
    osea como lo puedo aumentar unas dos matrices mas de 8×8
    en si seria un total de 8×32 o como podria hacerlo 10×30 o 10×40
    como aria eso????

    puedo usar el mismo pic?? con la misma programacion???
    o usar otro PIC con mas componentes???
    porfis
    espero tu respuesta

  17. OK, estuvo claro, monte el circuito con una matriz de 8×8 y corre de maravilla, aunque cuando energizo aparecen encendidos unos led y rotan como aleatoriamente, pero creo q es por los valores q tienen inicialmente fila 1 a fila 16 osea las variables de pantalla…. gracia por la informacion y por fomentar el conocimeinto, ahora voy a implementarle escritura y lectura desde la memoria externa,, hay les voy comentando,,un saludo

  18. haber
    ya pude hacerlo
    y funciono no mas
    pero tengo un problemilla
    lo quiero usar para ponerlo a mi tiendita
    y pues lo malo es que no tengo compu en mi tienda para estar grabando cada ves el PIC

    habria alguna forma de ponerle o adaptarle un teclado con conector ps2 o usb????

    estube buscando alguna info por la red
    pero no explican muy bien
    habran alguien que me pueda ayudar a hacer esto??????
    porfisssss

    • joseph si un proyecto como el que dices lo tuviera a mano es el que pondría en este blog. Pero esto que pides es un proyecto mas elaborado que afrontaré mas tarde que temprano. Por cierto, ten en cuenta que la memoria interna del PIC 16F84 tiene un límite en cuanto a caracteres a mostrar. Mas adelante pondré el código para poder usar la memoria externa y acabaremos con esa limitación.

  19. ok
    seria buenisisisismo
    una consulta
    maximo cuantos caracteres le podria caber a este PIC

  20. bueno eso sip
    y como aria eso

  21. usar una memoria externa pues

  22. excelente trabajo, he aprendido bastante acerca de los micros
    felicitaciones muy buena su labor y lo generoso al querer compartir su trabajo para nuestra ayuda

  23. dragon333 una ayuda
    quiero escribir un mensaje con la directiva DT
    ejemplo
    mensajeBienvenida
    DT «HOLA MUNDO»
    en el programa tengo la tabla con el abcedario, pero con q valor DT me va cargando W para asi ir a la tabla y regresar con ese valor y mostrarlo con las variables de pantalla,,no entiendo esa parte, tengo entendido q DT es para facilitar la hechura de una tabla «es una tabla resumida»y cada letra va cargando W con el codigo ascii, pero luego q se hace, como voy a la tabla
    gracias por su ayuda.

  24. Hola fremanman, se emplea igual que una tabla formada por RETorne con Literal en W retlw
    seria por ejemplo:

    TABLA ADDWF PCL,F
    DT «0123456789»

    en este caso te iria mostrando los valores de 0 a 9.

  25. eso lo entiendo,
    planteo la siguiente situacion:
    tengo una tabla con las letras del abecedario como lo tienes en tu programa, cada caracter con sus respectivas instrucciones retlw,
    ahora quiero mostrar en pantalla la letra H, entonces escribo la instruccion
    DT «H»
    como sabe el contador de programa q la «H» esta ubicada en cierta posicion de la tabla,
    se q para ir a la tabla se carga w con un lieral en este caso el contenido de puntero, luego se llama la tabla acontinuacion se ejecuta la instruccion addwf y es alli cuando el contador salta y se ubica donde lo mandemos, estando alli se carga w con el literal q encuentre en esta posicion y retorna
    veo en la tabla solo instrucciones retlw
    los comentarios q se ven para difenciar o saber q letra es, son para uno mismo, no para el programa, hay viene mi duda ;
    dicho lo anterior
    DT «H» ; q valor pone en w para ir a la tabla y volver con el valor correcto
    de pronto para ti es muy obvio y portal razon no vez mi duda
    si es asi me puedes guiar «y perdona tanta molestia» con un ejemplo o trozo de programa para asi estudiarlo y entenderlo
    tal como lo hice con el trabajo q haz hecho, lo he estudiado linea por linea hasta q lo entendi, recuerda dragon q soy un principiante con los micros
    de antemano una felicitacion y muchas gracias por tu ayuda

  26. ok dragon, muchas gracias, excelente explicacion

  27. A los que habeis visto los dos ultimos mensajes de fremanman habreis observado que entre medias no ha mediado respuesta, eso es porque le envie un correo con una detallada respuesta con ejemplo de PROTEUS incluido. Que quede claro que suelo responder si no se me satura a preguntas, es cuestión de tiempo, el cual es escaso.

  28. amigo dragon, este es el final de este proyecto o piensa adicionarle algo mas, ? o tiene algun otro proyecto q este realizando me he ayudado bastante en mis estudios gracias a ud,
    saludos

    • Quiero retocar el código para que IC-PROG mediante, y a traves de memoria externa, escribir mensajes largos solo con la introducción mediante teclado de esos mensajes en el IC-PROG y su programación en la memoria externa. Tambien habras visto que tengo anunciado el proyecto de una alarma de aviso telefónico mediante PIC. Iré colgando proyectos, pero ten en cuenta que llevan su tiempo pues yo NO COPIO PROYECTOS DE OTROS, sino que los creo y desarrollo y eso me motiva mas para desarrollar este BLOG.

  29. como podria implantar un teclado de PC o un teclado de celular para que sea programable la matriz????

    • Si lees una pregunta hecha un poco mas arriba por joseph incide en el mismo caso que tú. Para implantar un teclado has de implementar el protocolo de comunicación de un teclado PS2 en el PIC, esos caracteres ASCII que devuelva el teclado lo has de llevar a una memoria externa para almacenar el mensaje y debes tener la capacidad de poder borrar los mensajes desde el propio teclado o de rectificar una equivocación al pulsar una tecla equivocada, y finalmente el PIC ha de ser capaz de identificar esos caracteres ASCII que lea de la memoria para su representación en pantalla de led.Como le dije a Joseph, si ese proyecto lo tuviera LO PUBLICARÍA.

  30. En los proximos días publicaré una mejora del proyecto, consistirá en que podremos poner el texto que nos de la gana en longitud (toda la que admita una memoria externa) para poder visualizarlo en matriz de leds. Y todo mediante la simple introducción del texto por teclado usando el IC-PROG. No es lo que busca la pregunta de mas arriba, pero se le va pareciendo.

  31. eso estara suuper weno asi podre guiarme en algo para volverlo programable
    y podria intentar con un teclado matricial para que sea mas peque y no ponerle el teclado de PC
    jejejejeje
    espero tu proyecto
    muchas gracias anticipado
    jejejeje

  32. Hola que tal dragon333 visite tu web y pucha te agradesco, tu material lo voy a implementar,el proyecto de la lluvia(no me funciona), del .bin me parece algo muy bueno pero quisiera que me ayudaras yo al crear mi .bin lo subo al 24lc256 y sigue apareciendo el mismo mensaje de la prueba ( Hola…..)a pesar que borre el Mensaje.bin sigue apareciendo el mismo.algo curioso,y utilize otro archivo de proteus y al subirlo al pic 16f84a sube pero no funciona ni siquiera el mensaje de prueba que hicistes,agradeciendo tu incondicional apoyo ,me despido.Ate Luis Miguel

    • Luis miguel, cada vez que quieras usar un .bin diferente como prueba en el PROTEUS, haz lo siguiente, BORRAS LA MEMORIA, es decir, situas el ratón sobre EL DIBUJO DE LA MEMORIA Y CON EL BOTÓN DERECHO «delete objet», insertas una memoria nueva y le cargas el .bin que te interese probar. Esto haz de hacerlo con cada .bin que sea diferente del anterior, ES UN FALLO DEL PROTEUS QUE NO SE PUEDA CARGAR .bin nuevos y que no funcionen sino haces el truco que te he presentado. Hazlo y dime el resultado. Respecto a la última frase que has puesto sólo te diré que en el PIC virtual del proteus se carga el .hex nunca un .bin además de que has de poner la frecuencia del XTAL a 4Mhz.

  33. Gracias, dragon333 se agradece si funciono.otra vez molestandote mi gran amigo Dragon333 .quisiera hacerte una una preguntica porfavor,quisiera colocarle efectos consecutivos ( que el texto salga de arriba hacia abajo y viceversa y se quede estatico, luego que se desplaze hacia la izquierda y tambien a la derecha quisiera saber si existen unas instrucciones ( yo use rlf (de derecha a izquierda)- y tambien rrf(de izquierda a derecha),espero me ayudes con esos detalles todo lo que has hecho me parece genial gracias ,agradeciendo tu incondicional apoyo ,me despido.Ate Luis Miguel.

  34. excelente inf. muchas gracias

  35. AMIGO REALIZE EL CAMBIO DE MEMORIA PARA CORRER OTRO ARCHIVO .BIN PERO NO JALÓ ALGUNA OTRA INDICACIÓN SALUDOS MUY BUEN PROYECTO

    ESTEBAN ARROYO MELENDEZ
  36. Tengo una consulta amigo! Y si cambio la memoria 24lc256 por una 24lc16b, no tendria ningun problema a la hora de ejecutarlo??

  37. carlos no tiene el prgram de el matriz solo para cambiarle el nombre

  38. Oye amigo y aun tienes el archivo .asm del proyecto? Pero para cambiarle los caracteres que se deseen mostrar en la matriz! Si lo tienes, lo podrias subir?

    • Todos los archivos están para ser descargados en esta pagina, es un archivo ,odt, pincha una vez descargado como para abrirlo, y elige el winzip para descomprimirlo. Saludos.

  39. Hola dragon333 he estado cacharreando ese proyecto y he guerido adicionarle dos matrices de 8×8 en total 8 filas y 32 columnas
    mi pregnta es, teniendo los cambios hechos con hardware cual seia el sigiente paso para hechar andar este cartel mas largo
    Gracias por tu colaboracion

    • Si esa matriz de 8×32 está basada en la misma electrónica que he mostrado aquí, cuando «quemes»el PIC y la memoria con el mismo software que aquí postee, sólo podrás ver la mitad de la matriz en funcionamiento ¿así es?. Por lo que el siguiente paso obviamente es reformar el código para que abarque toda la matriz, la didactica de como hacerlo está bien explicada en el blog, lee con atención que ahí está la respuesta.

  40. Tengo una consulta… he agrandado la longitud del proyecto hasta 72 columnas y 8 filas… modifique el asm y logro controlar todas las columnas el problema es que solo consigo hacer el desplazamiento en 16 columnas (tal como lo hace el archivo ABC.HEX)… podrías indicarme que debo cambiar para lograr desplazar el texto desde la fila 72 hasta la fila 1…

    • No se si lo que pretendes puede sobrepasar la capacidad de memoria de la ram del PIC 16F84A, porque debes declarar en el programa muchos registros y ademas hacer el código mas largo, habria que estudiarlo. En este proyecto si lees con atención veras en el sofware que he puesto como hacer que la matriz sea mas larga, estudia bien el código, he intenta entender la dinámica, prueba a reformar el código para una de 8×32, luego ve haciendo mas larga la matriz poco a poco, si te da error en la compilación o a la hora de meter el .hex en la memoria del PIC es que el sofware sobrepasa la capacidad de memoria, entonces no tendras mas remedio que usar otro PIC y adaptar la electronica a ese nuevo PIC.

      • Gracias dragon333: Efectivamente me funciono hasta 8×48 cuando quiero aumentar las lineas me dice que he excedido la capacidad de la memoria… podrías auxiliarme para la elección de otro pic he probado con el 16F648A que tiene 4k de memoria pero no me funciona…. siempre me queda corto…. necesito llevarlo hasta 8×72, ya tenemos construidos el cartel y hemos modificado el programa, solo nos falta elegir el PIC adecuado para poder manejar mas lineas del programa… de antemano gracias.

    • Ten en cuenta que si usas otro pic a lo mejor no es compatible con el circuito electronico aquí expuesto, tambien ten en cuenta que si usas una velocidad mayor de proceso, las rutinas de tiempo no estan pensadas mas que para 4 Mhz.

  41. porfabor me lo podrian pasar el diagrama de como adaptar un teclado de ps2 a esta matriz de led

  42. Buenas amigo, realmente soy un principiante en esto y tu proyecto esta buenísimo, ten una pregunta, aki demostraste la programación por medio del pic, es decir por cada mensaje habria que escribir una cmos, (disculpa mi ignorancia), si quisiéramos cargar directamente el mensaje por pc sea puerto serial o usb, tienes alternativas o como seria y disculpa. Muchas Gracias.

    • Pues tendrías que realizar una parte software en el pc que se comunicase con el pic usando un protocolo, por ejemplo serie, y que el pic sea capaz de realizar esa comunicación serie o bien mediante hadware del propio pic(el pic-16f84a no tiene), o mediante una rutina de comunicación serie, ademas deberías de meter chipset de por medio como el MAX 232, CON LO QUE EL CIRCUITO EXPUESTO NO VALDRÍA PARA ESTE PROPÓSITO. En el mercado existen pics que pueden comunicarse via usb, y via serie.

  43. Alguien me puede ayudar con el nombre del programa para realizar la programación y generar el archivo para cargarlo en el pic.

  44. Por favor alguien me puede ayudar con el nombre del programa para realizar la programación y generar el archivo para cargarlo en el pic gracias….

  45. Me gusta tu proyecto y me gustaría aprender, pero tengo algunas dudas las luces led que colocaste son todas transparentes, y si son transparente como es que cambian de color, o es el control de led que hace que cambien de color, mi otra pregunta es que tu usasteis una placa electrónica, eso es lo mismo que un control de luces led con SD card

    • Las luces no son transparentes, son verdes, transparente es el plastico que contiene el silicio del led. Para controlar luces existen muchas formas, con placas independientes con placas controladas por PC etc.

  46. Hola que tal, tengo una duda sobre como programaste el pic, y tambien si puedo seleccionar desde la EEPROM el texto que deseo mostrar, el proyecto me parecio genial, solo me quedo esa duda. Un abrazo

    • El PIC lo programé o mas bien grabé con el icprog al igual que la eeprom, en la última parte del proyecto si observas bien el texto o caracteres a mostrar se meten en la eeprom, pero el texto sale de forma secuencial desde las primeras posiciones y pagina de la eeprom, para poder meter datos en eeprom y poder elegir debes reprogramar el programa principal para decir a la eeprom desde que dirección y página acceder a los datos.

      • Ahh bien, y una ultima pregunta, con que soft compilaste el programa en assembler?. Eh probado con el MPASM pero no me funciona, en la maquina, al codigo lo hice en un block de notas.

  47. Dragon por favor cual es el interfaz en que se programa el pic..

  48. Excelente su trabajo que realizo acerca de la matriz de led y la parte teórica está bien explicado paso a paso al leer puse en práctica su teoría, primeramente deje el 16f84A, para utilizar el pic16f628A, que tiene más capacidad. Agregue lo que faltaba como la numeración y las letras minúsculas. Otra modificación que hice es al ver la simulación en proteusera pequeño el pasa mensaje de solo 8×16 lo aumente de tamaño a 8 x40 donde ahora se puede se leer mejor los largos mensajes que pasan. Estoy pensando en mudarme al 16f876A para utilizar una comunicación del puerto comR232(pc y pic). y así programar el letrero sin necesidad de estar sacando la eprom cada vez que se cambie los mensaje .
    Me olvidaba. Tuve el problema que me salía los avisos com fondo de led prendida no así como los videos que subiste. Para solucionar este problema utilice el integrado 7404 a la salida de los pines del 74ls164.
    No sé si será pedirle mucho que nos explicara como puedo solucionar este problema para ya no utilizar el integrado inversor que estoy utilizando que es 7404.
    Sería interesante que subiera un video donde copilas con mplab y la simulación en proteus.Agradezco anticipadamente su respuesta. Pido disculpas por haber modificado su programa de matriz de led sin su autorización.
    Atentamente Hércules.

    • Amigo hercules, disculpa ninguna, el proyecto esta ahí para ser mejorado, sólo le pido que si lo publica haga referencia al origen y a mi blog. me agrada los avances que sobre el proyecto inicial está introduciendo, no estaría de mas que los publicase para todos y los compartiera. Respecto a usar un inversor a la salida del 74ls164 (columnas) ¿por qué?, usted fijese en el proyecto inicial como se activa cada fila y columna y se dará cuenta de donde esta el fallo. Le adelanto que en el proyecto los leds son iluminados cuando a la columna les llega un CERO y previamente se ha activado la fila con un CERO a la salida del pin que va a la base del transistor que activa la fila, no se su problema viene por ahí, tambien tenga cuidado en cambiar la velocidad de reloj con la que trabaja el PIC, pues si aumenta debe ajustar la rutina de temporización a esa nueva realidad. En relación a los videos de compilación tendré que poner alguno, pues ya varios leyentes han tenido dudas al respecto. Enhorabuena por sus avances y mantenganos informados e intente compartir como ya le dije.

  49. Expelente su respuesta amigo revisare el programa como indicas Para corregir aunque no me alcanza el tiempo. El día sábado lo subiré. Indíqueme cómo puedo subir el archivo.
    Atentamente Hércules

  50. Que tal amigo todavía no encontré el problema de la matriz, ya lo tengo los archivos listos para subir. Ya lo veras Voy a subir a esta página http://www.4shared.com o si no te lo enviare a tu correo. Quisiera pedirle un favor no sé si pudieras enviarme tu asm de matriz de 8×16 o sino el hex del que es el correctos. Así lo corrijo i lo envió .el asm en mplab , Hex y simulación. Para que lo publiques. mi correo es jcarlos_507@hotmail.com

  51. Estimado Dragon, eh intentado modificar el archivo .asm, solamente repitiendo la letra a, en el prog que muestra el abecedario, pero al compilar me tira muchos errores. El programa esta bien? ya que es solo modifique el cambio de los hexadecimales de la letra A en lugar de los de la letra B

  52. disculpa quise hacer una de 8×24 pero de la fila 17 a la 24 me muestra lo mismo que en la fila 1 a la 8 y no tiene continuidad, ¿me podras ayudar?

    ¿o habra que modificar el codigo de alguna parte? ya intente de todo y no me queda

    • Tienes que modificar el código, el código de este proyecto es para 8X16 solamente.

      • y como le podria hacer para que me funcione en una de 8×24 o de 8×32?

        si me pudieras ayudar con el codigo te lo agradeceria mucho

        Amigo disculpe, pero intente comprender que no puedo ir solucionando los problemas de cada uno principalmente por falta de tiempo, son muchas las personas que me plantean dudas y me es imposible atender a tantos. La didactica de este proyecto le hace comprender si presta atención a como ampliar tanto por hardware como por software la matriz. De verdad, disculpe.

  53. felicitaciones por tu trabajo lo pondre en practica…..

  54. Primeramente un saludo amigo dragon333 Volviendo otra vez al tema de la matriz de led 8×16. Lo hice con le pic 16f84 trabaja oke en la realidad. Cambie al pic 16f628A no trabaja hice todo las modificaciones del programa para este pic pero nada de nada. Me di cuenta que no hay comunicación con la eprom externa. Pero en la simulación de proteus si trabaja 8×40. Otra prueba que hice fue con el pic 16f628A y la letra. A o mejor dicho sin utilizar la eprom externa. Si trabaja en la realidad alguna sugerencia.

    • Yo con el PIC16F628a he tenido problemas, no he conseguido que funcione en la realidad, en simulación si funciona curiosamente. He cambiado la palabra de configuración, pero no, no entiendo el porque no funciona, ojo, he probado con diferentes PIC16F628a por si era problema de la unidad que en ese momento usaba, y el resultado es igual en todos.

  55. hola amigo hercules , me podrias decir que fue lo que modificaste para hacer una matriz de 8×40???

    lo que pasa es que estoy intentando hacer una de 8 x 32 y no me queda

    te lo agradeceria

  56. Es sencillos amigo Miguel Angel Wall-e modificar de 8×16 a 8 a 32 o más para ello ya tienes que cambiarte de pic al 16f628A o sino al 16f648A. Que tiene mucho más espacio. Por qué el pic 16f84 ya casi está lleno por lo tanto ya no podrás aumentaras las minúsculas números etc. Al momento no lo tengo a la mano si medas tu correo estos días puedo pasártelo el asm y quizá la simulación.

    • Hola hercules, me podiras hacer el favor de mandarmer el codigo .asm de 8×32 usando el PIC16F628A me interesa mucho, si fuera posible tambien la simulacion en proteus, este es mi correo: josefcore@gmail.com de antemano te agradezco tu fina atencion. Saludos.

  57. para todos los amigos que desean ampliar su matriz de 8×16 a 8×40 he subido los archivos completo mas simulación a un foro y buscar la solución con el 16f628a. espero que no se moleste el amigo .dragon333. estoy tratando de buscar la forma de solucionar porque esta matriz si trabaja oke alas que hice anteriormente.
    http://www.forosdeelectronica.com/f13/16f84a-pasar-16f628a-112948/#post892641
    es la pagina donde esta alojado los archivos done pueden descargar y esta comprimido 8×40

  58. Hola amigo Hércules, en tus comentarios indicas que en físico has tenido problemas, los solucionaste, yo estoy preparando en proteus todo listo como para hacer la pcb ( agregue transistores para la salida de las filas y para las columnas terminal para dejar ok la pcb, pero tenia la duda de si te había funcionado en físico

    Juan carlos

    juan carlos celedon
  59. juan carlos celedon amigo me preguntas de los problemas que tuve ya lo solucione incluso lo hice trabajar con el pic 16f648A 8X40 TRABAJA OKE .aquí hay algunas fotos
    http://www.forosdeelectronica.com/showthread.php?p=892641#post892641
    Pronto subiré los archivos.

  60. Bueno amigos Ya dio un inicio el autor de esta matriz de led 8×16 dragon333 lo que nos ha dado una buena teoría bien comprensible acerca de este tema. Lo que nos queda es seguir mejorando o agrandando la matriz de led y así se aprende más acerca de este tema. Subo el archivo de matriz de led 8×24 con el microprocesador 16F628A De igual Manera también ajunto todo los Archivos necesarios que se puedan utilizar al hacer una matriz de led 8×24. Ten en cuenta que antes se utilizaba el cristal de 4 000 Mhz(4) y ahora utiliza un Cristal de 10 000 Mhz(10). también subo el programa CodeGraphics que sirve para generar las letras, números. etc. Al gusto que uno quiere.
    Ejemplo:
    Ejecutas (doble cip) CodeGraphics y esperas a que se ejecute demora un poco marcar donde dice tamaño de matriz 8×8, luego haces doble clip en donde dice archivo te aparece una ventana pequeña y bajas hasta la opción invertir matriz y hacer un clip todo saldrá de color negro el color puedes escoger y cambiar al que quieras ahora ya puedes generar tus letras empecemos con la A: 131, 57, 57, 1, 1, 57, 57, 57; en la ventana Mostrar hay copia estos números. Apretar Mostrar, Veras letra A. con esa base modifica las letras.
    Una vez que tengas ya generada abres el programa MPLAB el que utilizo es MPLAB IDE V8.92 y te diriges a donde indica.
    “AQUÍ SE CARGAN LOS REGISTROS DEL BUFFER QUE SERAN PRESENTADOS EN LA MATRIZ”. Y te ubicas en la letra A. Copias todo lo te genera CodeGraphics en orden. Así como se muestra copiar en decimal como en este ejemplo. Letra A
    A_ bcf STATUS,2
    movlw D’131′
    movwf FILA25
    movlw D’57’
    movwf FILA26
    movlw D’57’
    movwf FILA27
    movlw D’1′
    movwf FILA28
    movlw D’1′
    movwf FILA29
    movlw D’57’
    movwf FILA30
    movlw D’57’
    movwf FILA31
    movlw D’57’
    movwf FILA32
    goto REGISTROS

    Así como vez es sencillo cambiar todas las letras. Tu tarea será hacer las minúsculas y los demás caracteres y aumentar de tamaño la matriz.
    También vas a necesita la tabla ASCII ya buscaras en el internet yo lo utilizo del programa Mikrobasic pro. Esta tabla vas a utilizar cuando vas a aumentar las nuevas letras o caracteres que todavía no estén implementados en nuestra matriz. Utilizarlo es sencillo. En mplab te ubicas donde dice “COMPARA DATO SACADO DE MEMORIA CON VALOR NUMERICO DEL CARACTER ASCII PARA ACTUAR EN CONSECUENCIA” COMPARAR .a partir de aquí está todo lo que vamos a ver en nuestra matriz está representado en (ASCII o números) los números se pone de acuerdo a lo que corresponda la letra. Por ejemplo (a minúscula) le corresponde el número 97 .escribimos en asm o MPLAB.
    movlw D’97’ ; letra a
    subwf LETRA,W
    btfsc STATUS,2
    goto a_
    Después de esto también a que generar la letra con el CodeGraphics ya saben lo demás.
    Para que vean estoy aumentando la (a) minúscula en nuestra matriz.
    Alquilen puede indicar una página que al descargar no te pida clave. Necesito para subir los archivos.

    Atentamente Hércules.

    • Por lo que veo has resuelto el problema del 16F628a, ¿puede ser que al poner otra velocidad de cristal eso haya resuelto el problema?. Hercules ¿donde has subido esos archivos?.

  61. Hola amigo dragon333 si es cierto lo hey resuelto el problema. El día lunes te lo paso todo el archivo a tu correo a ver si lo subes a tu block para que puedan bajar los seguidores de esta página. Atentamente
    Hércules

  62. Gracias por tu estupenda colaboración que amplia las posibilidades de este proyecto sin tocar prácticamente el circuito, excepto según lo que dices, el cristal de cuarzo con otra velocidad.

  63. amigo dragon333 ya te enbie el archivo revisarlo . para los amigos que quieren el archivo de matriz de 8×24 com el pic 16f628A ya subí ase una semana atrás a esta pagina. http://www.4shared.com/rar/-s_eTeIdce/MATRIZ_DE_LED_16F628A_24.html
    atentamente .
    hercules

  64. Bueno amigo dragon333 te envíe el archivo a tu correo no sé si lo recibiste si es así puedes subirlo donde puedan descargar los lectores, pero aquí subo otras páginas para descargar.
    http://www.4shared.com/rar/uT86t1Ymce/16F628A__8x24.html
    http://www.forosdeelectronica.com/showthread.php?p=917006#post917006
    Atentamente.
    Hércules

    • Que si lo recibí. Entonces ¿podemos sacar como conclusión que la velocidad el reloj es lo que afectaba negativamente al montaje en la vida real del PIC 16F628a?.

  65. amigo dragon333 es cierto que no se puede descargar el archivo que subi aquí subo otro que se puede descargar fácil sin paswor.
    http://www.mediafire.com/download/a32fbap6b2fz7eq/MATRIZ+16F628A+24.rar

  66. Yo si lo pude descargar.

  67. hola amigo gracias por la idea ..tengo un proyecto de de una matriz de leds ..de 8 *50…y no se como desplasarlo …los mensajes

  68. Amigo hercules, he realizado tu trabajo, lo que cambie fue una memoria 24LC256, hice una modificacion el texto pero al ejecutarlo no me lee el archivo bin creado, sino que queda con el texto antiguo, (en el ic prog configuro con la memoria at24c256, ya que no aparece la 24lc256), como puedo crear el archivo bin con otro software o hay que hacer algo diferente para que lea el texto modificado

    • debes eliminar la memoria del proteus, volvrt a instalarla, cargarle el nuevo bin y ya, a mi me paso lo mismo y asi lo solucione

      juka

    • Mario cada vez que quieras usar un .bin diferente como prueba en el PROTEUS, haz lo siguiente, BORRAS LA MEMORIA, es decir, situas el ratón sobre EL DIBUJO DE LA MEMORIA Y CON EL BOTÓN DERECHO “delete objet”, insertas una memoria nueva y le cargas el .bin que te interese probar. Esto haz de hacerlo con cada .bin que sea diferente del anterior, ES UN FALLO DEL PROTEUS QUE NO SE PUEDA CARGAR .bin nuevos y que no funcionen sino haces el truco que te he presentado. Hazlo y dime el resultado.

  69. Amigo Hercules, leyendo el hilo del foro pude hacer el cambio de texto, gracias

  70. hola amigo hercules te queria pedir si puedes subir el circuito de la matriz 8×24 o 8×40 ya que no puedo hacer dar en real incluso intente cambiando el cristal de 4 a uno de 12 y no nada esperando tu respuesta

  71. Amigo franz Fernando en el transcurso de estos días subiré la matriz de 8 x 24 con el microprocesador 16f648A trabaja en la simulación y lo real así que baya consiguiendo el microprocesador. A mucho tardar subo el día martes ten paciencia.
    También vas a utilizar un cristal de 20MHZ.

  72. Excelente proyecto he estado intentando hacer algo parecido desde hace tiempo pero no puedo ya que el barrido lo hago por columnas y el billo en los leds es muy débil, aunque yo programo en picbasic creo que me servirá de mucho tu tutorial, pero sabes no he podido abrir los archivos que pones de ejemplo, dices que renombar a zip, ¿Cómo haces eso?

  73. gracias amigo hercules te cuento q incluso trabaje con el cristal 20 Mhz y tampoco pude hacer funcionar y estoy trabajando con transistores 2n 3906 y con el pic84a me funciona re bien pero con el pic628a nada a lo que vi en las fotos de tu circuito creo q estas trabajando con tips por eso te pedia que porfavor me pases los circuitos esperando tu respuesta y gracias por la ayuda

  74. Bueno amigo franz Fernando estos días estoy de viaje estaré de retorno afines de este mes entonces subiré los archivos que requieran. Con el pic 16f628a y 16f648A, si trabaja ,i con los transistores pequeños como el que estas utilizando si te va trabajar utiliza el diagrama del amigo dragon. Descarga este archivo y grávalo con tu programador y prueba con el pic 16f628a .
    http://www.mediafire.com/download/a32fbap6b2fz7eq/MATRIZ+16F628A+24.rar

  75. gracias amigo hercules esta esperando los archivos mientras tanto estare haciendo pruebas con el archivo que dejaste

  76. hola hercules aqui te mando mi correo electronico para q me pases los archivos gracias franz_g@hotmail.com

  77. hola amigo me podrías enviar algun archivo parecido al de ABC donde pueda introducir numeros.

  78. porfavor me puedes pasar el codigo para numeros de la matriz 8×16

  79. Hola amigos otra vez por aquí estuve ausente, fuera de mi lugar, ya estoy de retorno .estos días subiré lo prometido con el pic 16f648A para franz Fernando y todo los quieren este archivo, pero antes el día lunes subiré lo que están pidiendo acerca de la numeración, con un poco de teoría y el generador de caracteres y números. Etc. Para los que han pedido yeyé, Kedari. Y los que necesitan estos archivos hasta la próxima .
    atentamente hércules

  80. gracias amigo hercules estare al pendiente

  81. Bueno amigos tendrán que tener un poco de paciencia porque no he podido subir los archivos dio error al cargar el archivo de una cabina de internet. El archivo que boya a enviar pesa más de 100MB. Con el programa de MPLAB, Generador, y otros datos. Que les va a servir para agrandar la matriz de led, poner los números, etc. Esta semana seguiré intentando subir. Ya les avisare cuando suba .pondré la página para que puedan bajar. Hasta pronto.

  82. Nuevamente por aquí amigos. Sin duda es imposible subir esta en 2% i no se are hora terminara vamos a ser lo siguiente en el transcurso de estos días voy a subir si el programa de MPlab Que ustedes van a descargar de la página oficial que es esta. http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html mplab descarguen la versión 8.92 está MPLAB IDE Archives casi al medio ultima parte.

  83. Ya he subido los archivos para que puedan hacer sus prácticas solamente tienen que descargar Uds. De la página oficial http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html la parte donde dice MPLAB IDE Archives. Versión 8.92 es de 32bit. Trabaja normal en Windows 8.1 de 64 bit yo lo utilizo.
    El archivo que he subido se encuentra aquí. http://www.mediafire.com/download/b1k3kk9wosrl5ja/TODO_DE_MATRIZ_DE_LED.rar
    Atentamente.
    Hércules

  84. Aqui mi granito de colaboración, modifiqué la programación de los amigos para una matriz de 7×48 usando la eepron interna del pic 16F628A para 127 caracteres en mensaje. Se debe escribir el mensaje antes de grabar el pic con el programador como nos enseñaron los buenos amigos de acá. Gracias especial a los amigos Dragon333 y Hercules por sus aportes y seguiremos experimentando!!! Les dejo simulación Proteus, el asm y hex.. alguna mejora sera bienvenida..

    Archivos para descargar de 4shared:
    http://www.4shared.com/rar/ES_kB456ce/16F628___7x48.html

    Algo de video rudimentario:

    • Alejhandro arme todo usando la eepron de 16f628a y anda muy bien lo unico
      pregunto como se puede sacar las pausas que hace al correr el mensaje
      desde ya gracias Ruma

  85. Si no consigo la memoria 12c 24lc256, cual seria otra opción.

  86. Hola amigos otra vez por aquí beo que la matriz de led está siendo cada vez más interesante y todo se lo debemos al amigo dragon333 quien hizo dar los primeros pasos fundamentales de la matriz de 7×16. Ya teniendo la base lo modifique. Ahora se utiliza el procesador 16F628A.
    También quisiera felicitarle al amigo ALEJHANDR0 quien también modifico e hiso trabajar la memoria interna del pic 16F628A. aunque el espacio es muy reducido y mensaje cortos, pero trabaja oke lo probé.
    Estos días estuve con un poco de tiempo y volví a revisar la matriz de led y obtuve buenos resultados trabajando en la vida real. Solamente utilizando el microprocesador 16f628A y un eprom 24c16 y un cristal de10Mhz.me traba hasta 8×56. Porque solamente dispongo de 500 led de 5mm. Ala mano. Ya pronto terminare mi matriz de led 8×56. Subiré un video.
    También me estaban pidiendo los archivos el amigo franz fernando matriz de led 8×32 aquí esta. Mas 8×40. Estos archivos trabajan en la vida real están probados. Así que a programarlo y amontar a su matriz de led. Suerte. Este es el lin para su descarga delos archivos. http://www.mediafire.com/download/4a44cyldl5kjr4b/MATRIZ+DE+LED+8X32%2C8X40.rar
    Atentamente Hércules.

    • Te agradezco tus esfuerzos por mejorar este proyecto Hercules y tambien al resto de colaboradores, yo no dispongo de tiempo suficiente para seguir con este tema, por lo que todos sus aportes son bienvenidos.

  87. Me puedes hacer un favor
    Me puedes mandar un plano y el folotipo de como hacer el programador de pic y eeprom pero con la conexión usb.

  88. Una pregunta. Se puede programar con pickit 2 y si tiene el plano y el folotipo o la construccion del programador que muestran en la imagen.

  89. Me puedes mandar los planos o la construcción de tu programador

  90. Hola gente:

    Soy de Argentina y estuve viendo que varios pedían el ASM de la matriz 8×40. Si todavia lo necesitan me avisan y lo subo ya que solo subieron el Hex. Un abrazo y a sus órdenes. Disculpen si violé algunas reglas del foro, ya que soy muy nuevito en el mismo. Un abrazo.-

    emiajleugim

  91. Otra vez por aquí. Antes, antes que nada al amigo miguel Jaime si tienes trabajos realizados acerca de esta matriz bien venida todos los aportes búbalo de una vez y si tienes con el 16f876A que mejor seria. Volviendo al tema. esta vez les traigo un programador de pic eprom por usb . Para los que están interesados. Aquí está el lin descarga.
    http://www.mediafire.com/download/8e4cnbr4d4njj9o/Programador+Hercules+POR+USB.rar
    atentamente hercules.

  92. El ASM prometido. Sigo a sus ordenes

    https://www.mediafire.com/?bcpnj4g68l6ngmw

  93. Me puedes decir que nombre reciben los led que se necesitan.

  94. gracias al amigo hercules por los archivos que me brindo ahora quisiera pedirles un nuevo favor nose si alguien me puede dar una idea de como poder mandar dos mensajes diferentes solo apretando un pulsador mi idea era utilizar dos eproms pero nose si puede hacer eso,lo que queria era mandar un mensaje primero y luego apretando un pulsador me muestre otro mensaje y luego volviendo apretar el mismo pulsador o otro pulsador que vuelva al anterior mensaje les agradecere mucho su ayuda

  95. Y cual es el voltaje de los led

  96. Franz:

    Dame un tiempito y te paso informacion de cambiar mensaje, ya que estoy trabajando sobre eso. Un abrazo.-

  97. gracias miguel estare agradecido por toda la ayuda posible

  98. sos un capo loko… es lo que andaba buscando y muy bueno como explicas paso a paso (Y)
    Es uno de los mejores post q vi como fanatico de la electronica 😉

  99. Amigo Franz:
    No me olvide de tu pedido, solo que ando un poco ocupado con unos trabajos atrasados. Prometido lo tuyo para la semana que viene, ya que a mi tambien me interesa cambiar de mensaje. Te adelanto que hay que usar otras memorias mas chicas para poder poner mas de una, por ejemplo 24c04. Estas se las pueden seleccionar por soft, por configuracion de pines. Bueno. Despues lo vemos en detalle y disculpas por la demora. Es lo malo de ser pobre. Un abrazo.-

  100. gracias estare al pendiente muchas gracias por la ayuda un gran abrazo a la distancia

    • Hola Franz:

      Estoy a full con un proyecto que lee y graba datos de un micro AVR y eso me tiene ocupado.
      En el caso de querer poner mas de una memoria en el circuito de la matriz tenes que usar una memoria chica por ejemplo la 24c04, y podes colocar varias y cada una puede tener almacenado un mensaje que le hayas introducido. Estas memorias utilizan los pines 5, 6 y 7 para configurar fisicamente su identificacion en el circuito. Esto vendría a ser así. Si colocas las tres patitas a masa, esa memoria puede ser llamada con el numero 000. Si tenes otra tambien en el circuito y podrias conectar la 5 y 6 a masa y de esa manera se la puede direccionar como 001, y asi hasta 8 memorias si queres. O sea una configurada como 000, otra 001, otra 010, otra 011, otra 100, otra 101, otra 110 y la ultima 111. De esta manera cada memoria responde unicamente cuando es llamada.
      Espero haber sido claro hasta ahí y seguimos hasta confeccionar el correspondiente soft. Si alguien tiene una mejor idea bienvenida sea.

  101. Bueno amigos otra vez por aquí. Esta bes les traigo el programa completo, trabajando en la vida real 8X40 com el pic 16f628A + un video que subí a este sitio:

    Hasta pronto.
    Hércules

  102. Muy buena la matriz de 8×40 Hercules. La probé en proteus y muy buena realmente.

  103. Felidades Hercules por tus avances y gracias por compartirlos en este blog.

  104. gracias a miguel por la ayuda actulamente estoy probandola

  105. El último link de descarga está roto, tendrás uno actualizado

  106. O que aconteceu? Tudo o mundo foi emboura?

  107. Hoola esta muy bueno el proyecto.. una pregunta podrias hacer un mini video de como programar el PIC pro hablando y mostrando como usas el hexel y winPic.No logro entender algunas cosas,como si grabas solo el PIC o la eeprom tambien..Si es mucho gracias de todas formas

    • Hola. No se a quien va dirigido el mensaje, pero lo que puedo decirte es que deberías leerte algun cursito de pics. De todas maneras ahí va una mini explicacion:
      Despues de haber cargado el archivo .hex en un programa como por ejemplo el Winpic800, se coloca el pic en cuestion en una interface que puede estar conectada a la computadora mediante el puerto serial en el conector DB9. En las opciones del Winpic800 haces click en escribir en el componente o grabar todo y si el programa te da todo ok ya puedes instalarlo en la plaqueta definitiva. Te aclaro que generalmente vas a encontrar dos archivos, uno con extension .asm que es el desarrollo del proframa y el que mencioné .hex que es el archivo ya listo y compilado para ser cargado en el pic. Bueno. Espero haberte aclarado un poco las cosas, te deseo suerte en el proyecto y a leer porque hay mucha literatura al respecto en la red. Cualquier duda puedes preguntar y trataré de ayudarte. Suerte.-

  108. Hola Joose:
    Te aclaro que los mensajes se graban por aparte en una memoria 24CXX, que no es la memoria del pic sino una aparte externa de 4×2 pines. Si tenes mas dudas avisa y tratamos de ayudarte.-

  109. Luis:
    Hay varios circuitos con emulacion en proteus y todos funcionan. Todos son practicamente iguales al del ultimo link que subió Hercules. Tendrías que solicitarselo a el pero te aclaro que hay varios circuitos en este link y todos funcionan.-

  110. El archivo con el mensaje que se graba en la memoria externa tiene extension .bin y puede cargarse tambien con el winpic800. Ambos, el pic y la memoria se graban en forma totalmente independiente.-

  111. Con respecto a exel pueden obviarlo y escribir el mensaje directamente en la memoria utilizando la parte del codigo ascii que tiene el winpic800. Al mismo tiempo se va formando el codigo en extension .bin y se puede grabar en la memoria. Cuando esten mas cancheros pueden hacerlo mediante exel, blok de notas, etc. y despues pasarlo a .bin el el winpic800. Creo que asi es menos complicado para los que se estan iniciando en pic’s.-

  112. saludos a todos del canal de tiempo volviendo queria hacerle una pregunta al amigo miguel jaime con respecto a la idea que diste la anterior vez esta genial la idea q me diste pero no estoy pudiendo hacer correr el programa me salen varios errores en el mplab nose si podrias darme mas ayuda te lo agradecere mucho

  113. Hola Franz:

    Tendrias que postear el programa que decis te da muchos errores en el mplab y con mucho gusto te ayudo porque sino no se que es lo que no funciona bien.-

  114. Si programo el PIC 16f84a con el archivo .hex del ABC y mando ala eeprom mi mje del hexel enhexadecimal funciona?. debo programar solo el tiempo de activacion de filas? Si m podrias enviar un video d como hacerlo estaria bueno

  115. Hercules, veo que la rutina de temporización RETARDOS.INC, que usas en tu matriz 8×40 es la misma que se usa para un cristal de 4Mhz, pero sino me equivoco ahora usas un cristal de 20Mhz para el PIC 16F628a ¿Estoy en lo cierto?.

  116. Amigo dragon333 estas en lo cierto estos días estoy muy ocupado. Voy a revisar los archivos.
    El cristal que utilizo es 10Mhz para 16f628A, y 16f648A. hasta la próxima.
    hercules

  117. por favor ayudarme necesito hacer una matriz programable puede ser con arduino o con pic la matriz tiene que ser 10×100 es un proyecto ya grande y o se como empezar por favor ayudarme a hufito@gmail.com

    fernando benavides
  118. Hola Fernando:

    Si lees el contenido de este foro podras realizar lo que tienes en mente. Extenderse sobre el particular seria repetitivo. Suerte.-

  119. amigo poco a poco voy entendiendo mejor aunque puedo hacer la matriz de led 10X100 con el mismo pic??

    fernando benavides
  120. gracias amigo ya casi entendido todo por favor ayudame con la programacion del pic para que funcione y reconosca la memoria y otra pregunta puedo alargar el tamaño solo incrementado los ic?

    fernando benavides
    • Si mira el pcb observará que está preparado para ser ampliado, eso si, en el formato de 8 filas, usted pretende 10, por lo que ha de reinventar el diseño de la pcb, el código es cuestión de que estudie el mio y lo compare con los que ha puesto hércules ampliando la matriz para que vea la mecánica de la programación.

  121. ok si ya lo entiendo aunque empesare a copiarlo tal como esta una vez me funcione lo ampliare …. aunque ayudame co la programacion del pic como le programo para que reconosca la memoria

  122. Hola gente:

    Felicitaciones tanto al iniciador del proyecto, dragon333 como a hercules que continuo con unas muy buenas modificaciones. Ahora estoy en la construccion de la ultima matriz subida por hercules y mi pregunta es si puedes subir los archivos correspondientes a la PCB, ya que el que fue subido por dragon333 tiene una memoria con identificacion de direccion con los terminales 5, 6 y 7 a masa que no se corresponden con la 24C16 o 24C256? Tambien les comento que estoy haciendo pruebas programando sin retirar la memoria. Como la plaqueta no me quedo muy prolija que digamos debido a numerosos puentes que tube que hacer, por eso agradeceré si suben el PCB. En unos días subire el circuito adicional para grabar la memoria sin retirarla del circuito. Una vez mas muchas gracias a todos los que aportaron a este proyecto.-

  123. Hola Dragon333:
    Las memorias 24lcxx trabajan con tension de alimentacion muy baja, alrededor de los 2 volts, de ahí la «L», del ingles low. Por eso no funciona en el proteus con la 24LC256 con el pic16f628. Se coloca la 24C256 o similar para una lectura correcta entre el mencionado pic y memoria, logicamente desabilitando entradas y salidas analogicas de los puertos y demas configuracion. Felicitaciones por tu proyecto al cual he seguido con mucho interes y perdon por mi equivocacion en los terminales.-

  124. Amigos aquí subo un video para todo aquellos que tenían problemas de errores al copilar MPLAB aquí está la solución también pueden modificar las letras.
    Atentamente hércules

  125. Que será del amigo fernando Benavides que estaba pensando en diseñar una matriz de 10×100 que es un poco laborioso pero no imposible. Esta mañana estuve jugando un poco com la matriz de led de 10×16 aunque el tiempo me gano pero pude hacer trabajar la letra A pero tuve un poco de problemas al mostrar la letra A. haber si lo corrigen y lo suben el asm.
    Cuando tenga tiempo boya hacer esta matriz de led de 10×56 según la foto que tengo en esta carpeta que opinan. O al quien tenga mejor idea a ver si comentan antes de empezar con la matriz de led.
    Hasta pronto hércules
    http://www.mediafire.com/download/fv2l91g1uee8hcr/MATRIZ+10X16.rar

  126. Esta prueba de matriz de led de 10×8 me salió bien con la letra “c”. También hice la prueba con todas las letras del abecedario y trabaja oke.
    http://www.mediafire.com/download/dkm5bg6ap0lmwna/MATRIZ+DE+10X8+LETRA+C.rar
    el anterior no lo resise todavía.

  127. Hola, a todos aquellos que habeis pedido la posibilidad de que desde el PC se pudieran grabar los mensajes, dejo este link de un proyecto de matriz en que se puede hacer eso: http://www.puntoflotante.net/MATRIZ-DE-LEDS-7X30.htm

  128. amigo me puedes compatir el circuito impreso de la matris de leds de 8×16 para acerlo en serigrafiaaaa???????????

    juan carlos delgado mundaca
  129. Hola a todos los del foro y mis respetos para los que llevaron adelante este muy buen proyecto. Aqui subo la matriz con 6 modulos de leds o sea 48 x 8. Pruebenlo ya que estan todos los archivos necesarios incluso el de proteus. Si alguien tiene dudas o quiere hacerlo mas largo me avisan. Estoy cargando los mensajes en la memoria externa sin sacarla del circuito pero no lo estoy incluyendo todavia porque mi coneccion entre la matriz y la pc es via DB9 o sea RS232 y las maquinas nuevas ya no traen ese conector. Estoy tratando de implementar a traves de USB. Si hay interes me avisan y la semana que viene lo subo, si Dios lo permite. Gracias a todos los miembros del foro.-

  130. lo probe en proteus y no anda ? que puede ser ?

  131. Amigo miguel Jaime indicas que programas el 24cxx sin sacar de la pcb de la matriz de led. seria interesante que lo subieras para analizarlo como hiciste el programa y con que pic y el programa de visual BASIC. Si no es una molestia también indicas que trabaja por R232. Si no me equivoco.
    Yo justamente hice unas modificaciones a la matriz de led utilizando el integrado 74ls138 y otro C.I.
    del 16F628A del puerto B utilizo solamente 3 pines quedando libre los demás pines para poder implementar el R232.
    mi matriz de led Ya esta trabajando 8×32 y 10×50 aunque tengo unos pequeños problemas.
    Hasta pronto.
    por algún caso mi correo . jcarlos_507@hotmail.com
    Hércules.

  132. Hola Hercules:
    Yo solo programo los pic en assembler asi que no puedo ayudarte con picbasic. Con respecto al soft es el mismo que vos publicaste solo agregue las rutinas necesarias para tener 48 x 8 leds. Encuanto a programar la 24C16 sin sacar de la placa madre digamos, lo hice por hard desde un conector DB9. Nada nuevo como veras, pero super sencillo y eficiente. En la proxima lo subo. Espero haya quedado claro. Solo que estoy tratando de hacerlo por conector USB ya que esta desapareciendo el DB9 (RS232). Probaste la ultima que subí de 48 x 8? En el Proteus me funka de 10. Ahora estoy armando todo, ya te pasaré las fotos, para ver como se porta en la realidad. La idea de la programacion in situ la saque de un robot con pic que hice hace unos diez años. Quiero ver si llego a 80 x 8 y despues comenzar con otros efectos, pero ya tendria que migrar
    a otro pic porque al 16F628 ya no le queda espacio. Hasta la proxima. Por cualquier cosa mi correo es emiajleugim@hotmail.com.-

  133. Esta vez subo esta matriz de led de 10×48 que utiliza una memoria externa 24c16 o 24c256 que es almacenado todo el mensaje que será mostrado por el pasa mensaje. miguel Jaime lei tu comentario . Pero no lo probé todavía tu matriz de led , en la realidad tu archivo. porque yo trabajo con el pic 16f648A pero estos días lo probare. Aquí subo un video de matriz de led 10×48 que les parece. En el puerto B. hay pines que no tiene conexión .donde se puede utilizar otras conexión como por ejemplo el R232. O usb. Solamente tengo un pequeño problema como verán en el video algunas sugerencias. Lea quedare muy agradecida.
    Bueno para ver el video busquen en google con el nombre: MATRIZ DE LED 10 x 48 GIGANTE – YouTube porque no puedo mostrar este lin me da error ojala que suba esta ves.
    http://www.mediafire.com/download/qr9xd6ba8yzakpq/LIBRERIA+DE+RETARDO.rar
    Atentamente Hércules.

  134. intentando otra ves.

  135. por fin aora ya no sera necesario que busquen ya pueden ver. el que la sigue la consigue.

  136. Hola Hercules:

    Interpreto que usas solo 4 pines para manejar las columnas porque el pic cuenta hasta 10 en binario y en el 154 es convertido a decimal y de ahi controla las columnas. No tengo el assembler asi que no se como implementarlo ni tampoco el tema de los retardos ya que hay una relacion directa. La verdad que esta muy bueno. Saludos.-

  137. Haber amigos aquí subo este trabajo de matriz de led de 8×16 utilizando el 74ls138. Para que puedan mejorar. Solucionar los errores que tiene esta matriz de led. Por el momento está trabajando con el cristal de 4mhz. Pueden simular y probar. Yo estoy haciendo mi pcb de matriz de led 10×48 con el 74HC154. Ya cuando termine subiré el video. aquí 8×16.
    http://www.mediafire.com/download/dlma2vc4q8mv7z1/8×16+CON+74LS138.rar
    Atentamente Hércules

    • Hola Hercules:
      Estoy estudiando el archivo que subiste 8×16 donde el barrido de filas se hace a traves de un conversor BCD, con salida de 0 a 7, para habilitar las correspondientes filas, pero no he podido detectar la falla por la cual no trabaja practicamente la fila de abajo. En cuanto tenga novedades al respecto avisaré. Sería bueno que des una pista ya que tu estas con 10×48. Desde ya muy agradecido.-

  138. Disculpemé Hercules. Usted es todo un caballero.-

  139. Hércules, he probado todos los archivos que has puesto y no me funciona ninguno con el PIC 16F628a, he usado un cristal de 20Mhz y una rutina de tiempos adaptada para esa frecuencia. La pregunta es, ¿has probado otras frecuencias diferentes a los 10Mhz en tus montajes reales?. Si no, lo que me queda es simple y llanamente adquirir cuarzos de 10Mhz. Saludos.

  140. Otra pregunta Hércules, ¿tú grabador por usb puede trabajar con el winpic800?.

  141. A los que os interese unas ideas de como programar la memoria para meter los mensajes sin andar sacándola una y mil veces, os puedo decir que la forma mas simple es la programación en circuito mediante ICSP, el ICSP consta de cinco terminales, podeis poner pistas adicionales en el PCB para programar la memoria y sacar un cable hacia afuera con un terminal que encaje en la toma ICSP de un programador USB. Tan simple como eso, es una solución a medio camino de poder ingresar directamente los mensajes mediante teclado ps2 a la memoria.

  142. Amigo Dragón:
    Todo lo que sea para avanzar con el proyecto que iniciaste, bienvenido sea. De paso aprovecho para felicitarte por el proyecto que como veras está creciendo y progresando, y muchos estamos aprendiendo de el. Saludos.-

  143. Algo que me olvide era de responderles que si mi programador trabaja con wimpic. Lamentablemente no trabaja con wimpic 800. En el escribo y lo programo las 24Cxx con el programa Dpic.
    Al amigo dragon 333.si tiene problemas abecés con el 16f628A. Pero yo solucionaba poniendo 2 cerámicos a uno de los pines del pic donde está el cristal de 10mhz.yo ya me mude al 16f648a. Pero otro amigo que hiso tubo el mismo problema, soluciono utilizando un cristal de 11Mhz y agregando cerámico al cristal. Pero la solución es más rápido utilizando el 16F648A. que no tiene problemas. Anda de inmediato utilizando el Cristal de 10MHZ y cerámico de 22P o 33P. el que actualmente utilizo nunca me dio problemas.
    Les tengo 2 noticias una buena y mala:
    1ra.- la buena. Que la matriz de led de 10×48 ya me trabaja oke. Inclusive ya la diseñe la PCB. y lo estoy probando con mi matriz de led 8×32 aunque las 2 filas de abajo no aparecen como verán las fotos.
    2.- la mala noticia es que solamente en la memoria de programa del pic. Se puede escribir hasta la línea de 2065. en mplab. A partir de ahí tiene problemas no simula en proteus. No anda en la realidad. Por esta razón es que ya no se puede aumentar la matriz de led.
    Tampoco no puedo aumentar una conexión a usb ni R232. Ya no podrán aumentar la matriz de led a 10×56 o 8×64. Cuando utilizas las mayúsculas y minúsculas o cuando se excedan de 2070 líneas en MPLAB. Esto se puedes comprobar así. En MPLAB van a View clip, bajan hasta program memory clip en ella i veras hasta dónde has escrito. A pesar que tengo con el procesador 16F648A para escribir hasta 4096. Un espacio considerable, suficiente para agregar la conexión externa. A ver si alguien puede opinar, colaborar, o hacer llegar un manual o tutor acerca de este problema de la matriz de led. Le quedare muy agradecido. No encuentro información en MPLAB. Con el procesador 16f648A. Solamente indican que es igual al 16f628A el cual solamente tiene una capacidad de memoria de 2048 líneas para escribir ya me excedí.

    Nota: para escribir la 24cxx. Solamente se necesita 4 cables conectados al programador como es (5v, Tierra, SCL, SDA) i un interruptor para que no trabaje el pic al momento de gravar la 24cxx. Así lo utilizo con mi programador. Pero que mejor sería si se implementa en el programa.

    Atentamente Hércules.
    http://www.mediafire.com/download/ljf2b2lbtc2sfna/FOTOS+MATRZ+DE+LED+10X48.rar

    • Hércules tus problemas de espacio creo que van por aquí:
      http://www.forosdeelectronica.com/f24/salto-paginacion-pclath-pic16f877a-9314/
      http://www.forosdeelectronica.com/f24/assembler-me-paso-595-lineas-pic-funciona-532/

      Dicen que la solución es usar PAGESEL, he encontrado esta explicación:

      Para poner una rutina en otra pagina puedes usar
      pagesel y_el_nombre_de_la_rutina
      call y_el_nombre_de_la_rutina

      asi el compilador pone los bits para cambiar de pagina de programa, y antes del return igual

      pagesel y_el_nombre_del_programa_al_que_quieres_volver
      return

      y asi el compilador te pone los bits para que vuelva a la pagina donde esta el programa, esto se puede hacer con goto tambien

      cuidado con las call solo se pueden poner en las 256 primeras posiciones de cada pagina

      y los bancos se refieren a los bancos de los registros de la ram y perifericos, por ej. para dirigirte a trisb

      banksel trisb
      movwf b’00110011′

      asi el compilador te pone los bits de estatus para que apunten al banco de trisb.

  144. Buenas amigo, he seguido constantemente los comentarios de nuestros compañeros y ahora aporto mi granito a estos grandiosos proyectos.

    Primero «espacio»:
    Con el amigo Hercules lamentablemente no he experimentado la triste falla del MPLAB a las 2065 lineas de codigo y espero le consigamos solucion, yo por no poseer ese pic 16F648A, me vi muy limitado con MI UNICO PIC guerrero, el 16F628A.. lo que me hizo improvisar muchisimo para sacar espacio donde no lo tenia luego de las mayusculas y minusculas para seguir programando mi matriz y pude ahorrarme casi un 30% o mas de lineas, prestando mucha atencion al codigo y desechando alguna que otra lineas de mas. Por ejemplo, y donde saque tanto cantidad de ahorro fue que por cada letra que programamos repetimos instruciones que podemos obviar (por lo minimo UNA LINEA POR CADA LETRA podemos borrar) ahorrando enormemente en codigo y comprobe que funciona a la perfeccion como en estos tres ejemplos de letras, asi:

    D_ bcf STATUS,2 I_ bcf STATUS,2 U_ bcf STATUS,2
    movlw D’131′ movlw D’129′ movlw D’157′
    movwf FILA42 movwf FILA42 movwf FILA42
    ; movlw D’153′ ; movlw D’129′ ; movlw D’157′
    ; movwf FILA42 movwf FILA43 movwf FILA42
    movlw D’153′ movlw D’231′ ; movlw D’157′
    movwf FILA43 movwf FILA44 movwf FILA43
    ; movlw D’153′ ; movlw D’231′ ; movlw D’157′
    movwf FILA44 movwf FILA44 movwf FILA44
    ; movlw D’153′ ; movlw D’231′ ; movlw D’157′
    movwf FILA45 movwf FILA45 movwf FILA45
    ; movlw D’153′ ; movlw D’231′ ; movlw D’157′
    movwf FILA46 movwf FILA46 movwf FILA46
    ; movlw D’153′ movlw D’129′ movlw D’129′
    movwf FILA47 movwf FILA47 movwf FILA47
    movlw D’131′ ; movlw D’129′ movlw D’195′
    movwf FILA48 movwf FILA48 movwf FILA48
    goto REGISTROS goto REGISTROS goto REGISTROS

    es decir no volver a cargar el registro W con el mismo dato si ya lo tenemos cargado de la instruccion anterior. Bueno a detallar cada letra y simplificar codigo!!!!

    Segundo «grabar EEPROM»:

    de tanto explorar como grabar los datos en la eeprom, (tampoco tengo una memoria externa, ya quiero conseguir una), segui jugando con la eeprom interna de mi pic, (a ver cuando realizo una buena compra de componentes) use de manera facil y practica, lo que entendi mas comodo para mi fue escribir, desde mi viejo TECLADO PS2 al pic directamente.. su trabajo me costo pero me funciona a la perfeccion con la limitacion de mi poquito espacio, cuando tenga tiempo dejo algo de video, y basicamente la rutina de captura de datos con que trabajo desde el teclado es esta:

    PORTA,7 DECLARADO UN PIN COMO ENTRADA EN PIC Y VA AL PIN DATO DEL TECLADO PS2
    PORTA,1 DECLARADO UN PIN COMO ENTRADA EN PIC Y VA AL PIN CLOCK DEL TECLADO PS2
    VARIABLE «DATO» DECLARADA AL INICIO PARA GUARDAD INF
    con algun SW entramos en esta rutina de captura y comparacion de datos desde teclado PS2

    LEER

    call LEER_PS2 ;VOY A LA RUTINA AL FINAL Y TRAIGO UN DATO DESDE EL TECLADO
    movlw 0XF0 ;ME QUEDA EL VALOR DEL CODIGO RASTEO PS2 GUARDADO EN VARIABLE DATO
    subwf DATO,W ;ESPERO SOLTAR TECLA AL RECIBIR VALOR 0XF0 PARA EVITAR REBOTES
    BTFSS STATUS,2
    GOTO LEER
    call LEER_PS2 ;AHORA SI TENGO UN DATO DE UNA TECLA Y COMPARO A VER CUAL ES

    ESC
    movlw 0X76 ; SI TECLA PULSADA ES ESC SE SALE Y VA INICIO
    subwf DATO,W
    BTFSC STATUS,2
    GOTO Inicio
    goto BUSCAR

    BUSCAR
    MOVF DATO,W ; COMPARO SI TECLA PULSADA ES LA a Y ASI SUCESIVO CON TODAS LAS TECLAS
    SUBLW 0X1C ; HAY QUE VER QUE CODIGO DE RASTEO PS2 CORRESPONDE CADA TECLA
    BTFSC STATUS,2
    GOTO AA
    *
    *
    *
    MOVF DATO,W
    SUBLW 0X1A ; LA TECLA Z CORRESPONDE A DATO 0X1A DISTINTO DEL VALOR ASCII DE Z QUE ES 122
    BTFSC STATUS,2
    GOTO ZZ
    GOTO LEER

    AA Movlw d’97’ ;ASIGNO EL VALOR REAL ASCII 97 DE LETRA A PARA GUARDAR EN LA EEPROM
    MOVWf LETRA ; VAMOS A UNA RUTINA DE GUARDAR EN LA EEPROM QUE SE ENCUENTRA
    Goto GUARDA ;EN FOROS, NO COLOCO LA MIA PORQUE USE LA EEPROM INTERNA..
    *
    *
    *
    ZZ Movlw d’122′ ;LUEGO DE GUARDAR SALIMOS DE ESTE BLUCE DE TECLADO Y YA MOSTRAMOS
    MOVWf LETRA ;MENSAJE DESDE EEPROM, PODRIAMOS IR A LA RUTINA COMPARA TAMBIEN
    Goto GUARDA

    LEER_PS2
    CLRF DATO ; CHEQUEAR INF DE COMO COMUNICA UN TECLADO PS2
    MOVLW .9 ;
    MOVWF A
    BTFSC PORTA,7 ; http://picmania.garcia-cuervo.net/proyectos_teclado_ps2.htm
    GOTO $-1
    ROTAR
    BTFSS PORTA,1 ; 11 BIT DE CLOCK TOTAL POR PORTA.1
    GOTO $-1
    BTFSC PORTA,1 ;
    GOTO $-1
    BCF STATUS,0 ;SON 8 BIT DE DATOS POR PORTA.7
    RRF DATO,F
    BSF DATO,7
    BTFSS PORTA,7 ;
    BCF DATO,7
    DECFSZ A,F ;YA SE COMPLETO EL DATO FALTA COMPLETAR EL CLOCK
    GOTO ROTAR
    BTFSS PORTA,1 ;
    GOTO $-1
    BTFSC PORTA,1 ;PODEMOS QUITAR ALGUNAS DE ESTAS DE AQUI PARA ABAJO
    GOTO $-1 ;PERO ES MEJOR DEJARLAS PARA EVITAR REBOTES DE TECLA
    BTFSS PORTA,1
    GOTO $-1
    BTFSC PORTA,1 ;
    GOTO $-1
    BTFSS PORTA,1
    GOTO $-1
    return

    Bueno para no hacer mas extenso este el comentario, creo es suficiente a los mas habidos para completar las rutinas y GUARDAR LETRAS EN LA EEPROM.. Espero les sirva de ayuda a algun compañero, mi trabajo me costo funcionara porque en ningun foro dan mayor explicacion de como hacer esto .. Espero no haberme excedido y disculpenme si cometi alguna falta de publicacion en forum.. Gracias a las fuentes..

    • La escasez agudiza el ingenio Alejandro, muy imaginativa y eficaz tu forma de ahorrar espacio, ¿Podrías colgar los archivos .asm y esquema de tu conexión por PS2?. O enviarlo a dragon33@hispavista.com. Explícame otra duda sobre este trozo de código:

      ESC
      movlw 0X76 ;SI TECLA PULSADA ES ESC SE SALE Y VA INICIO
      subwf DATO,W
      BTFSC STATUS,2 ;si resultado resta anterior es cero, bandera a 1
      GOTO Inicio ;es cero, es ESC
      goto BUSCAR ;es distinto de cero, no es ESC

      Para que la resta «subwf DATO,W», en caso de ser ESC, de CERO, si el dato ASCII de ESC es 27, y el dato HEX es 1B..¿Como es que colocas en w el dato 0x76? ¿de donde sale ese 0x76?.

      NOTA: Me respondo a mi mismo, el 76 es el scan code de la tecla ESC.

  145. Ups, me unio los tres ejemplos, coloco solo uno:

    cambiar de esto

    D_

    bcf STATUS,2
    movlw D’131′
    movwf FILA42
    movlw D’153′
    movwf FILA42
    movlw D’153′
    movwf FILA43
    movlw D’153′
    movwf FILA44
    movlw D’153′
    movwf FILA45
    movlw D’153′
    movwf FILA46
    movlw D’153′
    movwf FILA47
    movlw D’131′
    movwf FILA48
    goto REGISTROS

    a esto, con cinco lineas menos:

    D_

    bcf STATUS,2
    movlw D’131′
    movwf FILA42
    movwf FILA42
    movlw D’153′
    movwf FILA43
    movwf FILA44
    movwf FILA45
    movwf FILA46
    movwf FILA47
    movlw D’131′
    movwf FILA48
    goto REGISTROS

    Sorry!!!!

  146. Algo de .asm con teclado PS2 pero hay que limpiarlo mucho, disculpen lo desordenado, para entenderlo, el proteus no simula (creo) un teclado PS2, triste.. pero da un ejemplo de como ver distintos mensajes y con algunas modificaciones podran adaptarlo a vuestros proyectos… http://www.4shared.com/rar/Vd-2Wq_9ce/letrero.html
    Saludos desde Caracas, Venezuela

    • Gracias ALEJHANDRO por tu excelente aporte, Con todas esas ideas se puede ir uno ya imaginar como meter mensajes directamente desde teclado PS2. Ahora es cuestión de ensamblar el puzzle para crear una matriz con entrada desde teclado y almacenamiento en memoria externa, a ver si lo conseguimos, pues este proyecto no existe en internet, o por lo menos yo no lo he encontrado.

  147. Interesante las participaciones de los amigos dragon333 y el amigo ALEJHANDRO. Por compartir la información como ganar más líneas o más espacio en la memoria del pic. El cual he puesto en práctica. En la matriz de led de 8 x56 que ya está incluido las mayúsculas y minúsculas + números. Anterior mente en MPLAB llegaba 2065 líneas de código Al copilar.
    Ahora a l utilizar esta técnica logre reducir a 1870. Tengo espacio de 195 líneas para seguir escribiendo y modificando por el momento y eso sin examinar tal vez seguiré aumentando más líneas. Cuando llegué otra vez al error anterior con el MPLB de 2065. Aplicare la información del amigo dragon333. Así se podrá escribir más cantidad de líneas de programa.
    Con estas buenas noticias y la información de conectar un teclado de pc (TECLADO PS2). Agregaremos al programa de nuestra matriz para que sea autónomo nuestra matriz de led. Parece sencillo.
    Claro que no. Será un trabajo pero ya tenemos puesto un ejemplo. Una explicación, un inicio y de seguro que si lo aremos con la ayuda del amigo ALEJHANDRO. en los pines libres del pic agregaremos el teclado de la pc.
    No antes de terminar de escribir les agradezco a los amigos dragon333 y ALEJHANDRO por la respuesta de las dudas que tenía. Y la información compartida. Por El mejoramiento de esta matriz de led que está avanzando a pasos agigantados. Como su nombre indica. MATRIZ GIGANTE.
    Envió estos avances + el mini video ya pronto subiré los archivos. De matriz de led 8×56 multiplexado o utilizando el 74HC154 si lo requieren.
    Atentamente. Hércules.
    Veo que subió el archivo de teclado el amigo ALEJHANDR0 gracias por tu aporte.
    Aquí subo fotos ganando espacio en la memoria de pic
    http://www.mediafire.com/download/h5s6kc1ft1r8kph/fotos+8×56+Multiplexado.rar

  148. Hola, algo de video para que vean como funciona mi matriz experimental con teclado PS2, solo hay que ser bastante creativo al programar e insistir hasta altas horas de la madrugada siempre.. como veran, reescribo sobre el msj anterior y agrego otro siguiente en el video, se pueden hacer tantos msj como la eeprom lo permita y me quedo algo de basura de msj viejos que debia borrar con espacios en blanco y no lo hice, pero es solo un pequeño ejemplo de lo que se puede lograr con pocos componentes y creatividad. En enero estare de vacaciones y tendre tiempo de crear una matriz final. Disculpen la calidad pero grabe con el movil como pude..

    • ALEJHANDRO, muy buen trabajo, el código de captura de datos del teclado PS2 es el mas simplificado y sencillo que he visto. Tengo ejemplos de código que hacen uso de la interrupción externa por bajada a 0 de la patita por donde entra la señal de clock desde el teclado, tú lo que usas es un pulsador que le dice al micro que se ponga en modo captura de datos desde PS2. He simulado tu ejemplo en PROTEUS con un interruptor como entrada de DATA y un pulsador como CLOCK, un método algo arcaico, pero simula bien la trama de 11 bits que entran desde el teclado y funciona. Saludos y FELIZ NAVIDAD.

      https://www.mediafire.com/?aofk139t43jxq1t

    • Alejhandro muy bueno tu trabajo me gustaria recibir todos los archivos para poder
      armarlo desde ya Gracias Ruma

    • Hola Alejhandro esa matrix con teclado PS2 esta buenisima deberias subir los archivos te lo agradeceria mucho
      mi correo es rumabriz@hotmail.com Gracias Ruma

  149. felicitaciones hermano un buen trabajo me gustaría tener el asm y el hex porque no puedo descargar el de navidad ni el de cartel largo me dice q le faltan elementos y no lo habre porfa quiero hacer uno para mi

    • Acabo de hacer la prueba de descargar tanto el archivo NAVIDAD, como el CARTEL LARGO, y ambos se han descargado sin problema, recuerda una vez descargados situar el ratón encima y con el botón derecho del ratón, abrir con…elige winzip o cualquier otro compatible para abrir archivos .zip. Saludos y dime que tal te ha ido.

  150. Amigo excelente el proyecto, la explicación, el aporte, agradecido 100%

  151. Ya solucione mi problema con la librería de retardos de 4Mhz a 10Mhz. Me trabaja excelente. También are uno con el 16f628A estos días. El problema que tengo es de volver ensamblar mi pcb para este pic porque el que utilizó es diferente la pcb. Disculpen por el video no tiene explicación por motivo de tiempo.
    Atentamente hercules

  152. Dragon333:
    Subo el PDel y despues la explicación de como calcular los retardos según el cristal que se usa y los requerimientos del programa, por ejemplo cuando espera 2 ms.

  153. Me dirijo a Dragón porque considero que es el artífice de este proyecto. Lo que quiero decir es que esto va dirigido a todos los miembros del foro, pero lo hago a traves de dragon porque creo que es el mas indicado, juntamente a todos los que ayudan a perfeccionar este proyecto, caso Hercules, Alejandro, etc.
    El tema de los retardos es bastante facil. Deben indicarle al programa PicDel el cristal que estan usando y el retardo requerido por el programa principal, como por ejemplo 2 ms. y el programa confecciona una rutina que les servirá para crear dichos retardos y solo tendran que cambiar algunos nombres de registros y etiquetas para que no se repitan y les de error. Esto porque se supone que van a introducir varias rutinas de retardo. Espero haber sido claro. Cualquier cosa a sus ordenes. Gracias a todos por este espectacular proyecto.

    • Gracias miguel, conocía el PicDel, sólo le decia a hércules que si había hecho un archivo .INC con diversos tiempos al estilo del que se ha usado para el cristal de 4Mhz que lo compartiera con todos.

  154. Hola Dragon:
    De todas maneras es facil porque tenes que lograr el retardo requerido por el programa principal con el cristal que estas usando. Voy a ver si subo el .inc.

  155. El PicDel creo que no está demás ya que algunos no lo tienen. Ahora pueden bajarlo.

  156. Buenas, mas aportes en desarrollo..

    Estroy trabajando un poco con 8×48 con 16F628, la eeprom externa 24c256 y el PS2 (aunque aun no consigo en tienda en mi pais esa eeprom, no la he podido comprar) no he probado en fisico , estoy trabajando en el programa simulado hasta donde puedo porque Proteus no simula el teclado PS2, creo deberia funcionar con algunas correcciones (ojo esta en desarrollo), si alguien lo puede armar y hacer pruebas seria genial.. En proteus, el pulsados de Siquiente Mensaje a veces no me funciona bien, a veces si, debo dejarlo pulsado 1 o 2 seg para que no de error del msj anterior pero creo es por la velocidad de mi maquina PC, igual esta todavia en desarrollo y no es la vesion final.. Tambien por espacio del PIC no esta activada la octava fila de la matrix. Seguimos Trabajando y gracias a los colaboradores!!

    Descarga: http://www.4shared.com/rar/AZzfblnHba/16x48_PS2_24C256.html

    • hola buenas ya descargue el archivo la matriz con teclado 7*48 con una eeprom 24c256 lo hice en protoboar en el circuito pero no funciono en la realidad , coloque los transistores 2n3905 los drives en el puerto B nada pero en el proteus si simula el circuito . podría ayúdame para tener la solución
      gracias .

  157. Felicitarle al amigo ALEJHANDR0 por su ultimo aporte que es excelente su trabajo lo boy probar estos días . en ala realidad. Haber si subes el asm.
    Al dragon333 le respondo. Si tengo la librería de retardos para el cristal de 10mhz. Lo hice el 1ro de enero 2015 y trabaja todo los retados exacto. Ya lo he probado en varias simulaciones y también en la realidad lo estoy utilizando. Lo subiré juntamente con la matriz de led 8×40. En el transcurso de estos días. Recién lo estoy ensamblando mi matriz de led. con el pic 16f628a.
    Aunque tal vez ya no sea necesario de subirlo. Por ahí decía el amigo miguel Jaime.
    es facil porque tenes que lograr el retardo requerido por el programa principal con el cristal que estas usando. Voy a ver si subo el .inc.
    De repente lo suba más rápido que apurado.

    El hombre bale por su palabra.
    Atentamente Hércules.

    • Hercules:
      Mis felicitaciones por todos tus aportes que son invalorables. Personalmente creo que sos el que mas a colaborado en este foro. Una aclaración. Cuando dije que el tema de los retardos es facil, la intención es que la mayoría se anime a solucionar cosas en el assembler. No hay en lo mas mínimo menospreciar el trabajo de nadie. En lo personal, les cuento que tengo 60 años y mi predisposición en este foro es unicamente ayudar en lo que pueda. Felicitaciones a todos, porque no he encontrado otro lugar donde se trate tan bién el tema matrices led. De corazón, felicitaciones a todos y estoy a sus órdenes.

  158. Hola amigos, no sabía si hacer un apartado o dejarlo aquí, en fín, he decidido dejarlo aquí. En su día me quebré la cabeza con el tema de la comunicación I2C, y claro, el PIC16F84a, el PIC16F628a y similares no tienen implantado por hardware ese protocolo, y se decidió usar unas rutinas existentes para implantar dicho protocolo. He adaptado programas como CARTEL LARGO y MENSAJE NAVIDEÑO a un PIC mas potente que tiene el I2C por hardware, se trata del PIC16F876A, dejo los archivos para que experimenteis.

    https://www.mediafire.com/?h1rx9lhko7rxng5

    https://www.mediafire.com/?ea1mywt1g281saj

  159. Bien amigo dragón por la matriz de led con el procesador 16f876A. Este si puede llegar a 8×100. Porque tiene más espacio la memoria de programa hasta quizá se le puede poner efectos o la hora y fecha claro que será laborioso mis felicitaciones por tu trabajo.
    Al amigo miguel Jaime un apretón de manos y sigamos adelante con esta matriz de led que tiene nueva luces. Sería bueno que subas algunos tutoriales acerca del tema.
    Bueno aquí subo la matriz de led de 8×40 con cristal de 10MHz
    Atentamente Hércules
    http://www.mediafire.com/download/j744n23kz59266k/MATRIZ+8×40+16F628A.rar

  160. bueno se me olvido subir la librería pero aquí esta

  161. has clip en you tube parte abajo a un costado te abrirá la pagina del vídeo. de hay descargas. clip en mostrar mas.

  162. amigos tengo una dudo, gracias a este tutorial tan bueno realice mi propio proyecto, lo adapte a un 16F877, por que 16f877 se preguntaran, bueno porque esta en un proyecto viejo sin usar y lo quiero reutilizar, ya realice la simulación, modifique lo necesario para adaptarlo, todo fino, y lo hice para una matriz de 8 x 48, la duda es, la quiero hacer aun mas ancha la matriz digamos unos 8X80 si es posible, pero que yo sepa los archivos de uso generales del pic van de la dirección 20h al 7Fh, y creo que no me dan lo suficientes para colocar todos los archivos FILA que necesito para cargar y rotar toda la matriz, es esto así? o hasta que cantidad de registros podría usar o de que manera podría hacer mas ancha la matriz? gracias

    • Para un 8X80 necesitas declarar 88 registros «FILA», si tienes 96 bytes en ese banco no te cabrán con los registros adicionales aparte de los «FILA», necesitas declarar variables en otro banco.

      Si miramos el mapa de memoria del PIC16F877 observaremos que para propósito general tiene cuatro páginas o bancos de memoria, la primera va de la dirección 20 a la 7F, con 96 bytes, la segunda va de la A0 a la EF con 80 bytes, la tercera va de la 120 a la 16F con 80 bytes, y la cuarta va de la 1A a la 1E con 80 bytes. Es decir, disponemos de 336 bytes totales sumando los 4 bancos. Ahora, ¿como se le dice al compilador que coloque los registros en cada banco?, y una vez colocados, ¿como se le dice al programa en que bancos están esos registros?. Amigo, en cuanto lo tenga claro te lo pondré aquí, de momento a bote pronto se me ocurre que a la hora de asignar los registros en vez de hacer:

      CBLOCK 0x20 ;para PIC16F877a
      FILA1
      FILA2
      FILA3
      FILA4
      ENDC

      Hagas lo sigiente:

      FILA1 EQU 0x20
      FILA2 EQU 0X21
      FILA3 EQU 0x22
      FILA4 EQU 0x23
      .
      .
      .
      .
      FILAn EQU 0x7F ;esta sería la última
      ;de pagina 0
      Luego seguirias con la página 1 a continuación

      FILAn EQU 0xA0
      FILAn EQU 0xA1
      FILAn EQU 0xA3
      FILAn EQU 0xA4
      .
      .
      .
      Así hasta el final, y luego la página 2 si es necesario, y luego la 3.

      El problema es como accede o sabe el programa donde están esos registros.

  163. CON RESPECTO A LA MEMORIA DE PROGRAMA Y DE DATOS.

    La memoria de programa del PIC 16F628A tiene una memoria FLASH de 2048 Kbytes para albergar la memoria de programa, y una RAM con 4 bancos de memoria de 224 bytes, 160 bytes en dos bancos, el 0 y el 1 accesible para usuario (para colocar los registros), y una EEPROM con 128 bytes.

    Si tu programa no cabe en LA MEMORIA DE PROGRAMA es porque has agotado la primera página de la FLASH, pero puedes seguir en la segunda, para seguir en la segunda has de saber desde que dirección empezar a grabar datos, al igual que empezaste indicando al compilador que empezase a grabar desde la posición ORG 0x05, si quieres seguir con la siguiente página has de poner ORG 0x800 (ojo, quitando el END y volviéndolo a colocar al final de los códigos que van a continuación de ORG 0x800), para que empiece con la segunda página de la FLASH de programa. Tienes que hacer uso de PAGESEL, para seleccionar aquellas partes del código o aquellas rutinas que se hallen en diferente página, y tener en cuenta tambien los archivos .INC en que páginas quedan.

    Respecto a la memoria RAM, SI AGOTASTE EL PRIMER BANCO, puedes seguir en el segundo colocando con la directiva EQU la posición de memoria de registros de proposito general, que en el caso del PIC 16F628A empieza en la dirección A0 del banco 1. Ejemplo: FILA_52 EQU A0. Tienes que hacer uso de la directiva BANKSEL para seleccionar los bancos donde se hallen los datos.

    ¡OJO, NO CONFUNDIR MEMORIA DE PROGRAMA CON MEMORIA DE DATOS O RAM PORQUE NO ES LO MISMO¡

  164. Dragon333:
    Como no está el archivo inc con los retardos para cristal de 10 mhz. subo uno generado en el picdel, con los retardos de 2 ms y 10 microsegundos, para el programa y para el I2C respectivamente. Como no lo arme todavía en la realidad lo pongo a consideración de ustedes para la matriz que subió Hercules de 8×40, 10mhz de cristal. Saludos y gracias a Hercules por todo.

    CBLOCK
    PDel0
    PDel1
    PDel10
    ENDC

    Retardo_2ms
    ;————————————————————-
    ; Generado con PDEL ver SP r 1.0 el 25/01/2015 Hs 08:41:03 p.m.
    ; Descripcion: Delay 5000 ciclos
    ;————————————————————-
    movlw .6 ; 1 set numero de repeticion (B)
    movwf PDel0 ; 1 |
    PLoop1 movlw .207 ; 1 set numero de repeticion (A)
    movwf PDel1 ; 1 |
    PLoop2 clrwdt ; 1 clear watchdog
    decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)
    goto PLoop2 ; 2 no, loop
    decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)
    goto PLoop1 ; 2 no, loop
    PDelL1 goto PDelL2 ; 2 ciclos delay
    PDelL2 clrwdt ; 1 ciclo delay
    return ; 2+2 Fin.
    ;—————————————————-

    ;————————————————————-
    ; Generado con PDEL ver SP r 1.0 el 25/01/2015 Hs 09:12:05 p.m.
    ; Descripcion: Delay 25 ciclos
    ;————————————————————-

    Retardo_10micros
    movlw .5 ; 1 set numero de repeticion
    movwf PDel10 ; 1 |
    PLoop10 clrwdt ; 1 clear watchdog
    decfsz PDel10, 1 ; 1 + (1) es el tiempo 0 ?
    goto PLoop10 ; 2 no, loop
    return ; 2+2 Fin.
    ;————————————————————-

  165. wuao, exelente todos los comentarios y la ayuda, esta semana experimento y les comento. gracias a todos me dieron buenas ideas

  166. Gente:
    Me olvide decirles el nombre del archivo – » RETARDOS10MHZ.INC » Al amigo Harry no hice comentarios porque no estoy muy ducho en ese tema. Saludos.

  167. Según tengo entendido me parece que todavía no han descargado los retardos de 10mhz
    Entren a YouTube LIBRERIA DE RETARDOS 10MHZ en la parte de abajo del video dice. Mostrar más a ser clip. Descargar la librería de retardos. ” RETARDOS10MHZ.INC ”
    Aquí subo un archivo que trabaja en la realidad.
    http://www.mediafire.com/download/4i5qaa0gtbonga2/MATRIZ+8X40+10MHZ.rar

  168. Que tal amigos como están que de buenas como les va el proyecto de la matriz de led
    Estos días voy a probar el último archivo que subió el amigo ALEJHANDR0.
    Quisiera pedirle un favor al amigo ALEJHANDR0 si no es una molestia para que comparta el asm del ultimo archivo que subió para poder analizar i quizá modificarlo a 8x 56 o más.
    Por algún caso pongo mi correo. Jcarlos_507@hotmail.com
    Escríbame amigo.

  169. Hola después de mucho tiempo otra vez por aquí. Haber ti todavía hay alguien por ahí subo este video de matriz de led 8×56 con todo sus archivos.
    Atentamente hércules.

    • hola hercules, quisiera hacer una matriz de 8×16 para empezar pero no estoy muy familiarizado con la programacion assembler quisiera saber si me puedes ayudar con las matrices que ya has hecho y explicar un poco como funciona el codigo. gracias

  170. hola mi matrix de led no me da pulso de reloj y se mantienen todos los led encendidos que podra ser

    • Este montaje ya ha sido realizado por muchos de los lectores del blog y funciona, revisa las pistas del PCB a ver si tienes un cortocircito entre pistas algún componente defectuoso etc.

  171. Hola amigo manuel_armas acerca de tu pregunta. Todo lo que es de matriz de led. La parte teórica explicó el amigo Dragon333. al inicio de este blok. Lee entenderás como trabaja. Ahora si no sabes acerca de asambler .busca en internet hay encontraras bastante información más tutoriales.
    Atentamente. Juan carlos.

    • Hola explicando mejor mi pregunta le puse a la matrix de 8×32 que modificaron aqui que usa un cuarso de 10mhz y le puse uno de 16 mhz y cuando arranca se mantiene encendida la pantalla entera con el de 10 me funciona de lo mejor pero con ese para que me funcione tengo que tocar las patillas 15 o 16 para que prenda el recorrido modifique la pocicion de memoria de la x20 a la 35 y nada lo mismo que opinion tienen para aumentar el cuarzo?

  172. Bien amigo Yamir has lo siguiente auméntele un condensador de 10p al cristal de 10mhz. O sino descarga e siguiente archivo y modificas el inicio a CBLOCK 0x28 lo copilas listo lo programas a tu pic i veras como trabaja.
    Atentamente hercules.
    descarga
    http://www.mediafire.com/download/7vd

    • gracias hermano por la idea, pero lo que necesito es poner un cristal de 16 o 20 y que me trabaje de una, yo monte con el de 10 y me funciona ok, pero de esos no hay muchos los que tengo son los valores antes dichos y con esos cuando arranca me salen iluminada completa tengo tocar las patillas 15 o 16 y empieza bien pero quisiera buscar esa solución. saludos a todos .

  173. Hola, gracias por tu aporte. Tengo una pregunta como ingresaste la información a la memoria externa… gracias

  174. Amigo Yamir para que puedas utilizar los cristales de 16mhz o 20mhz lo que tienes que hacer es modificar. es la librería de retardos como yo lo modifique de 4mhz a 10 mhz. En este caso tendrías que hacer de 16mhz o 20mhz según lo que necesites. Para ello puedes utilizar el programa pedel no me acuerdo bien como se escribe. Y generar tus retardos.
    El problema es que no me alcanza el tiempo para poderlo hacer no es muy difícil para hacerlo. Si me alcanza el tiempo estos días subiré el hex para 20mhz. Que pic estas utilizando.
    Suerte con tu matriz.
    Atentamente hércules.

  175. Hola, alguien sabe como puedo usar los registros de desplazamiento 74LS164 para aumentar las filas de una matriz y así hacer una de 16×32 ó 24×64, y en caso de que no se pueda con el 74LS164 con que otro integrado pudiera hacerlo, gracias. Saludos a todos.

  176. Amigo manuel_amas yo solamente hice una matriz de led 12×45. Para ello tuve que modificar la salida del puerto B, tuve que utilizar otro integrado. En tu caso es de 16 un poca más laboriosa pero no imposible. Creo que tengo en mis archivos matriz de led 16×45 lo buscare.
    Atentamente hércules.

    • gracias hercules por responder y te lo agradecería mucho de verdad, lo revisare y tratare de mejorarlo y aumentar las filas considerablemente para poder tener matrices con mayor resolución y compartirlo con este grupo que la verdad me ha ayudado mucho. saludos a todos.

  177. Bien amigo manuel_armas aquí subo un archivo de 16×48 haber ti te sirve de algo.
    El archivo Esta completo más simulación en proteus.
    También en la parte de arriba subi un archivo de 10 x8 con una sola letra. También fíjate bien como está el asm. Puedes modificar y hacer un poca más grande .cuando te salga con letras mas grandes. Por ejemplo 14×8 0 16×8 .recién puedas trabajar con la matriz de 16×48 . Que requieras. No te desanimes será un poco trabajoso pero lo lograras. Alguna duda pregunta .
    Suerte con tu matriz de led.
    Aquí subo la matriz de led 16×48
    http://www.mediafire.com/download/2ahm7wvcjt85vbr/MATRIZ+16X48.rar

  178. Amigo perdón por la ignorancia pero… ¿como programaste el pic? O lo conectaste así nomas…

  179. Hay alguna novedad por ahí con una matriz de Led 8×48 con teclado PS/2?

  180. Hola amigo oye como creo el programa para meterlo al pic ya con las letras no enyendi eso

  181. Gracias a este foro pues logre hacer esta Matris de 8×32 Leds. Un saludos a todos los amigos de aqui. No es la gran cosa pero para mi fue muy buen invento jejejejeje.

    Ahi está un video en Youtube de la Matris.

  182. Buena tardes dragon 333 ya todos los miembros de este fantastico foro, soy aprendiz de electronica y la verdad me gusta, por medio de este blog he podido hacer la matrix 8×16 con scroll y memoria 24c016. ahora mi pregunta: para ampliarla a 8×32 solo cambio el pic a 16f628a y la rutina de retardos de 4mz a 10mz y el codigo de asm ¿ solo eso o hay otros pequeños detalles, les agradesco sus respuestas.

    • Necesitas obviamente cambiar el programa para adaptarlo a 8×32, yo con el 16F628A he tenido problemas, habría que ver con otros PIC equivalentes en patillaje al 16F84A o al 16F628A, no olvidar que el PCB que diseñe para este montaje es para ese patillaje y no para otro.

      • Hola amigo Dragon 333, en efecto hice la simulacion en proteus con el pic 16f628a con una matrix 8×32 y corre bien, con un criatal de 4mz no se si en la vida real se comporte de igual manera, ¿tu que me recomiendas agradesco tus respuesta

      • hola me podrias ayudar indicando cuanta frecuencia necesito para x cantidad de leds? es decir si aumento leda deberia aumentar la frecuencia pero como se lo hace teoricamente

      • No hace falta aumentar la frecuencia.

  183. Buenos dias amigo dragon 333 y hercules, les cuento que puse a trabajar la matrix 8×32 con un cristal de 4mhz y pic 16f628a aumentando la velocidad mvlw d3 y trabaja bien, al principio tenia problemas con la matrix pues solo desplazaba la primera letra y reiniciaba, pero cuando conecto y desconesto la alimentacion corre bien saludos y gracias por todos sus aportes.

  184. Buen tratado y bien explicado

  185. Hola amigo excelente trabajo, quisiera me ayudaras aunque sea con un link xq necesito hacer algo parecido pero sin matriz, sin secuencia, algo básico, es un contador que me muestre en el cartel de led arriba en porcentaje 100% c/ 10 minutos la cantidad de botellas que pasan a través de un sensor infrarrojo, y lo compare con la cantidad que tiene que pasar en el cartel de led abajo ej. 1000 botellas, lo estoy haciendo con arduino, el problema lo tengo en la etapa de controlar los led, el circuito desde el arduino hasta llegar a los led, se que es en serie paralelo(95 led para porcentaje y 141 led para el valor(con el punto decimal)), soy aficionado de alma y me dieron este desafío, la programación la tengo, la fuente de 12v, la pantalla de 3.2 táctil, un módulo reloj para llevar la fecha y datos, me la he complicado bastante, pero en lo más tonto estoy patinando.
    Saludos y gracias por compartir.

  186. Hola necesito por favor con urgencia el diagrama eléctrico del grabador de memoria y del PIC

  187. este mira no se si me podes dar las medidas que utilizaste para hacer los cuadrantes para cada led ??? ya que eso no lo explicaste

  188. no se si alguien me puede decir las medidas para hacer los cuadrantes para la separacion de leds

  189. Amigos un cordial saludos a todos los que visitan a esta pagina y a dragón 333. Nuevamente por aquí es para indicarles que subiré un archivo uno de estos días. Que trabaja en la realidad. Matriz de led 8×32 Con el pic 16f628A. Por qué los que subí tenías problemas. Estoy revisando y simulando en proteus. Hasta la próxima.
    atentamente. Victor (hércules)

    Victor (Hercules)
  190. Amigos nuevamente estoy para poder solucionar. El problema de la matriz de led 8×32.me escribieron muchos amigos pidiéndome un video y que trabaje con 16f628a. Bueno aquí tienen todo el archivo completo. Que trabaja en la realidad. Pero solamente trabaja con letras mayúsculas. Si no te gustan las letras puedes corregir con el programa que está en el archivo. La descarga de todos los archivos del video.
    MATRIZ DE LED 8X32 EN MPLAB ARCHIVO COMPLETO TRABAJA EN LA REALIDAD

    Victor (Hercules)
  191. Muy buen proyecto. El link del pcb en acrobat no funciona. Podrias subirlo nuevamente. Gracias.

  192. Para ser mas explicito. Con que programa se puede abrir? Gracias.

  193. amigo si comentas del archivo del vídeo la PCB esta echo en pcb Wizard descarga e instala. aquí el lin.
    http://www.mediafire.com/file/tdap85zdhw1yrsq/LivewirePCBWizard.rar

    Victor Hercules
  194. Mil gracias por el dato. Te comento que en mi ciudad, San Salvador de Jujuy, Argentina, todos los colectivos tienen displays de 16 x 32 leds. Sabes de algun circuito que trabaje con 16 leds de alto x lo que sea de largo. Si tenes algo te agradeceria lo compartieras. Desde ya quedo a tus ordenes en lo que respecta a la electronica, ya que llevo mas de 40 años trabajando en esto. Reitero mi agradecimiento por tu gran voluntad de colaboracion.

  195. Amigo miguel angel para hacer esa matriz de led 16×32. Habría que utilizar otro pic, la memoria de este pic no alcanzaría para esta matriz que indicas. Yo hice hasta 10×40. El generador CodeGraphics. solamente es hasta 8×10. Si consigues el generador de letras 8×16 0 16×16 de seguro que se puede hacer. Caso contrario será muy laborioso hacer las letras.
    Este aviso 8×32.
    atentamete victor hercules.

  196. aqui otro video .

  197. Gracias por tu pronta respuesta. No se que pic seria bueno de utilizar en una columna de 16 leds. Por la confeccion de las letras no hay problema. Si sabes de algun proyecto de 16 x lo que sea, te agradecere lo compartas. Insisto con mi agradecimiento por tu voluntad de cooperacion. Estoy terminando otro proyecto y me pongo a armar el que has publicado de 16 x 32.

  198. Perdon. De 8 x 32.

  199. amigo por el momento no tengo de esa altura o 16x….en lo posterior me daré un tiempo.mis vacaciones se terminaron,estaré muy ocupado. si tienes algún avance de esa matriz indícanos para poder ayudarte.
    atentamente. victor hercules

  200. Anoche estuve trabajando con esta demo de la matriz de 16×16. Solamente tiene las letras A,B,C,D ,ESPACIO. Lo que me falta es un generador de letras con decimales. Para facilitar editar las letras del abecedario. También he visto que se utilizara una librería de 20mhz, no tengo la librería y se utilizara un pic 16f876A o un 16f877A. Con este último se le puede agregar incluso hora, calendario, y algunos efectos a la matriz de led.
    El problema es que no dispongo de tiempo. Aquí la matriz 16×16

    • Hola Hercules. Sos muy rapido con estos temas lo que me alegra muchisimo ya que estas pronto a ayudar. Si podes publicar el ASM de la matriz de 16 x 16 seria buenisimo. Con respecto al generador de caracteres decimal ya estoy tratando de conseguirlo y lo publico. Nuevamente te pido por favor el circuito, el ASM y los archivos para la simulacion en el proteus de la matriz 16 x 16. Desde ya muchas gracias y te felicito por tu gran voluntad de cooperacion para con los que amamos la electronica.

  201. este archivo completo trabaja en la realidad probado con mi matriz de led 8×32 con 16F648A

  202. Hola a todos, como han estado. alguien me podria decir como hago para que el programa de la matriz led 8×40 me funcione en estas versiones actuales de microhip,, compila bien pero el programa no funciona ni en proteus ni en la realidad. gracias.

  203. Hola buenos días tenia q haber puesto el archivo en pdf no he logrado abrirlo.mi correo es riveroe 958@,gmail.com

  204. Hola de nuevo por aca, ojeando los distintos avances en los proyectos. Un aporte que encontre navegando, estos proyectos bastantes interesantes de matrix de leds, y como tintroducir los mensajes por RS232 o PS2, hay que usas traductor. Saludos

    https://cxem.net/mc/mc147.php

    https://cxem.net/mc/mc150.php

Replica a dragon333 Cancelar la respuesta