Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сборка 7×7×7 LED-куба: пошаговый проект на Arduino

Компоненты и расходные материалы

Компонент Количество
Arduino UNO 1
Сдвиговый регистр 74HC574 (8-битный D-триггер) 7
Декодер/демультиплексор 74HC138 (3-в-8) 1
Резистор 220 Ом 49
Кварцевый резонатор 16 МГц 1

Необходимые инструменты

О проекте

Автор давно хотел построить свой LED-куб и делится подробной инструкцией. Проект реализует 7×7×7 куб (343 светодиода) с мультиплексированием для управления каждым слоем отдельно.

Шаг 1: Создание LED-матриц

Сначала собираются семь матриц 7×7. Аноды и катоды распаяны по строкам и столбцах — в итоге у каждой матрицы 7 анодов и 7 катодов.

Шаг 2: Аппаратная часть управления

Это самый сложный этап. Используются:

Принцип: мультиплексирование по слоям. Загружаем данные в триггеры для одного слоя, включаем его на короткое время, переходим к следующему. Благодаря инерции зрения создаётся впечатление статичного 3D-образа.

Автор собрал схему на отдельной плате, используя standalone ATmega328P (без платы Arduino). Приведена принципиальная схема.

Шаг 3: Механическая конструкция

Каркас сделан из деревенных заготовок. Сiete матриц устанавливаются одна за другой, катоды каждого слоя соединены с соответствующим транзистором.

Шаг 4: Программирование

Код реализует базовые анимации. Приведён пример простейшей анимации «по слоям» с ускорением. С комментариями на английском, логика понятна: загрузка данных во все слои, циклическое включение каждого со задержкой.

Исходный код (фрагмент)

// Базовая анимация для LED-куба
int temp = 50, cont = 0;

void load_all(void) {
  // Последовательная активация 8 слоев через пины A0-A2 (3 бита -> 74HC138)
  for (int layer = 0; layer < 8; layer++) {
    digitalWrite(A2, layer & 4);
    digitalWrite(A1, layer & 2);
    digitalWrite(A0, layer & 1);
    delay(1);
  }
}

void scrolling(int t) {
  PORTB = 0x00;
  for (int pin = 7; pin <= 13; pin++) {
    digitalWrite(pin, HIGH);
    delay(t);
    digitalWrite(pin, LOW);
  }
}

void one(void) {
  PORTD = 0xff; // все 8 бит PORTD = 1 (аноды)
  load_all();
  while (1) {
    scrolling(temp);
    temp -= 2;
    if (temp <= 0) {
      temp = 1;
      cont++;
      if (cont == 1000) { cont = 0; temp = 100; }
    }
  }
}

void setup() {
  DDRD = 0xff; // PORTD - выходы (аноды)
  DDRB = 0xff; // PORTB - выходы (управление слоями)
  DDRC = 0xff; // PORTC - выходы
}

void loop() {
  one();
}

Схемы и файлы

Производственный процесс

  1. Кубик Рубика: от изобретения к современной головоломке
  2. Светодиоды (LED): от зарождения к 100-летнему ресурсу
  3. Создание рулетки на 37 светодиодов с Arduino Nano
  4. Проект Arduino: мелодия Coffin Dance — сборка и воспроизведение вирусного трека
  5. Сборка потрясающего 5x5x5 LED-куба на Arduino Mega
  6. Вторая жизнь старых пультов: DIY умные устройства на Arduino
  7. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  8. Звукоактивируемый светодиодный дисплей 8 LED на Arduino
  9. Пошаговое руководство: сборка умного четырёхногого робота на Arduino
  10. Arduino RGB-микшер цветов: Простой проект для начинающих