Estoy tratando de usar un Teensy 3.2 para controlar una pantalla de marcador digital. Estoy usando 6 pantallas comunes de ánodo 7 seg controladas por dos registros de desplazamiento 74HC595 conectados en cadena para controlar una matriz de transistores. (Esquema adjunto).
Seguí este tutorial para conectar los registros de cambios a la placa mediante 3 pines de salida. He probado y montado el circuito en protoboard pero no puedo hacer que las pantallas se enciendan. (El Teensy está encendiendo y ejecutando el código correctamente).
He probado todas las conexiones entre nodos con un multímetro y no hay cortocircuitos ni conexiones faltantes, pero no importa qué datos envíe los pines de salida todos LOW BAJOS cuando se prueban con un multímetro. Sé que el circuito debería funcionar ya que probé una versión condensada con un registro de turno y una pantalla de 7 seg en una placa de pruebas y todo funcionó bien.
Mi objetivo es multiplexar las pantallas de modo que solo una esté encendida a la vez (seleccionada por el primer registro de desplazamiento (el que está más a la izquierda) y el número que se muestra con el chip más a la derecha, por lo que cada LED debería poder recibir la corriente requerida de la Fuente de corriente continua.
El esquema y el código de prueba (solo enciende una pantalla) se adjuntan a continuación, así como los datos de los componentes:
Transistores: 2N5210; Pantallas: SA40-19EWA (ánodo común de 8V 20mA);
Cualquier ayuda con respecto a lo que podría estar pasando realmente sería apreciada ya que soy relativamente nuevo en los circuitos digitales
EDITAR:
El diagrama esquemático muestra conjuntos de 8 LED en serie paralela como un LED para mayor claridad.
int dataPin = 3;
int clockPin = 5;
int latchPin = 4;
void setup() {
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B11111111);
shiftOut(dataPin, clockPin, MSBFIRST, B00010000);
digitalWrite(latchPin, HIGH);
delay(1000);
}