Autor Tema: Display TM1637  (Leído 10669 veces)

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

Desconectado locodelafonola

  • PIC10
  • *
  • Mensajes: 43
Re:Display TM1637
« Respuesta #15 en: 01 de Noviembre de 2018, 14:33:30 »
Hola ., yo baje y probe la libreria que compartio el compañero AleSergi
Si bien funciono no la pude aplicar ., lo que nesescitaba para remplazar esto

* tri-phase led ADJ 7_2.jpg
(25.39 kB, 410x399 - visto 1038 veces)
pero no pude por no encontrar y adaptar la librera adecuada
Hoy viendo un tutorial de imprecion 3D ., encontre este video
Si bien segui los link que publica en el video ., no encontre la libreria adecuada., donde estan los LED extras y los botones(TM16XX)
En el video se nota claramente que es el TM1637., en el ccomiemzo de este hilo se muestra la funcion de botones ., pero de manera exterior y no dentro del I2C
agradeceria cualquier sugerencia o indicacion del caso
« Última modificación: 01 de Noviembre de 2018, 14:37:34 por locodelafonola »
yo solo se que ...nose nada

Desconectado alvaro.fredy

  • PIC10
  • *
  • Mensajes: 4
Re:Display TM1637
« Respuesta #16 en: 24 de Diciembre de 2018, 20:50:46 »
Hola, he estado investigando sobre el asunto de este modulo TM1637 y he logrado hacer que funcione con un pic 16f628a....yo dejé CLK = RB0 y DIO = RB1, pero es posible personalizar y dejarlo en cualquier pin modificando "tm.h" en esta parte.....

    #BIT clk = 0x06.0                       // Pin mapped to PORTB.0
    #BIT dio = 0x06.1                       // Pin mapped to PORTB.1


les dejo el código y una simulación en proteus :D
« Última modificación: 25 de Diciembre de 2018, 13:05:55 por alvaro.fredy »

Desconectado alvaro.fredy

  • PIC10
  • *
  • Mensajes: 4
Re:Display TM1637
« Respuesta #17 en: 25 de Diciembre de 2018, 13:14:40 »
hola hola, alguien sabe como visualizar letras? en esta parte  de "tm.h" se especifican los números, pero no está en ASCII

                                          /*0*/ /*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/
    unsigned char digits[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

...No entiendo como agregar un 0x?? para visualizar algunas letras D:

Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 965
Re:Display TM1637
« Respuesta #18 en: 25 de Diciembre de 2018, 18:18:39 »
hola hola, alguien sabe como visualizar letras? en esta parte  de "tm.h" se especifican los números, pero no está en ASCII

                                          /*0*/ /*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/
    unsigned char digits[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};

Es un display de 7 segmentos, algunas letras se pueden visualizar, pero de bonitas nada.

Fijate que en    unsigned char digits[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};   los bits activos son los segmentos que encienden.    Una A mayúscula sería 0x7D  por ejemplo.

Citar
...No entiendo como agregar un 0x?? para visualizar algunas letras D:

No te entiendo, agregar donde?

Desconectado alvaro.fredy

  • PIC10
  • *
  • Mensajes: 4
Re:Display TM1637
« Respuesta #19 en: 25 de Diciembre de 2018, 18:43:37 »
Citar
...No entiendo como agregar un 0x?? para visualizar algunas letras D:

No te entiendo, agregar donde?

me refería a  que solo se ingresará "a" por ejemplo, en vez de escribir 0x7D.....pero ya entiendo como poder hacerlo, gracias por la respuesta

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Display TM1637
« Respuesta #20 en: 25 de Diciembre de 2018, 20:40:09 »
lo que pasa que una 'a' es equivalente al hexadecimal 0x61 y si lo representas en binario, no hay ninguna relacion con los digitos a encender. Por eso es que se pone el numero o en binario o en hexadecimal como te lo mostraron.

el 0x es para decir que es un numero hexadecimal, si no lo tuviera seria un decimal...

Decimal : 17
Hexadecimal: 0x11
Binario: b00010001
Octal: 021

Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 965
Re:Display TM1637
« Respuesta #21 en: 26 de Diciembre de 2018, 13:34:50 »
...
me refería a  que solo se ingresará "a" por ejemplo, en vez de escribir 0x7D.....pero ya entiendo como poder hacerlo, gracias por la respuesta

Una forma puede ser mediante un macro.  La única ventaja es la legibilidad del programa porque en cuanto a caracteres tipeados  es mas o menos la misma.

Ejemplo: Salida hexadecimal (0...F)

Defino el array correspondientes a los segmentos:
Código: [Seleccionar]
const int8 digits[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67,0x77,0x7C,0x39,0x5E,0x79,0x71 };

Defino el macro:   
Código: [Seleccionar]
#define xpr(x)  output_b(digits[x>'9' ? (x-'A'+10)&0xF : x&0xF ])Ojo, se supone que se escriben caracteres válidos.   Si no, remember: Garbage_in ==> Garbage_out

Después se escribe en el programa el carácter en ascii, aunque los números del 0 al 9 no lo necesitan.
Código: [Seleccionar]
        xpr('0') ;
        xpr('1') ;
        xpr('2') ;
        xpr( 1 ) ;
        xpr( 2 ) ;
        xpr('A') ;
        xpr('b') ;
        xpr('c') ;
        xpr('f') ;

Mientras se ingresen constantes el compilador genera directamente lo mismo que haciendo output_b(0xHH)

Cuando se trata de una variable ya no tiene sentido el macro porque se chequea el rango inútilmente.


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Display TM1637
« Respuesta #22 en: 26 de Diciembre de 2018, 13:52:19 »
Eso es lo que se suele hacer, obviamente vas a necesitar de una tabla para todos las letras del abecedario. Si es lo que planeta la persona esta. Siendo que hay muchos que no pueden ser representados en un display de 7 segmentos de todas formas vas a tener que ocupar los 27 caracteres del mismo.
Y si... luego la funcion determinara que si son mayuscul, los pasa a minusculas antes de enviarlo, etc. Y poder hacer un :

printf(my_func,"12b");


Desconectado javiscrip

  • PIC10
  • *
  • Mensajes: 8
Re:Display TM1637
« Respuesta #23 en: 11 de Enero de 2020, 21:02:06 »
t=23s

Desconectado Rafaa

  • PIC10
  • *
  • Mensajes: 1
Re:Display TM1637
« Respuesta #24 en: 14 de Febrero de 2023, 00:08:14 »
Linda información, gracias.