Minipunto 2 - la holoclock (2 / 6 paso)

Paso 2: El algoritmo atenuación - modulación de ancho de pulso charliplexed

Como se mencionó anteriormente, quería tener los patrones de puntos diferentes para la transición de tiempo suavemente en lugar de mover de un tirón de un patrón a otro.

Ver el video de una demostración. En el middleis el nuevo reloj de minipunto, a la derecha es el minipunto más. Cuenta de cuánto mejor es uno nuevo.

(FYI la otra muestra en el fondo son mi indicador del superordenador Minicray y mi partícula Nebulon capturado que alimenta el Minicray en un campo de confinamiento magnético de antimateria. Ver aquí:
http://www.youtube.com/watch?v=bRupDulR4ME
para una demostración de la cámara de confinamiento de nebulon)

Si nos fijamos en el código, abra el archivo display.c. Nota hay cuatro arreglos de discos para asignar los valores de tris/puerto para iluminar cualquier matriz particular y dos arreglos de discos (uno más que el código de Microdot) para definir que LEDs deben estar iluminadas para ningún patrón particular de LEDs.
por ejemplo:

Para luz LED 1 por ejemplo, es necesario establecer la TRISA:B de los registros TRIS = 0xef:0xfd y Puerto PORTA:B de registros = 0x10:0x00 y así sucesivamente. Si escribes los valores de tris en binario te cuenta que en cualquier momento, hay sólo dos salidas habilitadas. Los otros son todo listo para el Tri-state (por lo tanto registro TRIS). Esto es fundamental para charlieplexing. También le cuenta que una salida siempre es un '1' lógico y el otro es siempre un lógico '0'... el sentido de que se enciende LED que sea entre estas que dos líneas de salida.
El último valor en los arreglos de discos de Puerto/tris es un valor nulo para encender ningún LED en todo.

En el Microdot, la función update_display un ciclo continuamente a través de otra variedad (nLeds[]) para ver si ese LED particular estaba iluminado. Si lo era, los valores correspondientes de tris/puerto fueron set y el LED está encendido por un período de tiempo. De lo contrario el valor null fue enviado a puerto y el TRIS fotos registra y ningún LED se iluminó por un período de tiempo. Cuando hecho rápido bastante esto dio un patrón. El resto del programa sería leer los valores RTC y conforman un bonito patrón aleatorio en esa matriz... periódicamente y así cambia la pantalla.

Para realizar una función de regulación, esto se extendió un poco para que después de los 30 LEDs que bien iluminado (o no) entonces períodos extras se gastarían en enviar valores nulos si la pantalla era atenuada... para el brillo completo entonces no se gastarían períodos extras. Cuando repite si había muchos períodos null a los LED iluminados, la pantalla sería débil. En efecto se trata de modulación de anchura de pulso multiplexado... o porque el hardware está configurado en un arreglo de charlieplex, entonces charlieplexed pulso modulación de anchura.

El segundo diagrama siguiente muestra la configuración básica para ello. Yo llamo a esto un marco de análisis. Los primeros 30 períodos a la estructura se utilizan para ir a través de los LEDs... y un número variable de períodos adicionales define cómo tenue será la pantalla. Este ciclo se repite. Más periodos nulas significa menos tiempo para un LED que en cada fotograma (porque aumentó el número de períodos). Tenga en cuenta que el eje vertical no significa nivel de voltaje. El estado actual de las clavijas a los LEDs varía según su posición en la matriz de charlieplex... en el diagrama sólo significa encendido o apagado.

Esto también significó la longitud total de la estructura en el tiempo también aumentada, disminuyendo la frecuencia de actualización. Cuando los LED dimmer, empiezan a parpadear en otras palabras. Así que este método es útil sólo en una medida. Para el reloj, estaba bien.

Se llama a una función intermittantly que lee el convertidor A/D en la imagen y establece este nivel de brillo. Si usted lee el código, también comprueba para ver si el LED más cercano a la LDR está en y no hace ningún ajuste nivel si es así, esto detiene la pantalla inesperadamente brighting cuando cambia el patrón.

Luego la Cruz se descolora la función.

Artículos Relacionados

Microdot - reloj de pulsera reloj LED modelo

Microdot - reloj de pulsera reloj LED modelo

producción otro RGB Sunset producciones!Este proyecto es un circuito para hacer una versión de tamaño reloj de muñeca de mi reloj minipunto:con unas cuantas funciones más más aplicables a un dispositivo portátil. Un montón de ayuda y sugerencias prov
Charlieplexing LEDs - la teoría de la

Charlieplexing LEDs - la teoría de la

este instructable es menos a construir su propio proyecto y más una descripción de la teoría de charlieplexing. Es conveniente para las personas con los fundamentos de la electrónica, pero no completa principiantes. Que he escrito en respuesta a las