Сборка неопиксельной LED-матрицы на Arduino Nano: Пошаговое руководство
Компоненты и материалы
| Arduino Nano R3 | 1 |
| NeoPixel лента (5м, 30 LED/м = 150 LED всего) | 1 |
| Перемычки | 1 набор |
Инструменты
- Паяльная станция
Приложения и сервисы
- Arduino IDE
О проекте
Матрица
Нет, не фильм — NeoPixel матрица! Купите одну ленту индивидуально адресуемых NeoPixel. Раскрутите, обратите внимание на стрелки на ленте. Подключать можно ТОЛЬКО В ОДНОМ НАПРАВЛЕНИИ, при ошибке ленту можно сжечь.
Использовал ленту 30 LED/м, 5 метров, и разрезал на отрезки по 10 LED.
Раскладывал полоски на картоне, чередуя направление.
Отрезал провода под нужную длину и припаял к контактам NeoPixel.
После 14 раз пайки матрица готова! Проверил мультиметром на короткие замыкания — КЗ сожжет Nano, матрицу и, возможно, USB-порт (знаю по опыту). Загрузил тестовый скетч neomatrix с параметрами "NEO_BOTTOM + NEO_LEFT + NEO_COLUMNS + NEO_ZIGZAG". Если прокручивается "howdy" — готово!
Смотрите мои другие проекты для идей с NeoPixel матрицами!
Код
// Adafruit_NeoMatrix example for single NeoPixel Shield. // Scrolls 'Howdy' across the matrix in a portrait (vertical) orientation. #include#include #include #ifndef PSTR #define PSTR // Make Arduino Due happy #endif #define PIN 6 // MATRIX DECLARATION: // Parameter 1 = width of NeoPixel matrix // Parameter 2 = height of matrix // Parameter 3 = pin number // Parameter 4 = matrix layout flags: // NEO_MATRIX_TOP, NEO_MATRIX_BOTTOM, NEO_MATRIX_LEFT, NEO_MATRIX_RIGHT: // Position of the FIRST LED; pick two, e.g. NEO_MATRIX_TOP + NEO_MATRIX_LEFT // NEO_MATRIX_ROWS, NEO_MATRIX_COLUMNS: horizontal rows or vertical columns // NEO_MATRIX_PROGRESSIVE, NEO_MATRIX_ZIGZAG: same order or alternate lines reverse // Parameter 5 = pixel type flags: // NEO_KHZ800 800 KHz (most NeoPixel w/WS2812) // NEO_KHZ400 400 KHz (classic 'v1' FLORA, WS2811) // NEO_GRB GRB bitstream (most NeoPixel) // NEO_RGB RGB bitstream (v1 FLORA) Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(5, 8, PIN, NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT + NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG, NEO_GRB + NEO_KHZ800); const uint16_t colors[] = { matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(0, 0, 255) }; void setup() { matrix.begin(); matrix.setTextWrap(false); matrix.setBrightness(40); matrix.setTextColor(colors[0]); } int x = matrix.width(); int pass = 0; void loop() { matrix.fillScreen(0); matrix.setCursor(x, 0); matrix.print(F("Howdy")); if(--x < -36) { x = matrix.width(); if(++pass >= 3) pass = 0; matrix.setTextColor(colors[pass]); } matrix.show(); delay(100); }
Схемы
Производственный процесс
- Обеспечение надежности процессорного дизайна: лучшие практики для безопасных и надежных IC
- Создание робота на Arduino и Raspberry Pi: пошаговое руководство
- Максимизация эффективности обслуживания на основе состояния: Практическое руководство
- Полное руководство по производству стекловолокна
- Обеспечение надежных данных цепочки поставок: проверенная стратегия
- Создание анимации прогрессивного среза в SolidWorks — Пошаговый урок
- Создайте выигрывающий прототип: Пошаговое руководство для быстрой разработки продукта
- Пошаговое руководство по замене гидравлического шланга на тяжелом оборудовании
- Проверенные стратегии для работы комплексной программы безопасности
- Профессиональное руководство по изготовлению зажима для металлотокарного станка