Autor Tema: De matriz de leds, a letrero electronico  (Leído 242014 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #75 en: 12 de Enero de 2009, 21:54:47 »
gracias RALF, amigo

jeje y estaba oxidado, por eso tarde bastante cometía muchos errores y después tenía que corregirlos y hasta algunos los dejé por flojera jaja, hasta me cree una librería para las matrices el sensor de temperatura y el 16f88 primeramente, use las de redpic, muy buenas sus librerías ahí habían el 2550, el ds1307 y algunos otros tb, tuve que refrescarme, jeje

ahh y hasta aprendí un truquito, nose si ya lo habrán publicado en el hilo de trucos de eagle, pero lo colocó después, se me olvido, hoy ahorita estoy de salida, es sobre las vías cuando se cambia de cara de top a botton o viceversa aparecen las vías solitas una vez seleccionado el tamaño y todo, quizá lo sepa la mayoría, si no esta en los trucos lo pondré :mrgreen:

y cada vez falta menos para recoger la placa de la serigrafía :-/ :-/

bueno, nos leemos después, un saludo
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #76 en: 13 de Enero de 2009, 19:45:10 »
 :5] :5] :5] :5] :5]

caray me equivoque en la PCB!!! debí hacerlo en mirror, soy un caimán :x

pucha ahora tendré que volverlo a llevar, que idiotón que soy

