Tabla de contenido:

Módulos de pantalla LED Arduino y TM1638: 11 pasos
Módulos de pantalla LED Arduino y TM1638: 11 pasos

Video: Módulos de pantalla LED Arduino y TM1638: 11 pasos

Video: Módulos de pantalla LED Arduino y TM1638: 11 pasos
Video: Tutorial : TM1638 Led and Key module for arduino 2024, Mes de julio
Anonim
Módulos de pantalla LED Arduino y TM1638
Módulos de pantalla LED Arduino y TM1638

Si necesita una manera rápida y fácil de agregar alguna entrada y salida de usuario a un proyecto, estos módulos de visualización son interesantes y divertidos.

Contienen ocho dígitos LED rojos de 7 segmentos, ocho LED rojos / verdes y también ocho botones para la entrada del usuario. Las unidades también se pueden conectar en cadena, lo que permite hasta cinco a la vez, y se incluye un cable corto con cada módulo, así como algunos espaciadores y pernos cortos, como se muestra en la imagen.

Paso 1:

Imagen
Imagen

Los espaciadores son lo suficientemente largos para elevar la PCB por encima de una superficie, sin embargo, para montar las placas en cualquier lugar útil, necesitaría unos más largos. También es posible que desee quitar los enchufes IDC si desea montar el módulo cerca de la superficie de un panel. Esta sería una simple tarea de desoldar, ya que son enchufes de orificio pasante.

Paso 2:

Imagen
Imagen

La placa está controlada por un TM1638 IC.

Este es un LED y un controlador de interfaz IC de “Titan Micro Electronics”. También puede comprar estos circuitos integrados en PMD Way. También puede descargar la hoja de datos para obtener más detalles.

Paso 3: Primeros pasos - Hardware

Introducción: hardware
Introducción: hardware

Hardware: la conexión a una placa compatible con Arduino (u otra MCU) es bastante simple. Los pines se muestran en la parte posterior de la PCB y coinciden con la conexión del cable plano. Si miras el extremo del cable como tal.

El orificio superior derecho es el pin uno, el superior izquierdo es el pin dos, el inferior derecho nueve y el inferior izquierdo diez. Por lo tanto, los pines son:

  1. Vcc (5 V)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. no conectado.

Para el uso de Arduino, los pines 1 ~ 4 son el mínimo necesario para usar un módulo. Cada módulo adicional requerirá otro pin digital conectado a STB2, STB3, etc. Más sobre esto más adelante. Tenga en cuenta que cada módulo configurado en brillo completo con cada LED encendido consume 127 mA, por lo que sería aconsejable usar energía externa con más de un módulo y otras conexiones con placas Arduino.

Paso 4: Introducción - Software

Software: descargue e instale la biblioteca T1638 desde aquí. Gracias y felicitaciones a rjbatista de gmail punto com por la biblioteca. Inicializar módulos en el croquis es simple. Incluya la biblioteca con:

#incluir

luego use uno de los siguientes para cada módulo:

Módulo TM1638 (x, y, z);

x es el pin digital Arduino conectado al pin 4 del cable del módulo, y es el pin digital Arduino conectado al pin 3 del cable del módulo, yz es el pin estroboscópico. Entonces, si tuviera un módulo con datos, reloj y luz estroboscópica conectados a los pines 8, 7 y 6, usaría:

Módulo TM1638 (8, 7, 6);

Si tuviera dos módulos, con la luz estroboscópica del módulo uno conectada a Arduino digital 6 y la luz estroboscópica del módulo dos conectada a la digital 5, usaría:

Módulo TM1638 (8, 7, 6); módulo TM1638 (8, 7, 5);

y así sucesivamente para más módulos. Ahora para controlar la pantalla …

Paso 5: los LED bicolores

Los LED bicolores
Los LED bicolores

Controlar los LED rojo / verde es fácil. Como referencia, están numerados del cero al siete de izquierda a derecha. Para encender o apagar un solo LED, use lo siguiente:

module.setLED (TM1638_COLOR_RED, x); // establece el número de LED x en redmodule.setLED (TM1638_COLOR_GREEN, x); // establece el número de LED x en módulo verde.setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN, 0); // establece el número de LED x en rojo y verde

Usar el método anterior puede ser simple, es algo ineficaz. Una mejor manera es abordar todos los LED en una declaración. Para hacer esto enviamos dos bytes de datos en hexadecimal a la pantalla. El MSB (byte más significativo) consta de ocho bits, cada uno de los cuales representa un LED verde encendido (1) o apagado (0). El LSB (byte menos significativo) representa los LED rojos.

