Charlieplexing es una técnica para controlar una pantalla multiplexada en la que se utilizan relativamente pocos pines de E / S en un microcontrolador , por ejemplo, para controlar una matriz de LED .
El método utiliza las capacidades lógicas de tres estados de los microcontroladores para ganar eficiencia sobre la multiplexación tradicional. Aunque es más eficiente en el uso de E / S, existen problemas que hacen que su diseño sea más complicado y dificultan el uso de pantallas más grandes. Estos problemas incluyen el ciclo de trabajo , los requisitos de corriente y los voltajes directos de los LED.
Origen
Charlieplexing fue propuesto a principios de 1995 por Charlie Allen en Maxim Integrated [1] tras la divulgación pública a PICLIST por Graham Daniel (en ese momento g.daniel.invent.design) de su diseño utilizando chips PIC para impulsar filas y columnas de LED bidireccionales . Después de un poco de discusión sobre PICLIST, la idea fue aceptada por la comunidad PICLIST y luego se incluyó en un folleto de trucos de Microchip, pero sin atribución. Graham en ese momento creó circuitos simples con chips PIC 12C508 que conducían 12 LED a 5 pines con un mini comando establecido para poner en movimiento varias pantallas de iluminación. Al igual que con cualquier multiplexación, existe el requisito de recorrer rápidamente los LED en uso para que la persistencia del ojo humano perciba que la pantalla está iluminada en su totalidad. La multiplexación generalmente se puede ver mediante un efecto estroboscópico y sesgado si el punto focal del ojo se mueve más allá de la pantalla rápidamente. El método, sin embargo, fue conocido y utilizado por varias partes mucho antes en la década de 1980, y ha sido descrito en detalle ya en 1979 en una patente de Christopher W. Malinowski, Heinz Rinderle y Martin Siegle del Departamento de Investigación y Desarrollo. , AEG-Telefunken , Heilbronn, Alemania por lo que llamaron un "sistema de señalización de tres estados". [2] [3] [4]
Multiplexación tradicional
Patas | LED |
---|---|
1 | 0 |
2 | 2 |
3 | 6 |
4 | 12 |
5 | 20 |
6 | 30 |
7 | 42 |
8 | 56 |
9 | 72 |
10 | 90 |
20 | 380 |
40 | 1560 |
norte | n 2 - n |
La multiplexación de pantalla es muy diferente de la multiplexación utilizada en la transmisión de datos, aunque tiene los mismos principios básicos. En la multiplexación de pantallas, las líneas de datos de las pantallas * están conectadas en paralelo a un bus de datos común en el microcontrolador. Luego, las pantallas se encienden y se direccionan individualmente. Esto permite el uso de menos pines de E / S de los que normalmente se necesitarían para controlar la misma cantidad de pantallas directamente. * Aquí, cada "pantalla" podría ser, por ejemplo, un dígito de la calculadora, no la matriz completa de dígitos.
Cuando se utiliza Charlieplexing, n pines impulsores pueden conducir n dígitos con n - 1 segmentos. Cuando se simplifica, equivale a n pines que pueden controlar n 2 - n segmentos o LED. La multiplexación tradicional necesita muchos más pines para controlar la misma cantidad de LED; Se deben usar 2 pines n para controlar n 2 LED (aunque se puede usar un chip decodificador de 1 de n para reducir el número de pines de E / S del microcontrolador a).
Si se conoce el número de LED, entonces la ecuación anterior se puede trabajar hacia atrás para determinar el número de pines necesarios. Es decir, los LED L pueden funcionar con patas.
Unidad complementaria
Charlieplexing en su forma más simple funciona mediante el uso de una matriz de diodos de pares complementarios de LED. La matriz Charlieplexed más simple posible se vería así:
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/d/d3/2-pin_Charlieplexing_with_common_resistor.svg/220px-2-pin_Charlieplexing_with_common_resistor.svg.png)
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/a/af/2-pin_Charlieplexing_with_individual_resistors.svg/220px-2-pin_Charlieplexing_with_individual_resistors.svg.png)
Al aplicar un voltaje positivo al pin X1 y conectar a tierra el pin X2, el LED1 se encenderá. Dado que la corriente no puede fluir a través de los LED en dirección inversa a este bajo voltaje, el LED2 permanecerá apagado. Si los voltajes en el pin X1 y el pin X2 se invierten, el LED2 se iluminará y el LED1 se apagará.
La técnica Charlieplexing no hace posible una matriz más grande cuando solo se usan dos pines, porque dos LED pueden ser controlados por dos pines sin ninguna conexión de matriz, y sin siquiera usar el modo de tres estados. En este ejemplo de dos LED, Charlieplexing ahorraría un cable de tierra, que sería necesario en una situación común de controlador de 2 pines.
Sin embargo, el circuito de 2 pines sirve como un ejemplo simple para mostrar los conceptos básicos antes de pasar a circuitos más grandes donde Charlieplexing realmente muestra una ventaja.
Expansión: lógica de tres estados
Si el circuito anterior se expandiera para acomodar 3 pines y 6 LED, se vería así:
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/3/3d/3-pin_Charlieplexing_with_common_resistors.svg/220px-3-pin_Charlieplexing_with_common_resistors.svg.png)
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/5/5a/3-pin_Charlieplexing_with_individual_resistors.svg/220px-3-pin_Charlieplexing_with_individual_resistors.svg.png)
Sin embargo, esto presenta un problema. Para que este circuito actúe como el anterior, uno de los pines debe estar desconectado antes de aplicar carga a los dos restantes. Si, por ejemplo, el LED5 estaba destinado a encenderse, X1 debe cargarse y X3 debe conectarse a tierra. Sin embargo, si X2 también está cargado, el LED3 también se iluminaría. Si X2 estuviera conectado a tierra, el LED1 se iluminaría, lo que significa que el LED5 no se puede encender por sí mismo. Esto se puede resolver utilizando las propiedades lógicas de tres estados de los pines del microcontrolador. Los pines del microcontrolador generalmente tienen tres estados: "alto" (5 V), "bajo" (0 V) y "entrada". El modo de entrada pone el pin en un estado de alta impedancia , el cual, eléctricamente hablando, "desconecta" ese pin del circuito, lo que significa que poca o ninguna corriente fluirá a través de él. Esto permite que el circuito vea cualquier número de pines conectados en cualquier momento, simplemente cambiando el estado del pin. Para controlar la matriz de seis LED de arriba, los dos pines correspondientes al LED que se va a encender están conectados a 5 V (pin de E / S "alto" = número binario 1) y 0 V (pin de E / S "bajo" = 0 binario), mientras que el tercer pin se establece en su estado de entrada.
Al hacerlo, se evita la fuga de corriente fuera del tercer pin, asegurando que el LED que se desea encender sea el único encendido. Debido a que el LED deseado reduce el voltaje disponible después de la resistencia, la corriente no fluirá a través de caminos alternativos (existe un camino alternativo de 2 LED para cada par de pines en el diagrama de 3 pines, por ejemplo), siempre que la caída de voltaje en la ruta de LED deseada es menor que la caída de voltaje total en cada cadena de LED alternativos. Sin embargo, en la variante con resistencias individuales este efecto regulador de voltaje no afecta a los caminos alternativos, por lo que debe asegurarse de que todos los LED utilizados no se enciendan con la mitad de la tensión de alimentación aplicada porque esta variante no se beneficia del efecto regulador de voltaje del LED de ruta deseada.
Al usar la lógica de tres estados, la matriz teóricamente se puede expandir a cualquier tamaño, siempre que haya pines disponibles. Para n pines, n ( n - 1) LED pueden estar en la matriz. Cualquier LED se puede encender aplicando 5 V y 0 V a sus pines correspondientes y configurando todos los demás pines conectados a la matriz en modo de entrada. Bajo las mismas restricciones que se discutieron anteriormente, se pueden encender en paralelo hasta n - 1 LED que comparten una ruta positiva o negativa común.
En expansión
El circuito de 3 hilos se puede reorganizar en esta matriz casi equivalente (las resistencias se han reubicado).
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/e/e3/3-pin_Charlieplexing_matrix_with_common_resistors.svg/220px-3-pin_Charlieplexing_matrix_with_common_resistors.svg.png)
![](http://wikiimg.tojsiabtv.com/wikipedia/commons/thumb/5/5c/3-pin_Charlieplexing_matrix_with_individual_resistors.svg/220px-3-pin_Charlieplexing_matrix_with_individual_resistors.svg.png)
Esto enfatiza las similitudes entre el múltiplex de cuadrícula ordinario y Charlieplex, y demuestra el patrón que conduce a la regla " n- cuadrado menos n ".
En el uso típico en una placa de circuito, las resistencias se ubicarían físicamente en la parte superior de las columnas y se conectarían al pin de entrada. Las filas luego se conectarían directamente al pin de entrada sin pasar por la resistencia.
La primera configuración es adecuada solo cuando se utilizan LED idénticos, mientras que en la segunda configuración con resistencias individuales, las resistencias permiten mezclar diferentes tipos de LED proporcionando a cada uno su resistencia adecuada.
En estas configuraciones, las resistencias reubicadas permiten encender varios LED al mismo tiempo fila por fila, en lugar de requerir que se enciendan individualmente. La capacidad de corriente de la fila podría ser aumentada por un seguidor de emisor NPN en lugar del pin de E / S típicamente mucho más débil.
Problemas con Charlieplexing
Frecuencia de actualización
Debido a que solo un solo conjunto de LED, todos con un ánodo o cátodo común, se puede encender simultáneamente sin encender LED involuntarios, Charlieplexing requiere cambios de salida frecuentes, a través de un método conocido como multiplexación . Cuando se realiza la multiplexación, no todos los LED se encienden simultáneamente, sino que un conjunto de LED se enciende brevemente, luego otro conjunto y, finalmente, el ciclo se repite. Si se hace lo suficientemente rápido, parecerá que todos están encendidos, todo el tiempo, para el ojo humano debido a la persistencia de la visión . Para que una pantalla no tenga un parpadeo notable, la frecuencia de actualización de cada LED debe ser superior a 50 Hz. [ dudoso ]
Suponga que se utilizan 8 pines de tres estados para controlar 56 LED a través de Charlieplexing, que es suficiente para 8 pantallas de 7 segmentos (sin puntos decimales). Por lo general, las pantallas de 7 segmentos están hechas para tener un cátodo común, a veces un ánodo común, pero sin pérdida de generalidad, supongamos que es un cátodo común. Todos los LED en las 8 pantallas de 7 segmentos no se pueden encender simultáneamente en ninguna combinación deseada usando Charlieplexing. Es imposible obtener 56 bits de información directamente de 8 trits (el término para un carácter de base 3, ya que los pines son de 3 estados) de información, ya que 8 trits comprenden fundamentalmente 8 log 2 3, o aproximadamente 12,7 bits de información. , que está muy por debajo de los 56 bits necesarios para encender o apagar los 56 LED en cualquier combinación arbitraria. En cambio, el ojo humano debe ser engañado por el uso de multiplexación.
Solo una pantalla de 7 segmentos, un conjunto de 7 LED puede estar activo en cualquier momento. La forma en que se haría esto es que los 8 cátodos comunes de las 8 pantallas se asignen cada uno a su propio pin único entre los 8 puertos de E / S. En cualquier momento, uno y solo uno de los 8 pines de E / S de control estará activamente bajo y, por lo tanto, solo la pantalla de 7 segmentos con su cátodo común conectado a ese pin activamente bajo puede tener cualquiera de sus LED encendidos. Esa es la pantalla activa de 7 segmentos. Los ánodos de los 7 segmentos de LED dentro de la pantalla activa de 7 segmentos se pueden encender en cualquier combinación al tener los otros 7 puertos de E / S en modo de alta o alta impedancia, en cualquier combinación. Están conectados a los 7 pines restantes, pero a través de resistencias (la conexión del cátodo común se conecta al pin en sí, no a través de una resistencia, porque de lo contrario la corriente a través de cada segmento individual dependería del número total de segmentos encendidos, ya que todos tendrían que compartir una sola resistencia). Pero para mostrar un número deseado usando los 8 dígitos, solo se puede mostrar una pantalla de 7 segmentos a la vez, por lo que los 8 deben recorrerse por separado, y en un 50 de segundo durante todo el período de 8. Por lo tanto, la pantalla debe actualizarse a 400 Hz durante el ciclo del período 8 a través de los 8 segmentos para que los LED parpadeen no más lento de 50 veces por segundo. Esto requiere la interrupción constante de cualquier procesamiento adicional que realice el controlador, 400 veces por segundo.
Corriente pico
Debido a la disminución del ciclo de trabajo , el requisito actual de una pantalla Charlieplexed aumenta mucho más rápido de lo que lo haría con una pantalla multiplexada tradicionalmente. A medida que la pantalla se vuelve más grande, la corriente promedio que fluye a través del LED debe ser (aproximadamente) constante para que mantenga un brillo constante, lo que requiere que la corriente máxima aumente proporcionalmente. Esto provoca una serie de problemas que limitan el tamaño práctico de una pantalla Charlieplexed.
- Los LED a menudo tienen una clasificación de corriente máxima máxima, así como una clasificación de corriente promedio.
- Si el código del microcontrolador falla, y se está utilizando un Charlieplex de un solo LED a la vez, el único LED que queda encendido está sometido a una tensión mucho mayor que en una pantalla de charliplexed fila a la vez o en una pantalla tradicionalmente multiplexada, lo que aumenta el riesgo de una falla antes de que se detecte la falla.
Requisito para tristate
Todas las salidas utilizadas para impulsar una pantalla Charlieplexed deben ser triestado. Si la corriente es lo suficientemente baja como para impulsar las pantallas directamente a través de los pines de E / S del microcontrolador, esto no es un problema, pero si se deben usar tristates externos, entonces cada tristate generalmente requerirá dos líneas de salida para controlar, eliminando la mayor parte de la ventaja de una pantalla Charlieplexed. Dado que la corriente de los pines del microcontrolador generalmente se limita a 20 mA aproximadamente, esto restringe severamente el tamaño práctico de una pantalla Charlieplexed. Sin embargo, se puede hacer habilitando un segmento a la vez. [5]
Complejidad
Las matrices Charlieplex son significativamente más complicadas, tanto en el diseño de PCB requerido como en la programación del microcontrolador, que el uso de matrices multiplex predefinidas. Esto aumenta el tiempo de diseño. La soldadura de componentes también puede llevar más tiempo que las matrices de LED multiplexadas. Se puede lograr un equilibrio entre la complejidad y el uso de clavijas al combinar varias matrices LED multiplexadas preconstruidas juntas. [6]
Tensión directa
Al usar LED con diferentes voltajes directos , como cuando se usan LED de diferentes colores, algunos LED pueden encenderse cuando no se desea.
En el diagrama anterior se puede ver que si el LED 6 tiene un voltaje directo de 4 V, y los LED 1 y 3 tienen voltajes directos de 2 V o menos, se iluminarán cuando el LED 6 esté previsto, ya que su ruta de corriente es más corta. Este problema se puede evitar fácilmente comparando los voltajes directos de los LED utilizados en la matriz y verificando problemas de compatibilidad. O, más simplemente, usando LED que tengan el mismo voltaje directo. [1] [7]
Este también es un problema cuando los LED utilizan resistencias individuales en lugar de resistencias compartidas, si hay una ruta a través de dos LED que tiene menos caída de LED que el voltaje de suministro, estos LED también pueden iluminarse en momentos no deseados.
Fallo del LED
Si un solo LED falla, ya sea en circuito abierto, en cortocircuito o con fugas (desarrollando una resistencia paralela parásita, que permite la corriente en ambas direcciones), el impacto será catastrófico para la pantalla en su conjunto. Además, el LED problemático real puede ser muy difícil de identificar, porque potencialmente un gran conjunto de LED que no deberían estar encendidos pueden encenderse todos juntos y, sin un conocimiento detallado del circuito, la relación entre qué LED es malo y qué conjunto. de los LED que se encienden todos juntos no se puede establecer fácilmente.
Si el LED fallido se convierte en un circuito abierto, el voltaje entre los 2 electrodos del LED puede acumularse hasta que encuentre un camino a través de otros dos LED. Hay tantas rutas como pines utilizados para controlar la matriz menos 2; Si el LED con ánodo en el nodo my cátodo en el nodo n falla de esta manera, es posible que cada par de LED en el que el ánodo sea el nodo m , el cátodo sea p para cualquier valor de p (con la excepción de que p no puede sea m o n , por lo que hay tantas opciones posibles para p, ya que el número de pines que controlan la matriz menos 2), junto con el LED cuyo ánodo es py el cátodo es n , se iluminarán.
Si hay 8 pines de E / S que controlan la matriz, esto significa que habrá 6 rutas parásitas a través de pares de 2 LED, y es posible que 12 LED se enciendan involuntariamente, pero afortunadamente esto solo sucederá cuando se supone que el único LED defectuoso debe aparecer. encendido, que puede ser una pequeña fracción del tiempo y no presentará síntomas deletéreos cuando se supone que el LED de problema no debe estar encendido. Si el problema es un corto entre los nodos x y y , a continuación, cada vez que cualquier LED U con ya sea x o y como su ánodo o cátodo y algún nodo z como su otro electrodo se supone que vienen en (sin pérdida de generalidad, supongamos que U' s cátodo está conectado a x ), el LED V con cátodo y ánodo y z se encenderá también, así cualquier momento cualquier nodo x o y se activa como un ánodo o un cátodo, dos LEDs se encenderán lugar de uno. En este caso, enciende solo un LED adicional sin querer, pero lo hace con mucha más frecuencia; no solo cuando se supone que se enciende el LED fallido, sino cuando se supone que se enciende cualquier LED que tenga un pin en común con el LED fallido.
Los elementos problemáticos se vuelven especialmente difíciles de identificar si hay dos o más LED defectuosos. Lo que esto significa es que, a diferencia de la mayoría de los métodos en los que la pérdida de un solo LED simplemente causa un solo segmento quemado, cuando se usa Charlieplexing, uno o dos LED quemados, cualquiera que sea el modo de falla, casi con certeza causarán una catástrofe. cascada de encendidos no deseados de los LED que aún funcionan, lo que muy probablemente inutiliza todo el dispositivo de forma completa e inmediata. Esto debe tenerse en cuenta al considerar la vida útil requerida y las características de falla del dispositivo que se está diseñando.
Multiplexación de datos de entrada
Charlieplexing también se puede utilizar para multiplexar señales de entrada digitales en un microcontrolador. Se utilizan los mismos circuitos de diodos, excepto que se coloca un interruptor en serie con cada diodo. Para leer si un interruptor está abierto o cerrado, el microcontrolador configura un pin como entrada con una resistencia pull-up interna. El otro pin se configura como salida y se establece en el nivel lógico bajo. Si el pin de entrada lee bajo, entonces el interruptor está cerrado, y si el pin de entrada lee alto, entonces el interruptor está abierto. [8]
Una aplicación potencial para esto es leer un teclado numérico estándar (4 × 3) de 12 teclas usando solo 4 líneas de E / S. El método tradicional de escaneo de filas y columnas requiere 4 + 3 = 7 líneas de E / S. Así, Charlieplexing ahorra 3 líneas de E / S; sin embargo, agrega el gasto de 12 diodos (ya que los diodos solo son gratuitos cuando se utilizan LED). Es posible una variación del circuito con solo 4 diodos, [8] sin embargo, esto reduce el vuelco del teclado. El microcontrolador siempre puede detectar cuando los datos están corruptos, pero no hay garantía de que pueda detectar las pulsaciones de teclas originales, a menos que solo se presione un botón a la vez. (Sin embargo, es probable que sea posible organizar el circuito de modo que si se pulsan como máximo dos botones adyacentes, no se produzcan pérdidas de datos). [ Vago ] La entrada solo no tiene pérdidas en el circuito de 4 diodos si sólo se pulsa un botón. presionadas a la vez, o si se evitan ciertas pulsaciones de varias teclas problemáticas. En el circuito de 12 diodos, esto no es un problema y siempre hay una correspondencia uno a uno entre las pulsaciones de botones y los datos de entrada. Sin embargo, hay tantos diodos que se requieren para usar el método (especialmente para matrices más grandes) que generalmente no hay ahorros de costos con respecto al método tradicional de escaneo de filas y columnas, a menos que el costo de un diodo sea solo una fracción del costo de un pin de E / S, donde esa fracción es una sobre el número de líneas de E / S.
Tucoplejante
Micah Elizabeth Scott desarrolló un método para usar 3 pines para ejecutar 4 LED y 4 interruptores llamado Tucoplexing. [9]
GuGaplexing
Gugaplexing es como charlieplexing con múltiples voltajes de excitación. [10]
Chipiplexado
Chipiplexing agrega seguidores de emisor para aumentar la fuerza de la unidad de fila permitiendo que las filas más anchas de lo que un puerto de microcontrolador podría conducir se enciendan simultáneamente.
Modulación de ancho de pulso
Charlieplexing incluso se puede usar para usar modulación de ancho de pulso para controlar el brillo de 12 LED con 4 pines. [11]
Ejemplo de código
En el siguiente ejemplo de código, el circuito [12] usa un microcontrolador ATtiny de 8 pines que tiene 5 pines de E / S para crear una pantalla de 7 segmentos . Dado que una pantalla de 7 segmentos solo requiere el control de 7 LED individuales, usamos 4 de los pines de E / S de ATtiny como salidas charlieplexed (n * (n-1)). Dejando el quinto pin de E / S para usarlo como entrada digital o analógica u otra salida.
// Código ATtiny// Lee la entrada analógica (o digital) del pin 4 y cada vez que la entrada cae por debajo de un umbral establecido // cuenta uno y muestra el aumento en la cuenta activando uno de los cuatro LED (o transistores)// o uno de los doce LED de charlieplexed.// ESTABLEZCA ESTOS VALORES:int umbral = 500 ;int maxCount = 7 ;//////////////////////booleano sensorTriggered = falso ;int count = 0 ;int sensorValue = 0 ;long lastDebounceTime = 0 ; // la última vez que se alteró el pin de salidalargo debounceDelay = 50 ; // el tiempo de rebote; aumentar si la salida parpadea//////////////////////////////////////////////////// //////////////////////////////// configuración vacía () { para ( int pin = 0 ; pin < 4 ; pin ++ ) { pinMode ( pin , SALIDA ); digitalWrite ( pin , BAJO ); } pinMode ( 4 , ENTRADA ); escritura digital ( 4 , ALTA ); // dominadas internas}//////////////////////////////////////////////////// //////////////////////////////// bucle vacío () { testDigits ();} testDigits void () { charlieLoop ();}//////////////////////////////////////////////////// ////////////////////////////////void readSensor () { sensorValue = analogRead ( 2 ); // pin4! retraso ( 100 ); if ( sensorValue < umbral && sensorTriggered == false ) { sensorTriggered = verdadero ; contar ++ ; if ( count > maxCount ) count = 0 ; charlieLoop (); } if ( sensorValue > umbral ) sensorTriggered = false ;}//////////////////////////////////////////////////// ////////////////////////////////void charlieLoop () { contar ++ ; para ( int i = 0 ; i < 1000 ; i ++ ) { para ( int c = 0 ; c < cuenta ; c ++ ) { charliePlexPin ( c ); } } retraso ( 1000 ); if ( count > maxCount ) count = 0 ;}//////////////////////////////////////////////////// ////////////////////////////////void charliePlexPin ( int myLed ) { // Asegúrese de no alimentar voltajes aleatorios a los LED // durante el breve tiempo estamos cambiando los modos y voltajes de los pines. pinMode ( 0 , ENTRADA ); pinMode ( 1 , ENTRADA ); pinMode ( 2 , ENTRADA ); pinMode ( 3 , ENTRADA ); cambiar ( myLed ) { caso 0 : pinMode ( 0 , SALIDA ); pinMode ( 2 , SALIDA ); digitalWrite ( 2 , BAJO ); escritura digital ( 0 , ALTA ); romper ; caso 1 : pinMode ( 3 , SALIDA ); pinMode ( 2 , SALIDA ); digitalWrite ( 2 , BAJO ); escritura digital ( 3 , ALTA ); romper ; caso 2 : pinMode ( 3 , SALIDA ); pinMode ( 1 , SALIDA ); digitalWrite ( 1 , BAJO ); escritura digital ( 3 , ALTA ); romper ; caso 3 : pinMode ( 1 , SALIDA ); pinMode ( 0 , SALIDA ); digitalWrite ( 0 , BAJO ); escritura digital ( 1 , ALTA ); romper ; caso 4 : pinMode ( 0 , SALIDA ); pinMode ( 1 , SALIDA ); digitalWrite ( 1 , BAJO ); escritura digital ( 0 , ALTA ); romper ; caso 5 : pinMode ( 2 , SALIDA ); pinMode ( 0 , SALIDA ); digitalWrite ( 0 , BAJO ); escritura digital ( 2 , ALTA ); romper ; caso 6 : pinMode ( 2 , SALIDA ); pinMode ( 1 , SALIDA ); digitalWrite ( 1 , BAJO ); escritura digital ( 2 , ALTA ); romper ; }}//////////////////////////////////////////////////// ////////////////////////////////void spwm ( int freq , int pin , int sp ) { // llama a charlieplexing para configurar los pines correctos: //en: digitalWrite ( pin , ALTO ); delayMicroseconds ( sp * freq ); // apagado: digitalWrite ( pin , BAJO ); delayMicroseconds ( sp * ( 255 - freq ));}
Referencias
- ^ a b "Charlieplexing - Multiplexación de pantalla LED de recuento de pines reducido" . Maxim integrado . Archivado desde el original el 7 de junio de 2017 . Consultado el 7 de junio de 2017 .
Charlie Allen originalmente defendió esta técnica internamente en Maxim, por lo que el nombre abreviado "Charlieplexing" entró en uso para distinguir la multiplexación de recuento reducido de pines del método tradicional.
- ^ US4319227 , Malinowski, Christopher W .; Heinz Rinderle & Martin Siegle, "Sistema de señalización de tres estados", expedido el 9 de marzo de 1982, asignado al Departamento de Investigación y Desarrollo, AEG-Telefunken , Heilbronn, Alemania
- ^ google.com/patents/US4319227
- ^ patentimages.storage.googleapis.com
- ^ 'Casi sin reloj parcial' con pantallas LED de 7 segmentos Charlieplexed.
- ^ Regla de Michael E. Charlieplexing con módulos de matriz de puntos LED . Consultado el 20 de marzo de 2013 .
- ↑ Don Lancaster's Tech Musings # 152 es donde se originó el nombre Charlieplexing.
- ^ a b electronicdesign.com , Electronic Design Magazine, artículo de 1 página sobre Charlieplexing para datos de entrada
- ^ "Tucoplexing: un nuevo Charliplex para botones e interruptores" Artículo en Hackaday
- ^ Artículo de "Gugaplex" en Makezine
- ^ "Doce salidas PWM de un ATtiny85" Artículo sobre Technoblogy
- ^ "CÓMO CONSEGUIR LO QUE QUIERES" . www.kobakant.at . Consultado el 13 de noviembre de 2017 .