Arduino – Conectando un display de 7 segmentos

Hace unos días me compré en Steren un display de 7 segmentos, el vendedor no tenia idea de si era ánodo común o cátodo común y menos el color del led y ya ni hablar de como conectarlo
Asi que hay que dar un poco de luz a los que como yo compran en Steren un display y no saben como conectarlo.
Lo primero, unos diagramas para saber como es el display, dimensiones y demás cosas que son útiles a la hora de hacer circuitos impresos, aquí viene algo muy importante: cada segmento se le asigna una letra y sigue un orden según las manecillas del reloj.

A pesar de que el display en Steren lo manejan como DA03 (aunque hay DA04 y nunca me supieron decir la diferencia, capaz es el color, capaz me compro uno para averiguar) en internet el modelo lo llaman LD3011A o LD3011B dependiendo si es catado común o ánodo común. (el A es cátodo común y el B es para el ánodo común).
El orden de los pins es importantísimo, el 1 (el que esta junto al punto decimal en el display) es el ánodo común (en el LD3011B) y el pin 6 también, estos los mandamos a corriente a través de una resistencia de 110 ohm (para 5V)
Ya dependiendo si usamos un shift register o un arduino o transistores o lo que queramos va a ser el orden de los pins, siempre respetando las letras (segmentos) y el sentido de manecillas de reloj.

Listo de cosas técnicas [sic], vamos a conectarlo al Arduino, tomando los puertos digitales del 2 al 9 (siempre que se pueda hay que reservar el 0 y el 1 para tx y rx)