Una forma fácil de determinar el valor hexadecimal para controlar los LED es simple, imagina que tienes una fila de LED: los primeros ocho son verdes y los segundos ocho son rojos. Establezca cada dígito en 1 para encendido y 0 para apagado. Convierta los dos números binarios a hexadecimal y use esta función:

module.setLEDs (0xgreenred);

Donde verde es el número hexadecimal de los LED verdes y rojo es el número hexadecimal de los LED rojos. Por ejemplo, para encender los primeros tres LED en rojo y los últimos tres en verde, la representación binaria será:

00000111 11100000 que en hexadecimal es E007.

Entonces usaríamos:

module.setLEDs (0xE007);

que produce la imagen como se muestra arriba.

Paso 6: la pantalla de 7 segmentos

Para borrar la pantalla numérica (pero no los LED a continuación), simplemente use:

module.clearDisplay ();

o para encender cada segmento Y todos los LED, use lo siguiente

module.setupDisplay (verdadero, 7); // donde 7 es la intensidad (de 0 ~ 7)

Para mostrar números decimales, use la función:

module.setDisplayToDecNumber (a, b, falso);

donde a es el número entero, b es la posición del punto decimal (0 para ninguno, 1 para el dígito 8, 2, para el dígito 7, 4 para el dígito 6, 8 para el dígito 4, etc.) y el último parámetro (verdadero / falso) activa o desactiva los ceros iniciales. El siguiente esquema demuestra el uso de esta función:

#include // define un módulo en el pin de datos 8, el pin de reloj 9 y el pin de luz estroboscópica 7 Módulo TM1638 (8, 9, 7); unsigned long a = 1; void setup () {} void loop () {for (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 4, false); retraso (1); } para (a = 10000; a <11000; a ++) {module.setDisplayToDecNumber (a, 0, true); retraso (1); }}

… Con los resultados mostrados en el video.

Paso 7:

Image
Image

Una de las características más interesantes es la capacidad de desplazarse por el texto en una o más pantallas. Para hacerlo, realmente no necesita una explicación como el boceto de demostración incluido:

tm_1638_scrolling_modules_example.pde

incluido con la biblioteca TM1638 se sigue fácilmente. Simplemente inserte su texto en la cadena de caracteres const , asegúrese de que los módulos estén conectados de acuerdo con la definición del módulo al comienzo del boceto y listo. Para ver los caracteres disponibles, visite la página de funciones. Tenga en cuenta que la pantalla tiene solo siete segmentos, por lo que es posible que algunos caracteres no se vean perfectos, pero en contexto le darán una buena idea: vea el video en este paso.

Paso 8:

Por último, también puede abordar individualmente cada segmento de cada dígito. Considere el contenido de esta matriz:

valores de bytes = {1, 2, 4, 8, 16, 32, 64, 128};

cada elemento representa los dígitos 1 ~ 8. El valor de cada elemento determina qué segmento del dígito se activa. Para los segmentos a ~ f, dp, los valores son 1, 2, 4, 6, 16, 32, 64, 128. Entonces, los resultados de usar la matriz anterior en la siguiente función:

module.setDisplay (valores);

será por la imagen.

Paso 9:

Imagen
Imagen

Naturalmente, puede combinar valores para cada dígito para crear sus propios caracteres, símbolos, etc. Por ejemplo, usando los siguientes valores:

valores de bytes = {99, 99, 99, 99, 99, 99, 99, 99};

Creamos según la imagen de este paso.

Paso 10: los botones

Los valores de los botones se devuelven como un valor de byte de la función:

module.getButtons ();

Como hay ocho botones, cada uno representa un bit de un número binario que se devuelve como un byte. El botón de la izquierda devuelve un decimal uno, y el de la derecha devuelve 128. También puede devolver pulsaciones simultáneas, por lo que pulsar los botones uno y ocho devuelve 129. Considere el siguiente esquema, que devuelve los valores de las pulsaciones de botones en forma decimal, luego muestra el valor:

#include // define un módulo en el pin de datos 8, el pin de reloj 9 y el pin de luz estroboscópica 7 Módulo TM1638 (8, 9, 7); botones de bytes; configuración vacía () {} bucle vacío () {botones = módulo.getButtons (); module.setDisplayToDecNumber (botones, 0, falso); }

y los resultados en el video.

Estos tableros de anuncios son útiles y, con suerte, encuentran un hogar en sus proyectos. Esta publicación presentada por pmdway.com, que ofrece todo para los fabricantes y entusiastas de la electrónica, con entrega gratuita en todo el mundo.

Recomendado: