Paso 1: Teoría de operación
Suponiendo que una comprensión de este fondo, aquí está el esquema con el pinout de la Radio Shack común cátodo SSD parte 276-0075. Observar detenidamente cómo las doce conexiones SSD LED (ocho ánodos y los cátodos comunes cuatro) están conectadas a las líneas de nueve seleccionar (Sel). Por ejemplo, tenga en cuenta que el cátodo común de SSD0 (los"" posición de la pantalla de cuatro dígitos) y los ánodos del segmento "a" de los otros tres SSDs comparte línea select Sel0.
¿Qué Estados tienen las líneas de Sel que en causar el dígito "1" aparezca en solo SSD0? Sólo los segmentos "b" y "c" son iluminadas, por lo que Sel2 y Sel3 deben ser alta (H) con baja Sel1 Sel4, Sel5, Sel6, Sel7 y Sel8 (L). Cátodo común del SSD0 está conectado a Sel0, Sel0 también debe ser L. En estas condiciones, un "1" se mostrará en efecto en SSD0.
Charlieplexing no es sin complicaciones. En este punto, observe que los cátodos de SSD2 y SSD3 H porque ellos también están conectados a Sel2 y Sel3 respectivamente. Ánodos del segmento "a" LED están conectados a Sel0 que actualmente es L. Así, el segmento "a" LED son sesgo en invertida. Aunque esta condición no causa a iluminar, es importante entender que los LEDs están sometidos a (y deben ser clasificados por) el máximo posible voltaje reverso. La H de Arduino es + 5V y es también la tensión inversa máxima valorar dado para el 276-0075.
Pero sigue siendo un problema. En lugar de estar a oscuras, SSD1 también mostrará "1"! Se trata de un acertijo. Sel1 debe ser L para guardar el segmento "a" de ser iluminada pero debido Sel1 también está conectado con el cátodo común de SSD1, debe ser H o tanto SSD0 y SSD1 estará activo.
Claramente un pin de selección no puede ser L y H al mismo tiempo. Sin embargo, si nos desconecte Sel1 obtenemos el resultado deseado. Una línea desconectada ni H ni L – es en un tercer Estado "circuito abierto" que hace que todos los LEDs conectados que se fuera. Un desconectado Sel1 no suministra ninguna corriente al segmento "a" ánodos y también sin vía de retorno a la tierra para el cátodo común de SSD1. ¡ Excelente! ¿Cómo nos desconectamos pernos de forma selectiva?
Aquí es donde el Arduino facilita esto. Cada pin del Arduino puede ser programado como una salida o una entrada. Como entrada, puede ni fuente ni fregadero actual. No estamos utilizando el pin para su entrada; simplemente por el hecho de que un pin de entrada no es un pin de salida y por lo tanto está "desconectado" de la matriz de LED. Esta dependencia de tristate pins es un sello de charlieplexing. Por lo que las reglas de programación son sencillas: ajuste los pernos seleccionados H para los segmentos que se muestre, establecer el segmento restante seleccionadas pines como entradas y configurar el SSD seleccione pin L.