// Importa la librería para el display TM1637
#include <TM1637Display.h>
// Define los pines de conexión para CLK y DIO
const int CLK = 2;
const int DIO = 3;
// Define un tiempo de demora para las pruebas
#define TEST_DELAY 2000
// Define distintas configuraciones de segmentos para formar las letras de "HOLA"
// Estas constantes representan qué segmentos del display de 7 segmentos deben estar encendidos para representar cada letra.
const uint8_t HOLA[] = {
SEG_F | SEG_E | SEG_B | SEG_C | SEG_G, // H
SEG_A | SEG_F | SEG_E | SEG_D | SEG_C | SEG_B, // o
SEG_D | SEG_E | SEG_F, // L
SEG_A | SEG_F | SEG_E | SEG_G | SEG_B | SEG_C // A
};
// Define variantes del texto "HOLA" con diferentes configuraciones de segmentos.
const uint8_t HOLAA[] = {
SEG_F | SEG_E | SEG_C | SEG_G, // h
SEG_E | SEG_D | SEG_C | SEG_G, // o
SEG_E | SEG_F, // L
SEG_A | SEG_D | SEG_E | SEG_G | SEG_B | SEG_C // a
};
const uint8_t HOLAAA[] = {
SEG_F | SEG_E | SEG_B | SEG_C | SEG_G, // H
SEG_E | SEG_D | SEG_C | SEG_G, // o
SEG_E | SEG_F, // L
SEG_A | SEG_D | SEG_E | SEG_G | SEG_B | SEG_C // a
};
const uint8_t HOLAAAA[] = {
SEG_F | SEG_E | SEG_B | SEG_C | SEG_G, // H
SEG_E | SEG_D | SEG_C | SEG_G, // o
SEG_E | SEG_F, // L
SEG_A | SEG_F | SEG_E | SEG_G | SEG_B | SEG_C // A
};
// Crea una instancia del objeto TM1637Display llamada "display"
TM1637Display display(CLK, DIO);
// Variables para el control del tiempo y del patrón actual
unsigned long lastChangeTime = 0; // Variable to store the last time the pattern changed
int currentPattern = 0; // Variable to keep track of the current pattern index
const int patternCount = 4; // Total number of patterns
void setup() {
// Establece el brillo del display (0x00 a 0x07)
display.setBrightness(0x0f); // Set display brightness (0x00 to 0x07)
}
void loop() {
// Obtiene el tiempo actual
unsigned long currentTime = millis();
// Verifica si ha pasado 1 segundo desde la última vez que cambió el patrón
if (currentTime - lastChangeTime >= 1000) {
lastChangeTime = currentTime; // Actualiza el último tiempo de cambio
currentPattern = (currentPattern + 1) % patternCount; //// Rota al siguiente patrón
}
// Muestra el patrón actual en el display
switch (currentPattern) {
case 0:
display.setSegments(HOLA);
break;
case 1:
display.setSegments(HOLAA);
break;
case 2:
display.setSegments(HOLAAA);
break;
case 3:
display.setSegments(HOLAAAA);
break;
}
}