LED máximos en una matriz

1

Hay varios métodos para controlar los LED utilizando un microcontrolador. El método más sencillo es conectar todos los LED a un pin propio en el microcontrolador. Digamos que tienes \ $ n \ $ pins disponibles, podrás conducir \ $ n \ $ pins.

Sin embargo, también existen diferentes métodos para controlar los LED:

  • Una matriz de diodos :

    Divida los pines en dos conjuntos: uno para la fuente de corriente, uno para el sumidero de corriente. Establezca las fuentes en 0 por defecto y los sumideros en 1 . Ahora, para encender un LED, configure la fuente conectada a 1 y el sumidero a 0 . Haga esto para todos los LED, uno después del otro.
  • Charlieplexing :

    ConCharlieplexing,configuralospinesnoutilizadosparalaentrada,loquelesotorgaunestadodealtaimpedanciaylos"desconecta" del circuito.

Lo que estoy buscando ahora es una descripción general de estos métodos para controlar los LED (y otros métodos muy utilizados para controlar los LED, de una manera más eficiente que el método 1: 1 descrito anteriormente, si son notables) . Lo que necesito para cada método son dos cálculos:

  • Dados \ $ n \ $ pines, ¿cuál sería la cantidad máxima de LED para conducir?
  • Cuando necesite \ $ n \ $ LEDs, ¿cuántos pines tendrá que usar como mínimo?
pregunta Keelan

1 respuesta

2

Primero, digamos que trabajamos con estas dos funciones:

\ $ L (n) \ $ es la cantidad máxima de LED que se pueden controlar desde \ $ \ mathsf {n} \ $ pines.
\ $ p (n) \ $ es la cantidad mínima de pines necesarios para conducir \ $ \ mathsf {n} \ $ LEDs.

1: 1-método

Este es fácil:

$$ L (n) = n $$

$$ p (n) = n $$

Una matriz de diodos

Al principio, necesitamos determinar la matriz de diodos más eficiente. Por ejemplo, podría dividir 4 pines en dos conjuntos de 2, o un conjunto de 1 y uno de 3. Obviamente, la cantidad de LED está dada por \ $ \ mathsf {length \ cdot {} width} \ $. Podemos decir \ $ \ mathsf {width = n-length} \ $, por lo que la cantidad de LED es: \ $ \ mathsf {length \ cdot {} (n-length) = - length ^ 2 + n \ cdot {} longitud} \ $. Dada una \ $ \ mathsf {n} \ $, esta es una parábola, que tiene un máximo cuando \ $ \ mathsf {length = \ frac {n} {2}} \ $. También puede hacer esto en el instinto. Por lo tanto, la cantidad máxima de LED se alcanza cuando los dos conjuntos tienen una cantidad igual de pines, o difieren solo en 1, en caso de un número impar de pines. Ahora podemos decir:

$$ L (n) = \ lfloor {} \ frac {n} {2} \ rfloor {} \ cdot \ lceil {} \ frac {n} {2} \ rceil {} $$

Además, ahora podemos entender fácilmente la función \ $ \ mathsf {p (n)} \ $:

$$ p (n) = \ begin {cases} 1 & \ text {para} n = 1 \\ \ lceil {} \ sqrt {n} \ rceil & \ text {para} n \ gt1 \ end {cases} $$

Acabo de incluir los casos para 1, ya que este es un caso especial. Normalmente, solo puedes usar la segunda función.

Charlieplexing

En este método, tenemos dos LED entre cada conjunto de dos pines. Podemos calcular la cantidad de conjuntos de dos pines con:

$$ (n-1) + (n-2) + \ dots + 1 = \ frac {n \ cdot (n-1)} {2} = \ frac {n ^ 2-n} {2} $$

Ahora podemos decir que:

$$ L (n) = 2 \ cdot \ frac {n ^ 2-n} {2} = n ^ 2-n $$

Vimos que la cantidad de pares de pines es igual a \ $ \ mathsf {n \ cdot (n-1)} \ $. Con un pensamiento inverso, esto lleva a:

$$ p (n) = \ begin {cases} 1 & \ text {para} n = 1 \\ 2 \ cdot \ lfloor \ sqrt {n} \ rfloor-1 & \ text {para} n \ gt1 \ end {cases} $$

Acabo de incluir los casos para 1, ya que este es un caso especial. Normalmente, solo puedes usar la segunda función.

Otros métodos

No tengo conocimiento de ningún otro método, a partir del martes 12 de marzo de 2013.

    
respondido por el Keelan

Lea otras preguntas en las etiquetas