Controlador de placa de exibição de token baseado em Arduino

Controlador de tablero de visualización de tokens basado en Arduino

Debes haber notado tableros de exhibición de fichas en muchos lugares, como tiendas de alimentos, hospitales, bancos, diversos restaurantes de comida para llevar, etc. Los sistemas de visualización de fichas se utilizan para mostrar números de fichas. Dado que estos tableros de visualización muestran información numérica, se diseñan fácilmente utilizando LED de 7 segmentos. Los modelos comerciales utilizan LED grandes de 7 segmentos para mostrar los números de las fichas. Incluso es posible crear un prototipo de un modelo utilizando Arduino.

En este proyecto, diseñamos un sistema de visualización de tokens utilizando la popular placa de creación de prototipos: Arduino y LED de 7 segmentos. Un tablero de exhibición de fichas generalmente requiere dos o tres unidades de 7 segmentos. Para multiplexar estas unidades, en este proyecto se utiliza IC MAX7219. El Arduino controla la configuración del número de token. Este sistema está diseñado para inicializar los números de token a cero al inicio. El usuario puede aumentar o disminuir la cantidad de tokens usando dos botones proporcionados como interfaz de usuario. El número de token nunca puede ser negativo, por lo que el contador de token nunca puede disminuir por debajo de cero.

Componentes necesarios

  1. Arduino UNO x1
  2. 7 segmentos x3
  3. MAX7219 CI x1
  4. Pulsar botones x2
  5. Placa de pruebas x1
  6. Cables de puente o cables de conexión.

Requisitos previos

  1. Interfaz de botones con Arduino
  2. Multiplexación de 7 segmentos usando MAX7219

Conexiones de circuito

Aquí diseñamos un tablero de visualización de tokens utilizando el módulo controlador de 7 segmentos basado en IC MAX7219. MAX7219 es un controlador de pantalla LED de cátodo común de 8 dígitos. Permite interconectar un microcontrolador con visualizadores de 7 segmentos de hasta 8 dígitos. Aquí utilizamos sólo 3 dígitos de módulo. En el módulo, los pines de datos de los 7 segmentos están conectados a los pines SEG A a SEG G y DP del MAX7219. Los terminales de cátodo común de los segmentos están conectados a los pines DIG0 a DIG7 del MAX7219. Los pines 4 y 9 del IC están conectados a tierra y el pin 19 está conectado al terminal de 5V. El pin 18 del MAX7219 también está conectado a 5 V CC a través de una resistencia adecuada. Los pines DIN, LOAD y CLK del IC se pueden conectar a los pines de E/S digitales del Arduino.

Ejemplo de un módulo de 7 segmentos basado en IC MAX7219.

MAX7219 se comunica con Arduino mediante una interfaz compatible con SPI. Los pines DIN, LOAD y CLK del IC están conectados a los pines 12, 10 y 11 del Arduino UNO. El módulo MAX7219 se suministra con 5V DC y conexión a tierra propia de Arduino.

Para interfaz de usuario con sistema de visualización de tokens, interfaz de 2 botones con Arduino. Estos botones están conectados a los pines 7 y 8 del Arduino UNO. Estos pines de Arduino se tiran internamente. El botón conectado al pin 7 se usa para aumentar el número de token, mientras que el botón conectado al pin 8 se usa para disminuir el número de token.

Diagrama de circuito

Diagrama de circuito del sistema de visualización de tokens basado en Arduino.

Bosquejo de Arduino

Cómo funciona el circuito

Hay 3 LED de 7 segmentos conectados al IC MAX7219. Estos 7 segmentos muestran el número del token como un número entero hasta cientos de lugares. IC MAX7219 controla los dígitos que se muestran en los 7 segmentos. Para hacer esto, se necesitan comandos de Arduino a través de la interfaz SPI. Hay dos botones conectados al Arduino. El Arduino está programado de tal manera que al presionar el botón conectado al pin 7 aumenta en uno el número del token. Cuando se presiona el botón conectado al pin 8, el número del token disminuye en uno. El cambio en el número de token se refleja inmediatamente en los 7 segmentos.

Código

El boceto de Arduino comienza importando la biblioteca Arduino SPI. Las variables globales se definen para asignar números de pines conectados a los pines DIN, CLK y LOAD de IC MAX7219. Se define una variable de tipo matriz para almacenar comandos de 16 bits para MAX7219. Se declara una variable para almacenar el valor del número de token. El número de token es un entero sin signo y se inicializa en 0.

Se almacena una tabla de caracteres en la memoria flash del Arduino UNO utilizando la construcción PROGMEM. Esta tabla contiene los bytes que se deben escribir en los segmentos de LED para mostrar los dígitos del 0 al 9.

Una función spiTransfer se define como la función shiftOut para transferir datos de 16 bits al MAX7219 IC. Cada dato de 16 bits contiene dos bytes, el primer byte es la dirección del registro MAX7219 y el segundo byte son los datos que se escribirán en un registro seleccionado. Ambos bytes se pasan como argumentos a esta función definida por el usuario.

Se define una función clearDisplay, en la que la función spiTransfer se utiliza para escribir 0x00 en todos los registros de dígitos, borrando todos los dígitos. Se define una función de apagado, que utiliza la función spiTransfer para escribir datos en el registro de modo de apagado MAX7219.

Se define una función init_7seg para inicializar la vista. En la función, primero, los pines MOSI, SCLK y CS se configuran para salida digital. El pin CS está configurado en ALTO para seleccionar MAX7219 en el bus SPI. Se transfiere un valor de 0x00 al registro de prueba de pantalla (dirección de registro 15 o 0x0F) usando la función spiTransfer para configurar MAX7219 en modo normal. Se transfiere un valor de 0x07 al registro de límite de escaneo (dirección de registro 11 o 0x0B), permitiendo los 8 dígitos. Se transfiere un valor de 0x00 al registro del modo de decodificación (dirección de registro 9 o 0x09) para seleccionar sin decodificación para todos los dígitos.

Se define una función setChar que escribe un valor en un registro de dígitos MAX7219. Tanto el valor como el dígito se definen como parámetros de la función. En esta función primero se validan los datos de los números de dígitos y el valor pasado. El valor verificado se pasa a un registro de dígitos determinado utilizando la función spiTransfer.

En la función de configuración, se llaman las funciones init_7seg y Shutdown(false). Se llama a la función spiTransfer(10, 8) para establecer la intensidad de la visualización. La pantalla se borra llamando a la función clearDisplay. Los pines Arduino conectados a los botones se definen como entrada digital mediante la función pinMode.

Se define una función displayToken para recuperar los dígitos individuales del número de token y mostrarlos en el dígito de 7 segmentos respectivo usando la función setChar.

En la función de bucle, Arduino prueba la entrada, es decir, un BAJA lógica en este caso, de los botones conectados a los pines 7 y 8. Si hay entrada en el pin 7, aumenta el número de token en uno y muestra el valor actualizado. número. número de token realizando una llamada a la función displayToken. Si hay entrada en el pin 8, disminuye el número de token en uno y muestra el número de token actualizado realizando una llamada a la función displayToken. De lo contrario, el número del token permanece sin cambios y se actualiza en la pantalla, realizando nuevamente una llamada a la función displayToken. La función de bucle continúa iterando constantemente, buscando actualizaciones del número de token del usuario y actualizando repetidamente el número de token para los 7 subprocesos.

Resultados

Vídeo de demostración

(tagsToTranslate)Arduino

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.