¿Cómo debo encender todos los LED?

8

Estoy trabajando en un cubo de LED 4x4x4. He conectado todos los terminales negativos de LED en una capa horizontal entre sí, y estoy usando un pin Arduino por capa. He conectado todos los terminales positivos LED de una columna vertical y estoy controlando cada columna a través de un pin.

Entonces, 16 pines utilizados para columnas y 4 pines utilizados para capas horizontales. Los pines están alimentando y hundiendo directamente los LED.

Según mis cálculos, puedo encender al menos 16 LED a la vez antes de alcanzar los límites actuales. Entonces, si quiero iluminar todas las capas simultáneamente, sin quemar el tablero, ¿cómo debo hacerlo?

Asheeshr
fuente
@ MarkBooth directamente hundiéndose en un pin de E / S.
asheeshr

Respuestas:

5

En términos generales, estos cubos LED utilizan la persistencia de la visión y la multiplexación para minimizar la cantidad de cables y pines de E / S digitales para un tamaño dado de cubo, pero en su caso también puede usarlo para reducir la corriente total dibujada por el cubo. En lugar de encender o apagar un LED, destellaría el led muchas veces por segundo para proporcionar un brillo aparentemente continuo pero con un consumo de corriente mucho menor.

Por ejemplo, si puede alimentar continuamente 16 LED pero necesita alimentar 64 LED, puede hacerlo si tiene un ciclo de trabajo del 25%. Cada LED se encenderá durante un cuarto del tiempo y se apagará durante tres cuartos del tiempo, por lo que será 1/4 del brillo del LED de alimentación continua pero también consumirá solo 1/4 de la energía.

Si puede alternar entre los 4 planos cada 5 ms (50 Hz), entonces, dependiendo de cuán brillantes sean los LED del cubo, las personas que miran directamente al cubo probablemente no notarán el parpadeo, pero cualquiera que mire en otro lugar probablemente notará el parpadeo en la esquina de sus ojos. A 2 ms (125 Hz) pocas personas notarían el parpadeo, incluso por el rabillo del ojo.

Para obtener más información, eche un vistazo a la página de Wikipedia en el umbral de fusión de parpadeo .

Mark Booth
fuente
6

La mejor manera de hacerlo es multiplexar .

Esa es la forma en que funcionan sus monitores / pantallas (teléfono celular, computadora portátil, etc.). También recomendaría registros de desplazamiento (como escribí en este tema )

¡Espero que ayude!

Comunidad
fuente
3

El Texas Instruments TLC5940 es otra forma de manejar fácilmente los LED desde el arduino. Aparentemente puede conectar en cadena hasta 40 de ellos juntos. Hay mucha buena información en la página del patio de Arduino. Por favor ve a revisarlo.

Aquí hay un ejemplo de un usuario del foro arduino llamado saeveritt que ilustra una idea de cómo se vería el diagrama de cableado. Siga los enlaces para obtener información sobre cómo alimentar esta cantidad de LED mediante esta técnica.

ingrese la descripción de la imagen aquí

Steve Cooley
fuente
1

Creo que con una cantidad adecuada de transistores podría cambiar las cosas sin tener que hundir toda la corriente del LED a través de un pin Arduino.

No indica su fuente de alimentación, pero lo haría alimentando los LED directamente (no a través del Arduino) y utilizando el Arduio para activar los interruptores de transistores.

Mikey
fuente
¿Puede explicar esto más sobre cómo hacer esto ... tal vez un enlace o un esquema de ejemplo?
Anonymous Penguin
@annonomus person: supongamos una fuente de 5v. Creo que en lugar de "5v> pin Arduino> grupo de LED> tierra" harías "5V> pin Arduino> base de transistor NPN" y "5v> colector de transistor> emisor de transistor> grupo de LED> tierra". Escriba "alto" en la base NPN desde el Arduino para voltear el transistor y encender los LED sin hundir la corriente a través del pin Arduino.
mikeY
Lo sé, pero quiero decir, ¿qué transistor usarías? ¿Cualquiera que cumpla con la corriente? Quiero decir, ¿cómo calculas cuánto voltaje y saturación necesitas para alimentarlo, etc.?
Anonymous Penguin el
Creo que los que saben usarían un MOSFET elegante. Lo probaría con un 2N3904 porque tengo un montón de ellos a mano.
mikeY