Display de 7 segmentos TM1637 Arduino
Etiquetas:

El módulo Arduino TM1637 (pantalla de 4 dígitos de 7 segmentos) permite obtener información de sensores y dispositivos o construir un reloj completo con termómetro y despertador basado en el módulo. Veamos cómo conectar un display de 4 dígitos y siete segmentos basado en el controlador TM1637 con programas de ejemplo para enviar información al display, incluyendo un sensor de luz analógico o una fotorresistencia.




Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • módulo display TM1637;
  • cables de conexion;
  • libreria TM1637Display.h

Módulo de pantalla TM1637 pinout, datasheet

Display TM1637 datasheet, pinout
Display de 7 segmentos TM1637 datasheet, pinout

Características 4 digit display TM1637:

  • Tensión de alimentación: 3,3 – 5 V
  • Consumo de corriente 5 v: 30mA (típica), 80mA (max)
  • Dimensiones: 42mm x 24mm x 12mm

El módulo tiene la construcción más sencilla posible y se basa en el controlador TM1637 con una interfaz de bus de dos hilos. La pantalla 4 digitos TM1637 de cuatro dígitos no es compatible con el protocolo i2c estándar porque el módulo no tiene dirección de esclavo. Los fabricantes ofrecen modelos en blanco, rojo, azul y verde para el microcontrolador Arduino; los tamaños de las pantallas de siete segmentos son de 0,36 o 0,56 pulgadas.

Conectar display de 7 segmentos TM1637 Arduino

Conexión display TM1637 Arduino
Conexión display de 7 segmentos TM1637 Arduino

El módulo TM1637 se conecta al microcontrolador con cuatro pines – dos cables son responsables de alimentar el dispositivo (5V y GND) y los otros dos pines (CLK y DIO) se conectarán a cualquier puerto digital de la placa. Para trabajar con el indicador TM1637 de cuatro dígitos necesitará instalar la librería TM1637Display.h que le permite mostrar no sólo números y variables sino también algunas letras del alfabeto latino en el indicador.

Programa Arduino para módulo display TM1637



#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

const uint8_t tire[] = {
  SEG_G // -
};

const uint8_t C[] = {
  SEG_A | SEG_F | SEG_E | SEG_D // C
};

const uint8_t DONE[] = {
  SEG_B | SEG_C | SEG_D | SEG_E | SEG_G, // d
  SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
  SEG_C | SEG_E | SEG_G, // n
  SEG_A | SEG_D | SEG_E | SEG_F | SEG_G // E
};

void setup() {
  display.setBrightness(4); // luminosité de 0 à 7
  display.clear();
  
  display.setSegments(tire, 1, 0); // -___
  delay(200);
  display.setSegments(tire, 1, 1); // _-__
  delay(200);
  display.setSegments(tire, 1, 2); // __-_
  delay(200);
  display.setSegments(tire, 1, 3); // ___-
  delay(200);
  display.clear();
  display.setSegments(DONE, 4, 0); // dOnE
  delay(500);
  display.clear();
}

void loop() {
  display.showNumberDec(1, true, 1, 0); // 1___
  delay(500);
  display.showNumberDec(2, true, 1, 1); // 12__
  delay(500);
  display.showNumberDec(3, true, 1, 2); // 123_
  delay(500);
  display.showNumberDec(4, true, 1, 3); // 1234
  delay(500);
  display.clear();
  
  display.showNumberDec(00, true, 2, 1); // _00_
  delay(500);
  display.setSegments(C, 1, 3); // _00C
  delay(500);
  display.clear();
}

Explicación del código para módulo display TM1637:




  1. los caracteres y letras se crean en el programa con const uint8_t [] = {};
  2. las funciones y comandos de la librería TM1637Display.h para el indicador de 4 dígitos se detallan al final de este post.

En el siguiente programa se mostrará la variable c – los valores del sensor de luz (fotorresistencia), pero se puede utilizar cualquier otro sensor analógico para el microcontrolador Arduino. Con este ejemplo, el módulo mostrará un número de tres dígitos y el cuarto segmento mostrará la letra latina «c«, que se creó en el programa utilizando una matriz. Monta el circuito como se muestra en la imagen y descarga el programa en la placa.

Conexión TM1637 a Arduino con sensor de luz
Conexión TM1637 a un Arduino con un sensor de luz

Programa Arduino para mostrar variables en TM1637

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

int c;

const uint8_t c[] = {
  SEG_G | SEG_E | SEG_D // c
};

void setup() {
  Serial.begin(9600);
  pinMode(A1, INPUT);
  display.setBrightness(4); // luminosité de 0 à 7
  display.clear();
}

void loop() {
  c = analogRead(A1);
  Serial.println(c);
  display.showNumberDec(c, false, 3, 0);
  display.setSegments(c, 1, 3);
  delay(500);
}

Explicación del código para mostrar variables en TM1637:

  1. el código es para un número de tres dígitos, si la variable debe tener un valor de cuatro dígitos, cambie la línea display.showNumberDec(c, false, 4, 0); y no imprima el carácter «c».
Ejemplo de matriz para crear un símbolo
Ejemplo de matriz para crear un símbolo en la pantalla

Descripción comandos de la biblioteca TM1637Display.h

setBrightness(brightness, true/false) – la función se puede utilizar en cualquier parte del código y establece el brillo de la pantalla. Puede especificar el nivel de brightness de 0 (brillo más bajo) a 7 (brillo más alto). El segundo parámetro se utiliza para activar/desactivar la pantalla, falso significa que la pantalla está apagada.

clear() – comando para borrar la pantalla

setSegments(segments, length, position) esta función se utiliza para establecer segmentos individuales, donde segments es una matriz (creada al principio con const uint8_t). El argumento length especifica el número de caracteres de la matriz, para el montaje del termómetro en el TM1637 se utilizan dos caracteres – °C. position – especifica la posición a partir de la cual debe imprimirse el símbolo en la pantalla LED.

showNumberDec(number, leading_zeros, length, position), donde el primer argumento number es el número que se muestra en el indicador. El segundo argumento leading_zeros se utiliza para activar (true) o desactivar (false) los ceros a la izquierda. 10 sin ceros a la izquierda se imprimirá como __10, y con ceros a la izquierda como 0010. El tercer y cuarto argumento de la función son los mismos que en la función anterior.

showNumberDecEx(number, dots, leading_zeros, length, position) – esta función permite controlar los puntos de visualización. Se diferencia de la función showNumberDec sólo por el argumento dots. Para pantallas con dos puntos, debe especificar 0b01000000 para activar los dos puntos en la pantalla y 0b0000000000 para desactivarlos.

Conclusión. Display TM1637 con dos puntos en el centro es la solución más sencilla para crear un cronómetro o un reloj en tiempo real. El módulo en sí está formado por cuatro pantallas de siete segmentos, cada una de ellas compuesta por siete LED marcados con letras de la «a» a la «g», que se encienden independientemente unas de otras. No se necesitan resistencias adicionales para conectar la pantalla al Arduino Uno.

5/5 - (3 votos)

Puesto parece un boceto: Cómo conectar display de 7 segmentos TM1637 Arduino

  • Sensor de movimiento Arduino
    Como conectar sensor de movimiento Arduino
  • Cómo conectar un LED a Arduino Uno
    Conexión de LED con resistencia a Arduino Uno
  • Transistor mosfet Arduino
    Cómo conectar transistor mosfet Arduino
  • Reloj con WS2812B LEDs direccionable Arduino
    Reloj con WS2812B LEDs y Bluetooth Arduino

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *