libreria SevengSeg

Utilizando la libreria SevenSeg pude configurar un display de 7 seg con 4 digitos, el tema es que ahora necesito agregar otro display de 4 digitos, es posible esto??

Configure el primero de esta forma:

SevenSeg disp(2,3,4,5,6,7,8);

const int numOfDigits = 4;

int digitPins [numOfDigits] = {10,9,12,11};

void setup() {

disp.setDigitPins(numOfDigits , digitPins);

Como puedo agregar otro display con esta libreria?? saludos.

const int numOfDigits = 4; ahi dice que usarás 4 displays de 7 segmentos.

Los displays estan multiplexados, entiendes que es eso?
Todos comparten los segmentos 2 al 8
y hay 4 transistores o salidas del arduino que prenden el elemento común del display usando 10 9 12 o 11 tal como lo definiste en digitPins.

surbyte tengo 2 display de 7 seg con 4 digitos cada uno y si están multiplexados. Con las líneas de codigo que escribi me anda perfecto "un" display con sus 4 digitos.

Lo que quiero es saber si es posible agregar otro display de 7 seg con 4 digitos, son estos:

El pedazito de codigo que subi me anda muy bien, solo quiero saber mediante programacion como hago para configurar un segundo display de 4 digitos.

Ahhh te malentendí.
No podrás.
Deberias usas MAX7219 para que cada MAX7219 comando hasta 8 digitos si quieres.
Con un UNO no te da.
Un mega/DUE si.
Te faltarán pines con el UNO.

Voy a intentar ser mas claro, no tengo problemas ni con el arduino (tengo un MEGA) no tengo problemas en I/O ni nada por el estilo. Lo unico que quiero saber es como manejar con esa libreria mas de un display por ej para definir el primer display utilizo:

SevenSeg disp(2,3,4,5,6,7,8);

const int numOfDigits = 4;

int digitPins [numOfDigits] = {10,9,12,11};

eso es para el primero, la pregunta es como hago con la libreria SevengSeg para agregar otro display, por ejemplo puedo escribir :

SevenSeg disp2(.........)??????

se entiende lo que digo?? gracias surbyte.

Y porque no lo pruebas? Crea otra instancia de la variable con otro nombre ,como dices, y usando otros pines.lo peor que te puede pasar es que no funcione....

makly77:
Voy a intentar ser mas claro, no tengo problemas ni con el arduino (tengo un MEGA) no tengo problemas en I/O ni nada por el estilo. Lo unico que quiero saber es como manejar con esa libreria mas de un display por ej para definir el primer display utilizo:

SevenSeg disp(2,3,4,5,6,7,8);

const int numOfDigits = 4;

int digitPins [numOfDigits] = {10,9,12,11};

eso es para el primero, la pregunta es como hago con la libreria SevengSeg para agregar otro display, por ejemplo puedo escribir :

SevenSeg disp2(.........)??????

se entiende lo que digo?? gracias surbyte.

Y digo porque no agregaste en tu post#1 que estas usando un MEGA?
Estuve mirando la documentación y no creo que sea posible sin trabajar algo con los timers.
Considera que todo esta previsto para multiplexar hasta 9 digitos según veo en la versión 1.2 y eso lleva tiempo y recursos. Agregar un segundo objeto requiere de una ISR que se encargue del refrezco.
Te estaba por escribir que probaras como jose pero ahora tengo dudas y me inclino a pensar que no va a funcionar. Sigo pensando que el MAX7219 es mejor alternativa y mas simple. Mejor brilo. Mas control de lo que quieres hacer y lo mejor, menos uso de pines y por ende mas prolijo todo el trabajo final.

no tiene sentido que diga que uso un arduino MEGA porque no tengo problema en cantidad de I/O, y ademas no es esa la intencion de mi post, yo pregunte otra cosa.

Bueno de todas maneras pude agregar otro display de 4 digitos con la libreria SevengSeg agregue lineas para el segundo display de la misma forma que para el primer display quedando algo asi:

SevenSeg disp2(22,23,24,25,26,27,28)

disp2.setDigitPins(numOfDigits, digitPins2)

de todas maneras voy a seguir trabajando, ahora debo agregar 2 display mas de 7 seg (1 digito), gracias igual por la ayuda surbyte.

Gracias Jose por la sugerencia eso mismo hice y por ahora va funcionando voy a agregar los otros 2 display de 1 digito que me faltan. Saludos.

creo que deberias probar:

SevSeg Display1, Display2, Display3, Display4;


void setup() {
  byte numDigits = 4;   
  byte digitPins1[] = {x, x, x, x};
  byte digitPins2[] = {x, x, x, x};
  byte digitPins3[] = {x};
  byte digitPins4[] = {x}; //siendo todas las X diferentes entre si

  byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12, 13}; /siendo estos los 8 segmentos, en común para todos

  Display1.begin(COMMON_ANODE, 4, digitPins1, segmentPins);
  Display2.begin(COMMON_ANODE, 4, digitPins2, segmentPins);  
  Display3.begin(COMMON_ANODE, 1, digitPins3, segmentPins);
  Display4.begin(COMMON_ANODE, 1, digitPins4, segmentPins); //Suponiendo que sean de anodo comin