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

Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld

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

Android-устройство 1
Резистор 220 Ом 16
Светодиоды (любые) 64
Arduino UNO 1
1Sheeld 1
Провода перемычки 20
Инструменты для пайки 1

О проекте

Это потрясающий 4x4x4 светодиодный куб, управляемый смартфоном через 1Sheeld и Arduino Uno. Музыка управляет визуализацией...

Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld
Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld
Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld
Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld

Как собрать светодиодный куб

Следуйте этому руководству для сборки куба. Вам понадобятся только шаги 3, 4 и 5. Требуются базовые навыки пайки.

https://www.instructables.com/id/LED-Cube-4x4x4/

Вам не понадобятся компоненты из этого руководства. Для списка необходимых деталей см. ниже.

Принцип работы

Прямое подключение проводов к анодам каждого светодиода нецелесообразно. Решение — разделить куб на 4 слоя по 16 светодиодов каждый.

Чтобы зажечь конкретный светодиод, подайте GND (-) на слой, содержащий этот светодиод, и 5V (+) на столбец, содержащий этот светодиод.

Подключение

После сборки куба у вас должно быть 16 выводов для управления столбцами и 4 вывода для управления слоями.

— Подключите каждый управляющий вывод столбца к резистору 220 Ом последовательно, другой конец резистора соедините с 1Sheeld, установленным на Arduino.

Я пробовал подключать провода напрямую к 1Sheeld и Arduino без резисторов — это работало, но не рекомендуется.

Управляющие выводы столбцов подключены по порядку к цифровым пинам 13–0 и аналоговым пинам A4 и A5 (см. схему).

Каждый пин управляет 4 светодиодами в столбце, поэтому столбцы можно подключать в любой комбинации.

— Подключите управляющие выводы слоев к аналоговым пинам A0, A1, A2 и A3.

Согласно коду, нижний слой — A0, следующий — A1, затем A2, верхний — A3 (см. схему).

— После подключения проводов к 1Sheeld и Arduino загрузите код и подключите смартфон к 1Sheeld.

Если вы не знакомы с 1Sheeld, начните с этого руководства.

Код

/* Этот код использует 1Sheeld и Arduino Uno для управления 4x4x4 светодиодной матрицей через микрофон смартфона.
 * Схема: 64 светодиода образуют куб 4x4x4, подключенный к 1Sheeld и Arduino
 * Управляющие выводы столбцов подключены к цифровым пинам 0–13 и аналоговым A4, A5
 * Управляющие выводы слоев подключены к аналоговым пинам A0–A3
 * Автор: Hassan Ibrahim */
#define CUSTOM_SETTINGS
#define INCLUDE_PUSH_BUTTON_SHIELD
#define INCLUDE_MIC_SHIELD
/* Подключаем библиотеку 1Sheeld. */
#include 

// Определение пинов подключения светодиодной матрицы (столбцы и слои).
// См. руководство для более подробной иллюстрации.
int coloumn13 = 13;
int coloumn12 = 12;
int coloumn11 = 11;
int coloumn10 = 10;
int coloumn9 = 9;
int coloumn8 = 8;
int coloumn7 = 7;
int coloumn6 = 6;
int coloumn5 = 5;
int coloumn4 = 4;
int coloumn3 = 3;
int coloumn2 = 2;
int coloumn1 = 1;
int coloumn0 = 0;
int coloumnA4 = A4;
int coloumnA5 = A5;
int layerA0 = A0; // layerA0 — слой, подключенный к аналоговому пину A0 (самый нижний в этом примере)
int layerA1 = A1;
int layerA2 = A2;
int layerA3 = A3;
int counter; // используется для вариаций в столбцах

void setup() {
  OneSheeld.begin();
  Serial.begin(115200);
  // Инициализация каждого пина как выход
  pinMode(coloumn0, OUTPUT);  pinMode(coloumn1, OUTPUT);  pinMode(coloumn2, OUTPUT);
  pinMode(coloumn3, OUTPUT);  pinMode(coloumn4, OUTPUT);  pinMode(coloumn5, OUTPUT);
  pinMode(coloumn6, OUTPUT);  pinMode(coloumn7, OUTPUT);  pinMode(coloumn8, OUTPUT);
  pinMode(coloumn9, OUTPUT);  pinMode(coloumn10, OUTPUT); pinMode(coloumn11, OUTPUT);
  pinMode(coloumn12, OUTPUT); pinMode(coloumn13, OUTPUT); pinMode(coloumnA4, OUTPUT);
  pinMode(coloumnA5, OUTPUT); pinMode(layerA0, OUTPUT);   pinMode(layerA1, OUTPUT);
  pinMode(layerA2, OUTPUT);   pinMode(layerA3, OUTPUT);
}

void loop() {
  // Все столбцы подключены к 5V (HIGH)
  digitalWrite(coloumn0,HIGH);  digitalWrite(coloumn1,HIGH);  digitalWrite(coloumn2,HIGH);
  digitalWrite(coloumn3,HIGH);  digitalWrite(coloumn4,HIGH);  digitalWrite(coloumn5,HIGH);
  digitalWrite(coloumn6,HIGH);  digitalWrite(coloumn7,HIGH);  digitalWrite(coloumn8,HIGH);
  digitalWrite(coloumn9,HIGH);  digitalWrite(coloumn10,HIGH); digitalWrite(coloumn11,HIGH);
  digitalWrite(coloumn12,HIGH); digitalWrite(coloumn13,HIGH); digitalWrite(coloumnA4,HIGH);
  digitalWrite(coloumnA5,HIGH);
  delay(30);

  // Получаем уровень шума от микрофона и управляем слоями (подключаем к 0V — LOW)
  // Каждый блок if-else управляет одним слоем.
  // Значения нужно калибровать под ваш телефон.
  /* Для калибровки: включите музыку рядом с телефоном и следите за показаниями Mic shield, подбирайте подходящие значения. */
  // В этом примере шаг 6 дает хорошие результаты
  if( Mic.getValue() > 70 ) { // управление первым слоем
    digitalWrite(layerA0, LOW);
    delay(50); // Для наглядности. Можно изменить для ускорения/замедления.
  } else { digitalWrite(layerA0, HIGH); }
  if( Mic.getValue() > 76 ) { // второй слой
    digitalWrite(layerA1, LOW);
    delay(50);
  } else { digitalWrite(layerA1, HIGH); }
  if( Mic.getValue() > 82 ) { // третий слой
    digitalWrite(layerA2, LOW);
    delay(50);
  } else { digitalWrite(layerA2, HIGH); }
  if( Mic.getValue() > 88 ) { // четвертый слой
    digitalWrite(layerA3, LOW);
    delay(50);
  } else { digitalWrite(layerA3, HIGH); }
}

Схемы

На изображении резисторы не показаны.

Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld

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

  1. Создание быстрой надежной системы обнаружения пожара с Samsung SAMI, Arduino UNO и Raspberry Pi
  2. Сделай свой LUMAZOID: DIY Arduino музыкальный визуализатор
  3. Создание игры в реальном времени на Arduino Nano с гироскопом MPU-6050 и OLED-дисплеем
  4. Часы реального времени на Arduino с расчётом времени намаза
  5. Проект с датчиком DHT11: индикация температуры светодиодами и пьезо-динамиком на Arduino
  6. Устройство для общения глухосліпых людей с помощью 1Sheeld и Arduino
  7. Unopad: Бесшовный Arduino MIDI-контроллер для Ableton Live
  8. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  9. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  10. Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод