Quiero usar una placa Arduino normal para controlar los LED. ¿Cuál es la mayor cantidad de luces que puedo controlar individualmente desde la placa?
hay algun tutorial de como conectarlo?
Creo que el uso de líneas N de Charlie-plexing controla N * (N-1) LED. Hay un buen artículo en Wikipedia.
Un amigo mío, Jimmie P. Rodgers, instaló 126 LED en un Arduino Shield. Utiliza charlie-plexing para controlar los LED. Alguna información sobre su tablero está en -- jimmieprodgers.com/2009/12/my-development-process/ (copia de archive.org)
En la última reunión del grupo de usuarios de Arduino en Boston, Jimmie P. Rodgers dibujó un diagrama de plexo de Charlie como una matriz con redes etiquetadas. Los esquemas dibujados de esta manera parecían hacer un buen trabajo al comunicar el concepto. Creé un par de esquemas similares: consulte http://wiblocks.luciani.org/FAQ/faq-charlie-plex.html
jimmieprodgers.com
enlace en esta respuesta está cargado de virus.Puede usar los registros de desplazamiento ( http://en.wikipedia.org/wiki/Shift_register ) para obtener tantas salidas paralelas como desee de un solo flujo en serie.
Deberá preocuparse por sus limitaciones de energía. En realidad, nunca he usado un Arduino, pero supongo que tiene un límite actual al igual que los PIC. Además, los registros de desplazamiento tendrán un límite de corriente. Si se encuentra con esto, deberá considerar usar algo como un MOSFET que le permita controlar los LED sin tener que extraer mucha energía directamente de su microcontrolador.
Cualquier pin del microcontrolador AVR dado puede generar hasta 40 mA, y la fuente de alimentación total suministrada o absorbida por el chip (es decir, en los pines de tierra y Vcc) debe ser inferior a 200 mA.
Charlieplexing es una excelente solución para situaciones en las que necesita muchos LED, pero puede funcionar con solo un LED encendido a la vez. Una placa Arduino estándar (como Duemilanove) proporciona 17 pines de E/S "libres", sin contar TX, RX, Reset o el pin 13. Por lo tanto, puede conectar 17*16=272 LED. Esto puede funcionar bien, especialmente si mantiene un LED encendido o escanea rápidamente entre unos pocos. Pero si está tratando de iluminar toda la matriz con un patrón, encontrará que cada uno está encendido (un poco menos de) 1/272 del tiempo, por lo que si la corriente de su unidad fuera de 30 mA en un momento dado, cada LED la corriente promedio sería de aproximadamente 0.1 mA, bastante tenue.
Si no necesita tantos LED, sino más brillo, la multiplexación tradicional puede ser una mejor opción. En este caso, usa algunas de sus líneas como filas y otras como columnas en una matriz. Si usa una corriente de LED de 10 mA, podría definir una matriz de 4 columnas y 13 filas, donde los 4 LED de una fila pueden estar encendidos a la vez, y escanear las filas. Luego, cada fila está en 1/13 del tiempo a una corriente de 10 mA, por lo que la corriente LED promedio puede ser tan alta como 0.76 mA, PERO solo obtiene 4 * 13 = 104 LED. (Definitivamente más brillante por LED que con charlieplexing).
El límite en el último ejemplo es de 40 mA por pin en el AVR, ya que cada pin de conducción de fila genera 4x10 = 40 mA. Si permite que se agreguen transistores externos (que pueden ser baratos y pequeños) a las salidas de fila, entonces puede evitar ese límite particular y ser más brillante. Por ejemplo, podría hacer una matriz de 8x9, con 8 filas y 9 columnas, 72 LED en total. Una de las 8 filas está encendida a la vez, seleccionada a través del transistor. Hasta los 9 LED en una fila determinada pueden estar encendidos a la vez, impulsados a 20 mA, por lo que 180 mA provienen del transistor y permanece por debajo de los límites actuales del AVR. La corriente promedio por LED ahora es de 20 mA/8 = 2,5 mA, por lo general razonablemente brillante.
Aquí hay un tutorial muy bueno y detallado que incluye una sección sobre el uso de un Arduino para ejecutar un cubo LED de 8x8x8. (No te pierdas la película de YouTube que tienen arriba)
Si usa LED digitales como WS2812, también conocido como "Neopixels", un Arduino Uno estándar puede controlar hasta 600 píxeles RGB, sin tener que multiplexar nada :)
La única limitación aquí es la memoria RAM de la placa. Una placa con más RAM, como una Arduino Mega que tiene 8kb de RAM, puede controlar hasta 2400 píxeles, en comparación con una Uno que tiene solo 2kb de RAM.
Puede encontrar una buena descripción general aquí: https://www.eerkmans.nl/powering-lots-of-leds-from-arduino/
Y más información sobre cómo trabajar con Neopixels aquí: https://learn.adafruit.com/adafruit-neopixel-uberguide
Con 17 pines de E/S, diecisiete transistores NPN (seguidores de emisores para aumentar la corriente), no debería haber ningún problema en particular al mostrar 272 LED en combinaciones arbitrarias con un ciclo de trabajo de 1/17, con corriente promedio o 0,7 mA (200 mA/272), limitado por la capacidad del chip para reducir 200 mA a la vez. Agregar un diodo para obtener una caída de 0,7 voltios permitirá agregar otros 17 LED (reduciendo el ciclo de trabajo a 1/18), aunque el brillo no coincidirá con los otros.
Si bien Windell Oskay presenta un buen argumento de que 104 LED es el máximo sin agregar más transistores, Tom Igoe ha publicado fotos de una matriz de 128 LED controlada directamente por un solo Arduino Mega, sin transistores adicionales, discretos o integrados.
¿Tom Igoe está "haciendo trampa" al exceder brevemente la "corriente máxima absoluta por pin" que figura en la hoja de datos?
ppvi