Visualización de caracteres OSL641501-ARA LED de matriz de puntos

Estoy aprendiendo a controlar este LED de matriz de puntos ( hoja de datos OSL641501-ARA ). He visto algunos tutoriales sobre cómo controlarlo con 2 registros de desplazamiento. El problema es que estoy totalmente confundido con el concepto de mostrar un personaje en él.

Me parece que mientras apague un punto por

  1. configurando tanto el pin de columna correspondiente como el pin de fila a 0V,
  2. o, configurando el pasador de columna y el pasador de fila correspondientes a 3V

El resultado inesperado es que se efectúa una línea completa de puntos.

Por favor, dime cuál es el truco para eso. ¿Cómo puedo evitar encender o apagar "accidentalmente" otros puntos?

Respuestas (2)

El "truco" se llama "Persistencia de la Visión".

La idea es que nunca controle solo un punto, sino que controle toda la matriz, pero haciéndolo en una fila o en una columna a la vez.

Usted nomina una dirección para que sea la dirección "común"; en este ejemplo, la tomaremos como la FILA. También supondremos que la FILA debe configurarse en 0 V y la COLUMNA debe configurarse en 3 V para encender un LED.

Luego, debe escanear cada fila, configurar esa fila en 0 V y todas las demás filas en 3 V, de modo que solo los LED en esa fila puedan encenderse. Luego enciende los LED para esa fila (conduciendo los pines COLUMN a 3V). Luego los vuelve a apagar y pasa a la siguiente fila. Repita hasta que haya hecho todas las filas, luego vuelva al principio.

Si lo hace lo suficientemente rápido, parece que tiene todas las filas funcionando a la vez, pero cada fila tiene su propio conjunto de LED encendidos.

Normalmente mantendría una matriz de estados de LED en su programa (también llamado "Búfer de marco"), y dibujar un carácter es una cuestión de configurar los diferentes estados de LED en esa matriz. Su rutina de visualización luego usa esos estados de LED para determinar qué LED encender para cualquier fila específica.

¡¡Gracias!! ¡La explicación "hacerlo en una fila o en una columna a la vez" realmente ayuda! Ahora logro controlarlo configurando siempre solo una FILA a 0V con otras a 3V, y cambiando el número de FILA y el voltaje del pin de COLUMNAS, se escaneó y dibujó un carácter. Sin embargo, todavía hay un problema. Se ve muy entrecortado y si lo hago demasiado rápido, se saltan algunos puntos.
Todo depende de los retrasos y el orden. Tienes que hacerlo bien. 1: establecer fila, 2: establecer columna, 3: retraso, 4: borrar columna, 5: repetir. El paso 4 es importante para reducir las imágenes fantasma. El retraso en el paso 3 es lo que determina el brillo y también el parpadeo.
¡Muchas gracias! Finalmente lo recableé y se ve muy bien ahora. Para evitar transferir la matriz de caracteres de puntos, la conecté de modo que un registro de desplazamiento controle todos los ánodos y el otro controle todos los cátodos. Pero ahora cada uno de ellos está cableado para controlar solo un lado del LED por separado. El retraso se reduce y se ve mucho mejor.

En primer lugar, construyes tu personaje en términos de los puntos que deseas seleccionar. el truco es que muestras tu personaje dividiendo sus componentes en filas o columnas. en aras de la simplicidad, lo divides en columnas. Para cada columna de tu personaje, activas esa columna y activas solo las filas que se supone que deben estar activadas solo para esa columna particular. Entonces verás la primera columna de tu personaje. Ahora haces lo mismo para la siguiente columna de tu personaje, pero la primera columna que mostraste desaparecerá. pero no te preocupes Muestras cada columna de tu personaje una por una. Ahora, el truco para mostrar el personaje completo es aumentar la velocidad de tu controlador para cambiar entre cada columna más rápido. Recuerde que sus ojos no pueden ver frecuencias superiores a 30 Hz. Entonces, si barre cada una de sus columnas por 8 * 30 Hz (multiplica por 8 ya que tiene 8 columnas, 30 hz está en el medio) = 240 Hz, entonces debería ver el carácter completo en su matriz. A mayor frecuencia vas mejor se mostrará el personaje. pero no desea aumentarlo demasiado, de lo contrario, la intensidad de la luz puede disminuir. Por lo tanto, el tiempo mínimo entre el inicio de la primera columna y el inicio de la segunda columna debe ser de 1/240 s.

¡Gracias! Ajusto el intervalo y finalmente lo establezco en aproximadamente 0,038 s. ¡Y se ve bien!