ni modo, un día más a la espera :(
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #77 en: 29 de Enero de 2009, 14:10:16 »
Hoola, después de muchos días de espera y de trabajo para mí, por fin tengo los primeros resultados

Pero primero les muestro paso a paso:

1. los materiales y la PCB serigrafiada:


2. un vistazo más cerca de las serigrafías:


PCB que tendrá a los 4094-uln2803 y las matrices, Circuito de visualización


PCB que tendrá al micro, Circuito de Control

3. La PCB después del atacado con ácido, quedó limpiezita, lástima que no quedó así hasta el final :(, la de la esquina inferior derecha es el grabador de Willip, se coló por ahí :D

.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #78 en: 29 de Enero de 2009, 14:50:43 »
y pues siguió el trabajo largo y duro, tuve varios problemas con el tamaño de las vías y de los huecos para las resistencias que por defecto son algo pequeñas, lo de las vías traté de arreglarlo manualmente pero no fue tan bueno que digamos, al final no quedó tan bien la PCB de visualización (el de las matrices) sigo verificando varias pistas cortadas algunas por que la serigrafía estaba algo mal y otras por mi mano lenta en el soldador que hizo desplegar una que otra línea

sigo trabajando pero les dejo las imagenes de las PB's:

1. La de control, la que más me gusta, porque salió bien :mrgreen::


Vista de arriba, lado de los componentes


Vista de abajo

2. La de visualización, donde están las matrices, registros y ULN's:


Vista de arriba, lado de los componentes


Vista de abajo, se ensució mucho, pero bueno ojalá me disculpen

Entonces seguiré arreglando la PCB y después comienzo con el soft para el micro

Espero les haya gustado el trabajo hasta ahora, disculpas por tardar tanto y por alguna mala calidad o enfoque de las fotos o errores en la PCB

Ahí seguimos después, falta colocar un mejor esquemático con buses en eagle para que no se vea tan mal, se los colocó después

Un saludo para todo el foro.
.

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: De matriz de leds, a letrero electronico
« Respuesta #79 en: 29 de Enero de 2009, 16:47:42 »
Hay una cosa que no entiendo, por que se utilizan transistores PNP en lugar de transistores NPN, Lo que no entiendo es que si pones la pata del PIC que está conectada al transistor PNP por la base, a "1" entonces estas poniendo un voltaje positivo en la base del PNP, y según tengo entendido estará en corte.

Lo que quiero saber es como funciona el PNP para activar el led, y el porque se pone el integrado ULN2803. (el funcioamiento del CD4094 ya lo entiendo, solo que me descuadra el transistor PNP).


Queremos ver la matriz funcionando !!! :D.

Salu2.
Share the world !

Blog's

http://www.area0x33.com

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: De matriz de leds, a letrero electronico
« Respuesta #80 en: 29 de Enero de 2009, 21:15:23 »

Vaya trabajo que te has aventado pana Cryn , entre perforacion y soldadura  :mrgreen:

Felicitaciones!

Ansioso por verla funcionando , y en cuanto tenga tiempo ya te estare molestando en lo qu eno entienda  :D

Saludos!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #81 en: 30 de Enero de 2009, 02:29:40 »
Hay una cosa que no entiendo, por que se utilizan transistores PNP en lugar de transistores NPN, Lo que no entiendo es que si pones la pata del PIC que está conectada al transistor PNP por la base, a "1" entonces estas poniendo un voltaje positivo en la base del PNP, y según tengo entendido estará en corte.

Lo que quiero saber es como funciona el PNP para activar el led, y el porque se pone el integrado ULN2803. (el funcioamiento del CD4094 ya lo entiendo, solo que me descuadra el transistor PNP).

Queremos ver la matriz funcionando !!! :D.

Salu2.

En realidad el hardware que construí es una recopilación de algunos que encontré por acá y de la pagina de Ariel, de ucontrol, y esto es lo que concluyo con experiencias que tuve y leídas acá en el foro:

un NPN hace que con un 1 lógico en la base, el emisor y colector tengan aproximadamente el mismo potencial, es decir un "corto circuito virtual". Y contrariamente con un 0 lógico en base, el emisor y el colector estan en diferentes potenciales, o en palabras vulgares están abiertos, jaja

un PNP es inverso, con 1 lógico, el emisor y colector abiertos. Y con 0 lógico corto circuito. Y en la conexión también va inverso, el emisor a VCC

la razón por la que use PNP es simple, me baso en el criterio de:

*cátodo común => NPN
*ánodo común  => PNP

porque? mm pasa que es más efectivo, así pues se puede colocar a la inversa o NPN siempre, pero hay algunos desperdicios de tensión por ahí, quizá sea uno de los motivos por los que se note menos brillo algunas veces

el ULN lo puse para mejorar el brillo, y funcionó bien, porque le quite el ULN para probar y el brillo bajo considerablemente, así que es muy importante el ULN, y también va por el lado del consumo, un registro no aguanta mucho y hasta puede tender a arruinarse, con el ULN le das larga vida al circuito :mrgreen:

Y si!! yo también ya quiero verla funcionando, pero falta, falta, este PCB que me trae loco


y si AKENA fue fregado tarde como 2 tardes perforando, jajaja, si no era porque se rompía la broca era porque me cansaba, jejeje y estaba pensando seriamente en la miniestación de perforado como la de nocturno. Mis ansias son las mismas para que funcione, y con gusto te responderé cualquier duda

Un saludo amigos
.

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: De matriz de leds, a letrero electronico
« Respuesta #82 en: 30 de Enero de 2009, 14:36:45 »
Gracias, Cryn , el funcionamiento de los NPN y los PNP los tenia claros, lo que no tenia claro era la logica con la que activavas el PNP, es decir si pones en la salida del PIC un 0 lógico, realmente es como si estubieras conectando los terminales de massa (GND)?

El conexionado de los diodos es con el PNP es colector-anodo/cátodo-GND ?, otra duda es: si en el cd4094 le transmites un 0 lógico, es como si estuvieras poniendo GND en la pin?


Gracias, por las respuestas, así me voy aclarando las dudas, cuando (y cuando tenga tiempo tambien haré mi propio Publik :D)

Salu2.
Share the world !

Blog's

http://www.area0x33.com

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #83 en: 30 de Enero de 2009, 18:42:44 »
lo que no tenia claro era la logica con la que activavas el PNP, es decir si pones en la salida del PIC un 0 lógico, realmente es como si estubieras conectando los terminales de massa (GND)?

El conexionado de los diodos es con el PNP es colector-anodo/cátodo-GND ?, otra duda es: si en el cd4094 le transmites un 0 lógico, es como si estuvieras poniendo GND en la pin?

la lógica con la que activo los PNP es la siguiente: como expliqué en mi anterior post y bien sabes los PNP's juntan colector-emisor con un cero lógico en su base, entonces mis matrices son de ánodo común, todos los ánodos de cada fila están conectados entre sí, es decir la fila 1 de la matriz 1 esta conectado con la fila 1 de la matriz 2 y así sucesivamente y con el resto de las filas y matrices respectivamente. Entonces el PNP tiene el emisor en VCC y el colector en cada fila (ánodos +) por eso tengo 8 transistores, uno por cada fila. Uso entonces un puerto para el encendido de las filas, el puerto B estará destinado a ello, normalmente estarán todos en uno lógico, y cuando quiera encender una fila, su línea correspondiente la colocaré en cero lógico (las otras por tanto estarán apagadas o en 1 lógico en la base de su PNP correspondiente), y como debe ser encendida una fila tras otra, lo que en realidad pasa es que se hace rotar un cero lógico por todo el puerto, B en mi caso.

La alimentación de cada led es por el colector de cada PNP, por eso también es que use transistores de mediana potencia, como son los BD140 porque tengo un publik de 8 filas x 40 columnas, como toda la fila es la que se enciende se puede consumir como máximo 20mx40=800mA por fila, y un transistor de propósito general no podrá entregar eso.

Y sobre el conexionado es así como dices, para que quede mas claro te muestro una imagen más explícita :mrgreen:


y sobre la transmisión al 4094, si es más o menos eso lo que pasa, pero en este caso el que hace de "GND" son los ULN, que a la vez son negadores por si acaso.

espero que no me haya enredado, de ser así me avisas para tratar de aclarar nuestras dudas

un saludo
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #84 en: 30 de Enero de 2009, 18:49:17 »
Bueno para empezar con lo del hardware se me estaba olvidando colocar el esquema electrico del minipublik que tengo, esta grandote, pero ahora creo que el tamaño es lo de menos con el tamaño de los monitores que seguramente tienen :mrgreen:

No lo había puesto antes porque no sabía hacer buses en eagle, pero después del videotuto del buen Pali, me di cuenta que estaba siendo una pipoca :D

acá está en chiquito, click para agrandar:


seguimos trabajando...
.

Desconectado jim_17

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
    • Blog personal
Re: De matriz de leds, a letrero electronico
« Respuesta #85 en: 30 de Enero de 2009, 20:30:49 »
Pues muchas gracias Cryn, ahora lo he entendido todo perfectamente :). Intenté resolver mi duda a traves de San google pero como no obtuve la respuesta preferí preguntar directamente :D.

Salu2.
Share the world !

Blog's

http://www.area0x33.com

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #86 en: 30 de Enero de 2009, 21:20:41 »
bien, no pasa nada, para eso estamos :mrgreen:

además queda mejor acá explicado por si alguna otra persona también está interesado

no explique muchas cosas, porque a la vez algunas cosas las saque de la web o con preguntas aca mismo, pero cualquier cosa que falte solo avisen, ya igual después estaré colocando mejores detalles

un saludo
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #87 en: 04 de Febrero de 2009, 15:08:07 »
de momento les presento el 1er código que hice para el 16f88, para que talvez pueda servir a alguien, porque de momento, aunque me duele un poco decirlo, tengo que dejarlo pendiente esto del publik, porque se me presento un proyecto urgente para un amigo, aunque en ratos que pueda le dedicaré al publik :mrgreen:

acá les dejo el 1er código:

Código: C
  1. #include <16f88.h>
  2. #fuses HS,NOWDT,NOLVP,PUT,NOBROWNOUT,MCLR
  3. #use delay(clock=20000000)
  4. #use fast_io(a)
  5. #use fast_io(b)
  6. #include <fonts.h>
  7. #include <string.h>
  8.  
  9. #define clock PIN_A1
  10. #define strobe PIN_A2
  11. #define dato PIN_A0
  12. #define size_matriz_col 8  //cantidad de columnas por matriz
  13. #define COLUMNAS 40       //Defino cantidad de columnas a usar
  14. #define matriz_num COLUMNAS/size_matriz_col  //numero de matrices usado
  15.  
  16. #byte portb=6
  17.  
  18. int matriz[matriz_num+1][size_matriz_col]={"\0"};  //Almacena los datos a mostrar en el cartel
  19. int Fila;           //Fila actual a refrescar
  20. int VSync;          //Indica si es momento correcto de modificar lo que se esta mostrando...
  21. int Inhibit;        //Impide que se produzcan cambios en el cartel.
  22. const int mensaje[1][32]={"Feliz Navidad y Feliz 2009!!..."};
  23. const int num_msj=1;
  24. const int msj_length[num_msj]={31};
  25. int carries[6],msj,letra,desplazos;
  26.  
  27. void ShowFila(void);
  28. void cargar(int datob);
  29. void desplazar_izq(void);
  30. void load_letra(int caracter);
  31.  
  32. //Esta interrupcion debe suceder segun la cantidad de filas que tengas, y segun la cantidad de Hz a los que queres que tu cartel refresque...
  33. #int_TIMER0
  34. void  TIMER0_isr(void){
  35.  
  36.    ShowFila();                  //Mostremos la fila actual...
  37.    Fila++;
  38.    if(Fila==8){
  39.       Fila=0;
  40.       VSync=1;
  41.       if(Inhibit!=0)
  42.          Inhibit--;
  43.       else
  44.          desplazar_izq();
  45.   }
  46.   else
  47.      VSync=0;
  48. }
  49.  
  50. void main(void){
  51.    setup_timer_0(RTCC_INTERNAL|RTCC_DIV_32);
  52.    enable_interrupts(INT_TIMER0);
  53.    clear_interrupt(INT_TIMER0);
  54.    enable_interrupts(GLOBAL);
  55.    setup_adc(adc_off);
  56.    setup_adc_ports(no_analogs);
  57.    set_tris_a(0);
  58.    set_tris_b(0);
  59.    output_b(0xFF);      //Apago cartel
  60.    output_low(CLOCK);   //Aseguro inicialmente clock en bajo
  61.    output_low(STROBE);
  62.    Fila=0;              //Comienzo por la 1er fila
  63.    Inhibit=5;
  64.    VSync=1;             //Indico que comienzo con sync.
  65.    desplazos=0;
  66.    msj=0;
  67.    while(true){}
  68. }
  69.  
  70. void cargar(int datob){
  71.    int contador;
  72.  
  73.    output_low(clock);
  74.    delay_cycles(2);
  75.    output_low(strobe);
  76.    for(contador=0;contador<8;contador++){
  77.       output_bit(dato,(datob & 0x1));
  78.       datob>>=1;
  79.       output_high(clock);
  80.       delay_cycles(1);
  81.       output_low(clock);
  82.    }
  83.    output_high(strobe);
  84.    delay_cycles(1);
  85.    output_low(strobe);
  86. }
  87.  
  88. void ShowFila(void){
  89.    int i;
  90.  
  91.    output_b(0xFF);
  92.    for(i=0;i<5;i++){
  93.       cargar(matriz[i][Fila]);
  94.    }
  95.    bit_clear(portb,fila);
  96. }
  97.  
  98. void desplazar_izq(void){
  99.    int i,j,a;
  100.  
  101.    if(desplazos==8 || desplazos==0){
  102.       load_letra(mensaje[msj][letra]);
  103.       desplazos=0;
  104.    }
  105.    for(i=0;i<8;i++){
  106.       for(j=0;j<6;j++){
  107.          a=matriz[j][i];
  108.          carries[j]=shift_left(&a,1,0);
  109.          matriz[j][i]=a;
  110.       }
  111.       for(j=0;j<6;j++){
  112.          if(j!=5)
  113.             matriz[j][i]|=carries[j+1];
  114.          else
  115.             matriz[j][i]|=carries[0];
  116.       }
  117.    }
  118.    Inhibit=5;
  119.    desplazos++;
  120.    if(desplazos==8){
  121.       letra++;
  122.       if(letra>msj_length[msj])
  123.          letra=0;
  124.    }
  125. }
  126.  
  127. void load_letra(int caracter){
  128.    int i,j;
  129.  
  130.    if(isalnum(caracter)){
  131.       if(isalpha(caracter)){
  132.          if(isupper(caracter)){
  133.             switch(caracter){
  134.                case 'A': i=0; break;
  135.                case 'B': i=1; break;
  136.                case 'C': i=2; break;
  137.                case 'D': i=3; break;
  138.                case 'E': i=4; break;
  139.                case 'F': i=5; break;
  140.                case 'G': i=6; break;
  141.                case 'H': i=7; break;
  142.                case 'I': i=8; break;
  143.                case 'J': i=9; break;
  144.                case 'K': i=10; break;
  145.                case 'L': i=11; break;
  146.                case 'M': i=12; break;
  147.                case 'N': i=13; break;
  148.                case 'O': i=14; break;
  149.                case 'P': i=15; break;
  150.                case 'Q': i=16; break;
  151.                case 'R': i=17; break;
  152.                case 'S': i=18; break;
  153.                case 'T': i=19; break;
  154.                case 'U': i=20; break;
  155.                case 'V': i=21; break;
  156.                case 'W': i=22; break;
  157.                case 'X': i=23; break;
  158.                case 'Y': i=24; break;
  159.                case 'Z': i=25; break;
  160.             }
  161.             for(j=0;j<8;j++){
  162.                matriz[5][j]=letrasM[i][j];
  163.             }
  164.          }
  165.          else{
  166.             switch(caracter){
  167.                case 'a': i=0; break;
  168.                case 'b': i=1; break;
  169.                case 'c': i=2; break;
  170.                case 'd': i=3; break;
  171.                case 'e': i=4; break;
  172.                case 'f': i=5; break;
  173.                case 'g': i=6; break;
  174.                case 'h': i=7; break;
  175.                case 'i': i=8; break;
  176.                case 'j': i=9; break;
  177.                case 'k': i=10; break;
  178.                case 'l': i=11; break;
  179.                case 'm': i=12; break;
  180.                case 'n': i=13; break;
  181.                case 'o': i=14; break;
  182.                case 'p': i=15; break;
  183.                case 'q': i=16; break;
  184.                case 'r': i=17; break;
  185.                case 's': i=18; break;
  186.                case 't': i=19; break;
  187.                case 'u': i=20; break;
  188.                case 'v': i=21; break;
  189.                case 'w': i=22; break;
  190.                case 'x': i=23; break;
  191.                case 'y': i=24; break;
  192.                case 'z': i=25; break;
  193.             }
  194.             for(j=0;j<8;j++){
  195.                matriz[5][j]=letras_m[i][j];
  196.             }
  197.          }
  198.       }
  199.       else{
  200.          for(j=0;j<8;j++){
  201.             matriz[5][j]=numeros[caracter-'0'][j];
  202.          }
  203.       }
  204.    }
  205.    else{
  206.       switch(caracter){
  207.          case ' ': i=0; break;
  208.          case '!': i=1; break;
  209.          case '"': i=2; break;
  210.          case '#': i=3; break;
  211.          case '$': i=4; break;
  212.          case '%': i=5; break;
  213.          case '&': i=6; break;
  214.          case '´': i=7; break; //este es el acento
  215.          case '(': i=8; break;
  216.          case ')': i=9; break;
  217.          case '*': i=10; break;
  218.          case '+': i=11; break;
  219.          case ',': i=12; break;
  220.          case '-': i=13; break;
  221.          case '.': i=14; break;
  222.          case '/': i=15; break;
  223.          case ':': i=16; break;
  224.          case ';': i=17; break;
  225.          case '>': i=18; break;
  226.          case '=': i=19; break;
  227.          case '<': i=20; break;
  228.          case '?': i=21; break;
  229.          case '[': i=22; break;
  230.          case ']': i=23; break;
  231.          case '^': i=24; break;
  232.          case '_': i=25; break;
  233.          case '{': i=26; break;
  234.          case '|': i=27; break;
  235.          case '}': i=28; break;
  236.          case '@': i=29; break;
  237.          case 'ñ': i=30; break;  // esta es la enie
  238.          case '\f': i=31; break;
  239.       }
  240.       for(j=0;j<8;j++){
  241.          matriz[5][j]=chars[i][j];
  242.       }
  243.    }
  244. }

y el fonts.h:
Código: C
  1. const int letrasM[26][8]={{48,120,204,204,252,204,204,204},    //A
  2.                           {248,204,204,248,248,204,204,248},   //B
  3.                           {252,192,192,192,192,192,192,252},   //C
  4.                           {240,200,204,204,204,204,200,240},   //D
  5.                           {252,192,192,240,240,192,192,252},   //E
  6.                           {252,192,192,240,240,192,192,192},   //F
  7.                           {60,64,192,192,216,204,204,248},     //G
  8.                           {204,204,204,204,252,204,204,204},   //H
  9.                           {252,48,48,48,48,48,48,252},         //I
  10.                           {252,48,48,48,48,48,176,240},        //J
  11.                           {196,200,208,224,208,204,204,204},   //K
  12.                           {192,192,192,192,192,192,192,252},   //L
  13.                           {238,214,214,198,198,198,198,198},   //M
  14.                           {196,228,244,212,212,204,204,196},   //N
  15.                           {48,204,204,204,204,204,204,48},     //O
  16.                           {248,204,204,204,248,192,192,192},   //P
  17.                           {56,196,196,196,196,212,200,52},     //Q
  18.                           {248,204,204,204,248,208,200,196},   //R
  19.                           {120,204,192,192,120,12,12,248},     //S
  20.                           {252,48,48,48,48,48,48,48},          //T
  21.                           {204,204,204,204,204,204,204,120},   //U
  22.                           {204,204,204,204,204,204,72,48},     //V
  23.                           {198,198,198,198,198,214,214,238},   //W
  24.                           {132,132,72,48,48,72,132,132},       //X
  25.                           {204,204,204,120,48,48,48,48},       //Y
  26.                           {252,252,8,16,32,64,252,252}};       //Z
  27.  
  28. const int letras_m[26][8]={{0,0,112,136,8,120,136,116},        //a
  29.                            {0,128,128,128,240,136,136,240},    //b
  30.                            {0,0,0,120,128,128,128,120},        //c
  31.                            {0,8,8,8,120,136,136,120},          //d
  32.                            {0,0,0,120,136,240,128,120},        //e
  33.                            {0,96,144,128,128,224,128,128},     //f
  34.                            {0,0,112,136,136,112,8,112},        //g
  35.                            {0,128,128,128,240,136,136,136},    //h
  36.                            {0,0,32,0,32,32,32,32},             //i
  37.                            {0,0,16,0,16,16,144,96},            //j
  38.                            {0,128,144,160,192,160,144,144},    //k
  39.                            {0,32,32,32,32,32,32,32},           //l
  40.                            {0,0,0,136,212,164,164,164},        //m
  41.                            {0,0,0,176,200,136,136,136},        //n
  42.                            {0,0,0,112,136,136,136,112},        //o
  43.                            {0,0,240,136,136,240,128,128},      //p
  44.                            {0,0,120,136,136,120,8,28},         //q
  45.                            {0,0,0,176,192,128,128,128},        //r
  46.                            {0,0,112,136,128,112,8,240},        //s
  47.                            {0,32,32,112,32,32,32,24},          //t
  48.                            {0,0,0,136,136,136,152,104},        //u
  49.                            {0,0,0,136,136,136,80,32},          //v
  50.                            {0,0,0,136,136,136,168,80},         //w
  51.                            {0,0,0,136,80,32,80,136},           //x
  52.                            {0,0,0,136,136,112,16,96},          //y
  53.                            {0,0,0,248,16,32,64,248}};          //z
  54.                            
  55. const int numeros[10][8]={{0,120,132,140,148,164,196,120},     //0
  56.                           {0,16,48,80,16,16,16,124},           //1
  57.                           {0,112,136,8,16,32,64,248},          //2
  58.                           {0,112,136,8,48,8,136,112},          //3
  59.                           {0,8,24,40,72,252,8,8},              //4
  60.                           {0,124,128,128,120,4,4,248},         //5
  61.                           {0,120,128,128,248,132,132,120},     //6
  62.                           {0,252,132,8,16,32,64,64},           //7
  63.                           {0,120,132,132,120,132,132,120},     //8
  64.                           {0,120,132,132,124,4,4,120}};        //9
  65.  
  66. const int chars[31][8]={{0,0,0,0,0,0,0,0},                 //space
  67.                         {0,32,32,32,32,32,0,32},           //!
  68.                         {0,40,40,40,0,0,0,0},              //"
  69.                         {0,36,36,254,40,252,80,80},        //#
  70.                         {0,120,148,144,120,20,148,120},    //$
  71.                         {0,196,204,24,48,96,204,140},      //%
  72.                         {0,96,144,144,96,148,136,116},     //&
  73.                         {0,16,16,16,0,0,0,0},              //'
  74.                         {0,24,32,64,64,64,32,24},          //(
  75.                         {0,96,16,8,8,8,16,96},             //)
  76.                         {0,0,146,84,56,56,84,146},         //*
  77.                         {0,16,16,16,254,16,16,16},         //+
  78.                         {0,0,0,0,0,96,32,64},              //,
  79.                         {0,0,0,0,252,0,0,0},               //-
  80.                         {0,0,0,0,0,0,96,96},               //.
  81.                         {0,4,12,24,48,96,192,128},         //  /
  82.                         {0,0,96,96,0,0,96,96},             //:
  83.                         {0,0,96,96,0,96,32,64},            //;
  84.                         {0,0,192,48,12,48,192,0},          //>
  85.                         {0,0,0,252,0,252,0,0},             //=
  86.                         {0,0,12,48,192,48,12,0},           //<
  87.                         {0,120,132,4,24,16,0,16},          //?
  88.                         {0,56,32,32,32,32,32,56},          //[
  89.                         {0,56,8,8,8,8,8,56},               //]
  90.                         {16,40,68,0,0,0,0,0},              //^
  91.                         {0,0,0,0,0,0,0,254},               //_
  92.                         {0,24,32,32,64,32,32,24},          //{
  93.                         {0,32,32,32,32,32,32,32},          //|
  94.                         {0,96,16,16,8,16,16,96},           //}
  95.                         {56,68,146,170,170,148,64,60},     //@
  96.                         {0,112,0,176,200,136,136,136}};    //ñ

un saludo, espero sirva por ahora
.

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 320
Re: De matriz de leds, a letrero electronico
« Respuesta #88 en: 04 de Febrero de 2009, 17:04:19 »
Cryn, has solucionado uno de los proyectos que tenía para el año. Muchas gracias por el aporte !!! :-/ :-/ :-/

Lo voy a montar en el proteus para ver el funcionamiento , cualquier duda te pregunto.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: De matriz de leds, a letrero electronico
« Respuesta #89 en: 04 de Febrero de 2009, 17:14:08 »
Bien, que bueno que pueda servirte, por ahora es solo un avance, un inicio, no esta terminado, porque el oficial es con el 18f2455 :mrgreen:, pero de ahí se puede avanzar tranquilamente

cuando termine el otro proyecto continuo, pero decirles que ya hice algunas pruebas con el hard y va todo bien logré solucionar todas las pistas :-/ :-/ ahora el hard va al 100% :-/ :-/

un saludo, espero postear pronto con los primeros pasos con el hard
.


 

anything