Driver LCD 7 segmentos

Hola a todos,

He leído mucho y ya me estoy enterando de algunas cosas. Estoy empezando a hacer algún pinito, como se dice coloquialmente. He probado el MAX7219 para manejar displays led de 7 segmentos con la librería adecuada y al final todo perfecto, aunque la principio se veían muy tenues y sólo conseguía que funcionara un dígito, pero esto dejó de ocurrir por si solo y funciona bien. Imagino que sería algún problema de falseo de conexiones. Pondré fotos, que ahora no puedo.

El caso es que tengo bastantes displays de 7 segmentos de ánodo común y concretamente unos mas grandes que son los que quiero usar para mi futuro proyecto de cronometraje. Pero el MAX7219 con la librería LedControl solo maneja displays de cátodo común. La pregunta es si hay alúna forma de poder utilizar el MAX7219 con displays de ánodo común, o si hay algún equivalente de ánodo común, para poder usar la misma librería. He localizado este driver 4-digit LED-driver with I2C-Bus interface y un ejemplo con arduino, que aunque no encuentro el esquema, entre el datasheet y el código de ejemplo creo que me podría apañar, salvo que en el datasheet pone un transistor para manejar los cuatro displays y no sabría que transistor elegir.

¿En fin los expertos que opinais? ¿Que opciones valoraríais?

Un saludo, Johnny

La foto de mi primer ejercicio.

Saludos, Johnny

Vamos, que aparte del MAX7219 nadie ha trabajado o visto otras opciones. Intentaré localizar el SAA1064 y probaré con el. Ya os contaré.

Saludos, Johnny

Ya tengo el SAA1064 y estoy con ello. Os contaré los resultados.

¡Funciona!!
Yo sigo con mi aprendizaje.

Con estos displays de 2,3 pulgadas quiero hacer un panel de dos filas de cuatro dígitos cada una.

El diseño lo he sacado de este circuito de SB-Projects: http://www.sbprojects.com/projects/saa1064/saa1064.htm
Este es el esquema:

Utilizaré dos circuitos iguales, cambiando la señal de ADR del segundo a 5v (Pin 1), para poder llegar a los 8 dígitos.
Al principio me volvía loco porque no funcionaba, pero me di cuenta de que lo estaba alimentando con 5 voltios y esos displays necesitan por lo menos 9. Como el SAA1064 acepta hasta 15V lo alimento con una batería de 11,1v

El código que he usado para probar:

#include <Wire.h> 
#define FILA1 0x38

int numeros[10] = {B10111101,B00001001,B01110101,B01101101,B11001001,
             B11101100,B11111100,B00001101,B11111101,B11001101};
unsigned long dato;
 
void setup() 
{ 
  Serial.begin(9600);
  Wire.begin();
  delay(10);
  Wire.beginTransmission(FILA1);
  Wire.send(0);
  Wire.send(B00010111);
  Wire.endTransmission();
} 
 
void loop() 
{ 
  int decimas, unidades, decenas, centenas;
  dato = millis();
  decimas  = (dato/100)%10;
  unidades = (dato/1000)%10;
  decenas  = (dato/10000)%10;
  centenas = (dato/100000)%10;
  Wire.beginTransmission(0x38);
  Wire.send(1);
  Wire.send(numeros[decimas]);
  Wire.send(numeros[unidades]);
  Wire.send(numeros[decenas]);
  Wire.send(numeros[centenas]);
  Wire.endTransmission();
  delay(50);
}

¡Hola!

Muy interesante, estaba pensando hacer algo parecido (pero a pequeña escala)

Voy a echar un ojo

Nesecito controlar 10, Conoces algun integrado, para utilizar la menor cantidad posible de salidas del Arduino ?

Claro, el mismo integrado SAA1064 se puede direccionar con 4 direcciones diferentes. Mira su datasheet. Como cada integrado puede manejar 4 digitos, en total se podrían manejar 16 displays. Luego solo seria cuestion de separar en el programa unidades, decenas, etc 4 por direccion y dirigirlas a su integrado. Esta claro que no cargarias la salida del Arduino ya que los cuatro compartirian el bus I2C.