Digispark+TM1637

#include <TM1637Display.h>

// Пины для подключения TM1637
#define CLK 0
#define DIO 1

TM1637Display display(CLK, DIO);

// Список символов для отображения
const uint8_t SYMBOLS[][4] = {
  // 0000
  {SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F},
   
  // HELL
  {SEG_B | SEG_C | SEG_E | SEG_F | SEG_G,       // H
   SEG_A | SEG_D | SEG_E | SEG_F | SEG_G,       // E
   SEG_D | SEG_E | SEG_F,                       // L
   SEG_D | SEG_E | SEG_F},                      // L
   
  // 2025
  {SEG_A | SEG_B | SEG_D | SEG_E | SEG_G,       // 2
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // 0
   SEG_A | SEG_B | SEG_D | SEG_E | SEG_G,       // 2
   SEG_A | SEG_C | SEG_D | SEG_F | SEG_G},      // 5
   
  // ---- (черточки)
  {SEG_G, SEG_G, SEG_G, SEG_G},
  
  // ERR 
  {SEG_A | SEG_D | SEG_E | SEG_F | SEG_G,       // E
   SEG_E | SEG_G,                               // R
   SEG_E | SEG_G,                               // R
   0x00},                                       // пробел
   
  // 0101
  {SEG_B | SEG_C,                               // 1
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // 0
   SEG_B | SEG_C,                               // 1
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F}, // 0
   
  // NO
  {SEG_C | SEG_E | SEG_G,                       // N
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
   0x00,                                        // пробел
   0x00},                                       // пробел
   
  // 7777
  {SEG_A | SEG_B | SEG_C,                       // 7
   SEG_A | SEG_B | SEG_C,                       // 7
   SEG_A | SEG_B | SEG_C,                       // 7
   SEG_A | SEG_B | SEG_C},                      // 7
   
  // OEO
  {SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
   SEG_A | SEG_D | SEG_E | SEG_F | SEG_G,       // E
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // O
   0x00},                                       // пробел
   
  // --0-
  {SEG_G,                                       // -
   SEG_G,                                       // -
   SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F, // 0
   SEG_G}                                       // -
};

const int SYMBOLS_COUNT = sizeof(SYMBOLS) / sizeof(SYMBOLS[0]);

void setup() {
  display.setBrightness(7); // Яркость (0-7)
  randomSeed(analogRead(0)); // Инициализация генератора случайных чисел
}

void loop() {
  // Вариант 1: Случайный порядок
  int randomIndex = random(SYMBOLS_COUNT);
  display.setSegments(SYMBOLS[randomIndex]);
  
  // Вариант 2: Поочерёдный порядок (раскомментируйте для использования)
  /*
  static int currentIndex = 0;
  display.setSegments(SYMBOLS[currentIndex]);
  currentIndex = (currentIndex + 1) % SYMBOLS_COUNT;
  */
  
  delay(2000); // Задержка 2 секунды между сменой символов
}