Como construir display gigantes


En efecto podemos construir nosotros mismos nuestros propios Display de  leds  de la medidas que necesitemos  simplemente con una placa Arduino  ( y todos  su derivados) o una  Raspberry Pi ( y todos su clónicos y derivados ) y !por supuesto  un poco de bricolaje!

Un dígito led  en realidad esta formado por  7 segmentos  o mas   y es un componente que se utiliza para la representación de caracteres o números en muchos dispositivos, debido en gran medida a su simplicidad y bajo coste

Aunque externamente difiere considerablemente de un led típico, internamente están constituidos por una serie de leds con unas determinadas conexiones internas, estratégicamente ubicados de tal forma que forme un número ‘8’.

Cada uno de los segmentos que forman la pantalla están marcados con siete primeras letras del alfabeto (‘a’-‘g’), y se montan de forma que permiten activar cada segmento por separado, consiguiendo formar cualquier dígito numérico

Por ejemplo para representar el numero 15 lo conseguiremos , activando los segmentos B y C del primer dígito  y  los segmentos AF,G C y D  para el segundo dígito

 

15

 

En la imagen podemos ver el desmontaje de la estructura interna de un display led de 4 cifras comercial, apreciándose unos puntos minúsculos que en realidad son leds SMD (lo demás es un plástico difusor que se coloca encima).

Los displays de 7 segmentos pueden ser de dos tipos principales: ánodo común y cátodo común. En un display de ánodo común, todos los ánodos de los segmentos están conectados juntos y cada segmento se activa encendiendo el cátodo correspondiente. En un display de cátodo común, todos los cátodos están conectados juntos (es decir el positivo) y cada segmento se activa encendiendo el ánodo correspondiente (o negativo). La elección entre estos tipos depende del diseño del circuito y las preferencias del diseñador, pero es obvio que sólo no son compatibles unos modelos con otros especialmente en el aspecto de que sean de cátodo o ánodo común.

En la siguiente imagen mostramos un display muy conocido ( el 5643BS) de ánodo común y que usaremos en la reparación de una olla de cocción lenta. Claramente lo importante es destacar la correspondencia de los pines : los 7 segmentos A,B,C,D,E, F (que se conectan a negativo) y las 4 cifras: D1,D2,D3 y D4 ( que se conectan al positivo común de cada cifra ).

5643BS

Existen dos diferentes métodos para controlar los displays de 7 segmentos:

    • Multiplexación: Esta técnica implica alternar rápidamente los dígitos mostrados, creando la ilusión de visualización simultánea de múltiples dígitos. Esta técnica es la mas comúnmente utilizada en casi todos los electrodomésticos serie blanca. Es especialmente habitual cuando usamos microcontroladores pues se necesitan mucha menos electrónica para su control (normalmente 7 segmentos mas 1 línea más por cada cifra) .
    • Decodificadores BCD: Los decodificadores BCD convierten datos binarios en señales de control específicas para activar los segmentos individuales, representando así el número deseado.

 

Montaje

Ahora que entendemos como funciona un display de 7 segmentos, la idea  es realmente sencilla  pues básicamente  consiste en auto-construirnos  dicho dígito  pensando en los  7 segmentos    de los que lo compone   usando para ellos  7 leds  acoplados a un caja  con    difusores para todos los leds  ¿sencillo verdad ?

Para el montaje  necesitaremos los siguientes elementos:

  • Trozos de cartón
  • Trozos de cartulina
  • 7 LEDs difusa
  • 7 resistencias de 50 ohm
  • Cinta carrocera (usada por los pintores )
  • Pegamento
  • Soporte con Esquema del display
  • Cables
  • Arduino uno
  • Un trozo de papel contacto

Una vez que tengamos el dígito compuesto por 7 los leds lo conectaremos a 7 salidas binarias de Arduino  siguiendo el siguiente esquema de conexiones;

  • PD2  segmento a;
  • PD3 segmento b
  • PD4 segmento c
  • PD5 segmento d
  • PD6 segmento e
  • PD7 segmento f
  • PD8 segmento g

Y para facilitar la gestión del display  también dos pulsadores ( para avanzar o retroceder en el conteo):

  •  PP1
  • PB2

Y finalmente   en la siguiente imagen podemos ver el esquema donde se aprecian claramente las resistencias de 50ohm para los leds   y las de 10 K para los pulsadores.

 

arduino

 

Según la configuración ya decidida  para gestionar el display solo necesitamos mapear  cada combinación  de segmentos asociado a cada numero que queramos representar  ,  y por medio delos pulsadores incrementamos o decrementamos una unidas representando el siguiente o el anterior digito respectivamente

Como en muchos otros casos ,es de señalar que debemos controlar los rebotes en las pulsaciones para lo cual leeremos varias veces el valor de la entrada hasta asegurarnos que el valor esta estables.

Y finalmente en este vídeo  podemos ver el proceso constructivo al mas estilo casero y el sencillo  montaje en funcionamiento:

Veamos el código para nuestro proyecto

El código Arduino es bien sencillo:

//definiciones de segmentos con las primeras pines digitales puerto A

const int a = 2;
const int b = 3;
const int c = 4;
const int d = 5;
const int e = 6;
const int f = 7;
const int g = 8;

//Definición de pines de entrada para los pulsadores
const int botonIncremento = 9;
const int botonDecremento = 10;

//valor para controlar los antirrebotes

const int tiempoAntirebote = 10;

//Al encender parece este numero

int cuenta = 0;  
int estadoBotonIncremento;
int estadoBotonAnteriorIncremento;
int estadoBotonDecremento;
int estadoBotonAnteriorDecremento;

boolean antirebote(int pin) {
int contador = 0;
boolean estado;
boolean estadoAnterior;

do {
estado = digitalRead(pin);
if(estado != estadoAnterior) {
contador = 0;
estadoAnterior = estado;

}
else {
contador = contador + 1;
}
delay(1);
} while(contador < tiempoAntirebote);

return estado;

}

void actualizarNumero() {
switch(cuenta) {
case 0:     // digito 1
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
break;

case 1:// valor 2

digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, LOW);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 3: //digito 3
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
break;
case 4://digito 4
digitalWrite(a, LOW);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 5: //digito 5
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 6: //digito 6
digitalWrite(a, HIGH);
digitalWrite(b, LOW);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 7: //digito 7
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, LOW);
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, LOW);
break;
case 8: //digito 8
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
case 9: //digito 9
digitalWrite(a, HIGH);
digitalWrite(b, HIGH);
digitalWrite(c, HIGH);
digitalWrite(d, HIGH);
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, HIGH);
break;
}

}

//programamos lo 7 primeros pines del puerto A como salida 

//y los dos primeros del puerto B como entrada 
void setup() {
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(botonIncremento, INPUT);
pinMode(botonDecremento, INPUT);
}
void loop() {
estadoBotonIncremento = digitalRead(botonIncremento);
if(estadoBotonIncremento != estadoBotonAnteriorIncremento) {
if(antirebote(botonIncremento)) {
cuenta++;
if(cuenta > 9) {
cuenta = 9;

}
}
}
estadoBotonAnteriorIncremento = estadoBotonIncremento;

estadoBotonDecremento = digitalRead(botonDecremento);

if(estadoBotonDecremento != estadoBotonAnteriorDecremento) {
if(antirebote (botonDecremento)) {
cuenta–;
if(cuenta < 0)

{
cuenta = 0;
}
}
}
estadoBotonAnteriorDecremento = estadoBotonDecremento;

actualizarNumero();
}

Este código Arduino es un ejemplo de cómo controlar un display de 7 segmentos utilizando dos botones para incrementar y decrementar un número mostrado en el display. Te explicaré paso a paso qué hace cada parte del código:

  1. Definición de pines: Se definen constantes para los pines del Arduino que están conectados a los segmentos del display de 7 segmentos (a, b, c, d, e, f, g) y para los pines que están conectados a los botones de incremento y decremento (botonIncremento y botonDecremento).
  2. Variables y constantes adicionales: Se define una constante tiempoAntirebote que controla el tiempo de antirrebote de los botones, y algunas variables para el estado actual y anterior de los botones y el número que se está mostrando en el display (cuenta).
  3. Función antirrebote: Esta función se encarga de evitar los falsos disparos cuando se presionan los botones. Utiliza un contador que se incrementa cada vez que el estado del botón es igual al estado anterior, y devuelve el estado del botón solo si el contador supera el tiempo de antirrebote definido.
  4. Función actualizarNumero: Esta función actualiza los segmentos del display de 7 segmentos según el valor de cuenta utilizando un switch-case. Cada case representa un dígito del 0 al 9 y enciende o apaga los segmentos correspondientes para mostrar ese dígito.
  5. Configuración inicial en el setup: Se configuran los pines como entrada o salida en el setup().
  6. Bucle principal en el loop(): En el bucle principal se lee el estado de los botones de incremento y decremento. Si se detecta un cambio en el estado de alguno de los botones, se llama a la función antirrebote y se incrementa o decrementa el valor de cuenta según corresponda. Se asegura que cuenta no exceda los límites (0-9). Luego, se actualiza el número mostrado en el display llamando a la función actualizarNumero().

En resumen, este código controla un display de 7 segmentos para mostrar un número que puede ser incrementado o decrementado mediante dos botones, evitando falsos disparos utilizando la técnica de antirrebote.

Reciclar un viejo DVD en un potente amplificador de audio 2.1


Cuando se trata de reciclar  de  componentes electrónicos lo cierto es que es mejor respetar al máximo la configuración inicial pues es al fin al cabo el propósito del equipo  y el que normalmente aprovechará su máximo potencial.

En el caso de un equipo irreparable, bien por coste o simplemente por falta de suerte para hacerlo, hay tres elementos valiosos que podemos casi siempre utilizar para nuestros propósitos: la caja , la alimentación de ca  y la fuente de alimentación,  partes que justo usaremos  en este proyecto para implementar un amplificador 2.1 usando estas partes.

 

IMG_20180829_232535[1]

En efecto,, aunque parezca increíble,  una vez hayamos desmontado la electrónica del viejo lector de dvd  respetando, la parte ca  así como  la fuente de alimentación , es  posible  hoy en día construirse por uno mismo un potente amplificador de audio 2.1   por  muy poco dinero (12€)  ,  con la ventaja de que incluso gran parte de la electrónica ya estará montada y probada, de modo que  sólo necesitaremos hacer las conexiones de  alimentación,   así como cablear los conectores de entrada /salida y ya tendremos el amplificador listo.

En esta ocasión ,vamos a ver un amplificador 2.1  de la que hablamos en otro post   que cuesta unos 12€ en Amazon   en el que que básicamente   solo hay que alimentar  con  corriente continua DC entre  12-24 V   con una fuente conmutada y  conectar tanto la entrada de audio como las tres salidas a sendos altavoces.

La potencia de salida de los canales  izquierda y derecha es 50WX2 (max) y la salida de subwoofer de 100 w (max), la eficiencia puede llegar por encima de 90%.

Los canales izquierdo y derecho de rango completo, con 24 v tensión de alimentación pueden  conducir altavoces de 3-16 ohmios (es decir  una gama muy amplia) y en el caso del  subwoofer si se alimenta el montaje con 24 v  puede conducir un subwoofer, único de  impedancia  entre 2-16 ohm  teniendo en cuenta que a menor impedancia de los altavoces podremos conseguir una mayor potencia de salida.

Las características de este modulo son:

  •  Tensión de alimentación: DC  12-24 V
  • Chip: TPA3116 *
  • Tipo 2 Cadena de 3 canales (canal derecha, canal derecha, subwoofer)
  • Potencia de salida: 50 *1 *2 RMS subwoofer    sobre  8 ohmios
  • Gama respuesta en frecuencia: 14-100 KHz
  • SNR 100dB de frecuencia: conmutación: 1,2 MHz
  • Tamaño PCB  100 cm *70 *%2F 30 mm **3,94 2,75 1,18in (la + W H)
    1 *2,1 canales bordo de amplificador de audio

Es interesante destacar que para alimentar este amplificador debemos usar un fuente conmutada entre 12 y 24V DC  de unos 18Amp   dada la gran intensidad necesaria,  pues sería mucho mas costoso, voluminoso e ineficiente  cubrir la alimentación con una fuente  convencional  regulada basada  en el clásico transformador con el puente de diodos , gran condensador  y el circuito   de regulación.

placa.PNG

El amplificador de audio

Un amplificador 2.1 que podemos comprar ya montada   se  basa  en usar dos  CI:

  •  Un TPA3116D2 en modo maestro 400 kHz, BTL, ganancia si 20 dB, límite de potencia no implementado.
  • Un TPA3116D2 en Esclavo, ganancia del modo PBTL de 20 dB. Las entradas están conectadas para entradas diferenciales.

Es decir usamos dos CI   TPA3116D2 , uno para componer la salida estereo de 50+50W     para dos canales de audio  y un segundo  en configuración mono  para entregar un tope de potencia de 100W

El esquema del montaje como vimos es el siguiente:

esquema.PNG

El  condensador de filtro principal es 4700 uf 35 v, pero para la amplificación de potencia al usar un chip de limitación, este amplificador puede aceptar sólo desde 12v hasta 24 v DC de alimentación y así  el condensador  trabajará en buenas condiciones por lo que no conviene sobrepasar precisamente los 24V DC.

Alimentación del circuito

En cuanto los requisitos de suministro de energía para el TPA3116D2, consisten en un suministro de mayor voltaje para alimentar la salida  etapa del amplificador de altavoz por los que hay arios reguladores están incluidos en el TPA3116D2 para generar voltajes necesarios para el circuito interno de la ruta de audio. La fuente de alta tensión, entre 4.5 V y 26 V, suministra la circuitería analógica (AVCC) y la potencia etapa (PVCC). El suministro de AVCC alimenta LDO interno, incluido GVDD. Precisamente esta salida LDO está conectada a pines externos para fines de filtrado, pero no deben conectarse a circuitos externos. (la salida de GVDD LDO  ha sido dimensionado para proporcionar la corriente necesaria para las funciones internas pero no para la carga externa)

Dada las características  de estos CI  ,por tanto podemos alimentarlos  con batería 12 o 24V   o bien una fuente conmutada de 12-24V de al menos 15 Amp ( con un consumo  máximo típico 7.5 Amp).

A la hora de hacer las  conexiones, solo necesitamos conectar la alimentación externa de 19V  de 6Amp    mayor o igual que 120W,   bien por el jack de 5.5mm -2.1(2.5) con masa al negativo), o bien a la ficha de conexiones que hay justo al lado del conector de alimentación (mucho cuidado con equivocarse  de polaridad).

Una buena solución es optar por una fuente reciclada de alimentación de algun  ordenador portátil de 120W recomendando que al menos sea de 20VDC.

EL montaje

La conexiones del circuito no pueden ser mas simples  ya que la placa en si mismo ya integra los controles individuales de los tres amplificadores  de forma individualizada .Los conectores de los altavoces simplemente los conectaremos a las salidas en  la regleta marcada como BASS, OUTL  y OUTR.

salidas.png

Aunque pueda parecer poco relevante , también aquí se debe respetar escrupulosamente la polaridad de las conexiones a los altavoces pues si uno se equivoca   los altavoces funcionaran en contra-fase  reduciéndose así la potencia de salida total.

IMG_20180829_192255[1]

Para evitar que se toquen las conexiones de los altavoces lo mejor es colocar jack aéreos pues si conectaremos jacks metálicos estos conectarían la masa al chasis, cosa que debemos evitar pues las salidas de los altavoces como vemos en el esquema son independientes y no comparten la masa  así que recomiendo conectar los jacks aéreos , en este caso del tipo RCA  que  pillamos por atrás con los embellecedores de plástico.

Personalmente recomiendo estañar los cables de audio hacia las placa  incluso aunque lo vayamos  a fijar a las tres regletas de salida de los altavoces.

Respecto a los tres potenciómetros :

  1. El de la izquierda es el control de volumen estéreo (sólo para el ajuste de los canales izquierdo y derecho)
  2. El central es el control de volumen del Subwoofer
  3. El control de volumen derecho es global (para 3 canales de ajuste)

entradas

Una solución sencilla es fijar la placa a una tabla de madera  de aproximadamente las dimensiones de la placa del amplificador y pegar esta a la caja de aluminio

IMG_20180829_192255[1]

Respecto la entrada de audio es estéreo bien por un jack de 3 1/2″ estereo  o bien con un conector   macho  que hay junto al propio jack.

IMG_20180829_192245[1]

Respecto a los tres sendos taladros  para los tres potenciómetros   , normalmente deberían caber en el orificio donde se insertaba el  CD o  DVD ,  por lo que queda es ajustar  los botones de plástico ( entran a presión pero si no se  aprietan simplemente deberemos abrir un poco el eje con un destornillador plano )      y los tornillos  que fijan la placa a la base de madera.

Finalmente sólo  nos queda la alimentación donde únicamente habrá que conectar la fuente de ordenador  portátil  (de20V DC) al jack de alimentación.

power.png

Como se pude ver, usamos una fuente de 20V de un viejo portátil HP  que conectaremos al jack izquierdo de la pcb  por medio de un nuevo jack.

Por ultimo conectaremos el lado de ca al cableado original del lector de DVD. !y ya esta  todo  , lo cual por cierto podemos complementar con reproductores de mp3, vu-meter digital , etc.  alimentando esta parte con la fuente original del lector de DVD.

IMG_20180829_192305[1]

Finalmente cerraremos la caja , conectaremos el jack de audio de  3 1/2″ a  una salida de audio y  podemos empezar a hacer  las pruebas .

El sonido le sorprenderá  si piensa en las reducidas dimensiones de la placa ,así como del mínimo coste de este.

IMG_20180829_192454[1]