Y ponemos un poco de código en el IDE, para probar que todas las conexiones están bien, vamos a prender todos los segmentos al mismo tiempo, así que tenemos un código como este
// Prueba de display 7 segmentos DA03 de Steren
// Ivan Capdeville - ivan@darkapple.org
int F = 2;
int G = 3;
int E = 4;
int D = 5;
int Dp = 6;
int C = 7;
int B = 8;
int A = 9;
void setup()
{
pinMode (F, OUTPUT);
pinMode (G, OUTPUT);
pinMode (E, OUTPUT);
pinMode (D, OUTPUT);
pinMode (Dp, OUTPUT);
pinMode (C, OUTPUT);
pinMode (B, OUTPUT);
pinMode (A, OUTPUT);
}
void loop()
{
digitalWrite(F, LOW);
digitalWrite(G, LOW);
digitalWrite(E, LOW);
digitalWrite(D, LOW);
digitalWrite(Dp, LOW);
digitalWrite(C, LOW);
digitalWrite(B, LOW);
digitalWrite(A, LOW);
}
si todo sale bien, tenemos un 8 y un punto decimal, ya después podemos hacer cosas mas interesantes con los dígitos o incluso letras (siempre que podamos representarlas con 7 segmentos)
Actualizacion
Se me olvido mencionar un detalle importante:
Al ser ánodo común el display tenemos la ventaja de usar menos resistencias (solo 2 para los pin 1 y 6) y a nivel Arduino, vamos a activar el segmento al poner nuestra salida digital como LOW en vez de HIGH, o sea, activamos con LOW y apagamos con HIGH ya que las salidas digitales deben cerrar el circuito proporcionando tierra (ground).
Pase al mismo Steren y ahora si ya entendí la diferencia entre sus display de 7 segmentos
Tienen la descripcion en el codigo:
DA = Display Anodo comun
03 = tamaño del segmento
Asi que hay tamaños 03,04 y 05 (con variaciones en la distribución de los pin)
y hay DA y DC (DC es por catodo comun)
Me compre un DA05 y en ese los pin para el ánodo común son el 3 y el 8
Al final me parece mas como el usar el display con ánodo común (por aquello de simplificar las conexiones con menos resistencias).
Hola Ivan, lamentamos no haberte dado más información sobre estos displays….¿en qué tienda fue? nos interesa saber para poder dar la capacitación requerida. Saludos y gracias !!
Hola Iván Capdeville, te agradezco infinitamente la explicación sobre la utilización del display de 7 elementos de Steren y te invito atentamente a pasarme todos los detalles de la atención que recibiste en la tienda, me interesa mucho que la capacitación mejore. El reporte lo puedes hacer sin costo al 01 800 500 9000 o enviar un e-mail a webmaster@steren.com.mx Solamente no olvides mencionar que escribes desde este blog, saludos!!!
Hola quería preguntar si hay otra manera más fácil de utilizar los pines para que se escriban de forma conjunta como escribir un byte en el PORTB de PIC esto se me hace necesario para utilizar dos display con la técnica de multiplexacion.
SEÑORES UN VERDADERO ELECTRONICO NO NECESITA QUE LE DIGAN SI UN DISPLAY DE 7 SEGMENTOS ES DE CATODO O ANODO COMUN, SI NO EXISTIRA EL INTERNET O MANUALES DE FABRICANTE SE LE COMPLICARIA ESTE DATO Y CONECTARIA MAL EL DISPLAY POR ENDE SE QUEMARIA..EN ELECTRONICA BASICA CON UN MULTIMETRO SE PUEDE SABER SI ES DE CATODO U ANODO COMUN…NORMALMENTE LOS PINES CENTRALES DEL DISPLAY (TANTO ARRIBA COMO ABAJO) SE CONSIDERAN LOS COMUNES, AHI COLOCAMOS UNO DE CABLES DEL MULTIMETRO PUEDE SER LA PUNTA POSITIVA (ROJO), Y AL COLOCAR LA PUNTA EN CUALESQUIERA DE LOS DEMAS PINES EL SEGMENTO SE ENCENDERA Y ESTO NOS INDICA QUE ES DE CATODO COMUN Y PARA SABER SI ES ANODO SE COLOCA LAS PUNTAS DEL MULTIMETRO A LA INVERSA Y TIENE QUE ENCENDER CUALESQUIERA DE LOS SEGMENTOS QUE TOQUEMOS CON LA PUNTA LIBRE..CABE ACLARAR QUE LOS PINES DE ABAJO ENCIENDEN LOS SEGMENTOS INFERIORES CON UN PIN CENTRAL QUE SE CONSIDERA COMO CATODO U ANODO COMUN, ASI MISMO CON LOS PINES DE LOS SEGMENTOS SUPERIORES…SEÑORES PIENSEN MAS U REPASEN ELECTRONICA BASICA..PARA QUE NO TENGAN QUE PREGUNTAR POR QUE LUEGO LA INFORMACION ES ERRONEA Y NOS CONFIAMOS Y AL MOMENTO DE CONECTAR SE QUEMA NUESTRO DISPLAY…BUSOS
EDGAR, PARA QUE UN PIC TE CONTROLE DISPLAY DE 7 SEGMENTOS CON LA TECNICA DE MULTIPLEXACION, ES ALGO BUENO POR QUE ES UNA TECNICA MUY BIEN EMPLEDA Y ADEMAS TE AYUDA A UTILIZAR MENOS PINES DEL PUERTO DEL PIC..PARA ESTA TECNICA SE REQUIERE QUE TOMES CUATRO PINES DEL PIC, PARA SALIDA DE DATOS A LOS DISPLAYS, REQUIRES OTROS 3 0 2 PINES DEPENDIENDO DE CUANTOS DISPLAYS COLOQUE PARA SU MULTIPLEXACIÒN, SUPONGAMOS QUE MANEJAS TRES DISPLAYS, ESTO QUIERE DECIR QUE NECESITARAS 7 PINES DEL PIC PARA COLOCAR CUATRO DE ELLOS COMO DATOS Y TRES PARA MULTIPLEXACIÒN…PERO COMO MENCIONAS UN BYTE, EL BYTE LO FORMAN UN CODIGO BINARIO DE OCHO BITS, PERO LAMENTABLEMENTE EL DISPLAY REQUIERE UN CODIGO BCD, ESTO QUERE DECIR QUE ANTES DE QUE ENVIES UN DATO AL PUERTO PARA LOS DISPLAYS, REQUIERES TRANFORMAR EL BYTE EN CODIGO BCD CON LA TECNICA DE SUMAR, RESTAR Y DIVIDIR O MEJOR CONOCIDO COMO ENMASCARAMIENTO,,,TE RECOMIENDO QUE REPACES EN ELECTRONICA DIGITAL, CON QUE OPERACIONES ARITMETICAS PUEDES CONVERTIR DE CODIGO BINARIO A BCD Y SU SIMILAR A HEXADECIMAL PARA QUE TE SEA MAS FACIL PROGRAMAR AL PIC, POR QUE TAMBIEN PUEDE CARGAR DATOS EN HEXADECIMAL, ASI MISMOS DEBES DE SINCRONIZAR LAS SALIDAS DE MULTIPLEXADO DE LOS DISPLAY COLOCANDO TRANSISTORES EN SUS ANODOS O CATODOS COMUNES DE CADA DISPLAY PARA QUE AL MOMENTO DE QUE PRESENTES EN EL PUERTO EL DATO ELIGA AL DISPLAY CORRESPONDIENTE…SI USARAS EL CODIGO BINARIO PARA MANDAR DATOS A LOS DISPLAY POR EL PUERTO DEL PIC, SE PUEDE COLOCANDO UN DECODIFICADO DE BINARIO A 7 SEGMENTO, PERO SI MAL NO RECUERDO SOLO HAY DECODIFICADORES DE BCD A 7 SEGMENTOS. Y ESO INCREMENTARIA TU HARDWARE…POR ESO ES QUE LA TECNICA DE MULTIPLEXEO PARA DISPLAY ES ALGO LABORIOSO PERO RESULTA EFICAZ Y REDUCE EL HARDWARE GRACIAS AL SOFTWARE DE TU PIC.
Davis, bastante bueno lo tuyo, gracias por el aporte