Neopixel Nanoleaf Lights (винты и опоры не требуются!)......
Светодиоды или неопиксели можно приклеивать как горизонтально, так и вертикально. Я установил 2 слота для светодиодов и множество монтажных отверстий для удобства сборки и настройки. Я использовал источник питания Attiny85, 5 В, 3 А, двухпозиционный переключатель и кнопку. Я также спроектировал основание с местом для ИК-детектора движения. Код, который я использовал для программирования ATTINY85, находится внизу.
Неопиксели https://www.amazon.com/
2 Позиционный переключатель https://www.amazon.com/
Нажмите кнопку https://www.amazon.com/.
Attiny85 https://www.amazon.com/
Блок питания 5 В, 2 А https://www.amazon.com/
Детектор движения https://www.amazon.com/
В качестве альтернативы вы можете приобрести контроллер WS2812B (ИСПОЛЬЗУЙТЕ ТОЛЬКО ИСТОЧНИК ПИТАНИЯ, НА КОТОРЫЙ РАСЧЕТ ВАШИ СВЕТИЛЬНИКИ!!!)
Контроллер WS2812B https://www.amazon.com/
Блок питания 5 В, 2 А https://www.amazon.com/
Просто распечатайте фигуры и несколько соединителей. Соберите нужную форму, затем закройте дополнительные слоты боковой крышкой. Затем проденьте светодиодную ленту, прикрепите ее к стене с помощью шурупов или клея, добавьте линзу, подключите питание и готово!
Я использую код ArduinoIDE и библиотеки Adafruit https://www.adafruit.com/.
Я также могу сделать это для вас, просто напишите мне на https://beautifulleds.etsy.com.
// ЛУЧШИЕ ПРАКТИКИ NEOPIXEL для максимально надежной работы:
// — Добавьте КОНДЕНСАТОР емкостью 1000 мкФ между контактами + и — полосы NeoPixel.
// — МИНИМИЗИРОВАТЬ ДЛИНУ ПРОВОДКИ между платой микроконтроллера и первым пикселем.
// — ВХОД ДАННЫХ ленты NeoPixel должен проходить через РЕЗИСТОР сопротивлением 300-500 Ом.
// — ИЗБЕГАЙТЕ подключения NeoPixels к РЕАЛЬНОЙ ЦЕПИ. Если вам необходимо, ВСЕГДА
// сначала подключаем ЗЕМЛЮ (-), затем +, затем данные.
// — При использовании микроконтроллера 3,3В с полоской NeoPixel с питанием 5В,
// ПРЕОБРАЗОВАТЕЛЬ ЛОГИЧЕСКОГО УРОВНЯ на линии данных НАСТОЯТЕЛЬНО РЕКОМЕНДУЕТСЯ.
// (Пропуск этих действий может работать нормально на вашем рабочем месте, но может привести к сбою в полевых условиях)
#include
#ifdef __AVR__
#include // Требуется для Adafruit Trinket с частотой 16 МГц
#endif
#define LED_PIN 3
// Сколько NeoPixel подключено к Arduino?
#define LED_COUNT 72
Полоса Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
недействительная настройка() {
#if определено(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(lock_div_1);
#endif
полоса.начать();
полоса.шоу(); // Инициализируем все пиксели как «выключенные»
Strip.setBrightness(200); // Установите ЯРКОСТЬ примерно на 1/5 (макс. = 255)
}
недействительный цикл() {
{
colorWipe(strip.Color(255, 0, 0), 20); // Красный
colorWipe(strip.Color(255, 127, 0), 20); // Оранжевый
colorWipe(strip.Color(255, 255, 0), 20); // Желтый
colorWipe(strip.Color(0, 255, 0), 20); // Зеленый
colorWipe(strip.Color(0, 0, 255), 20); // Синий
colorWipe(strip.Color(75, 0, 130), 20); // Индиго
colorWipe(strip.Color(148, 0, 211), 20); // Фиолетовый
радуга(5);
радуга2(5);
радуга3(5);
радуга4(5);
colorWipe(strip.Color(148, 0, 211), 20); // Фиолетовый
colorWipe(strip.Color(75, 0, 130), 20); // Индиго
colorWipe(strip.Color(0, 0, 255), 20); // Синий
colorWipe(strip.Color(0, 255, 0), 20); // Зеленый
colorWipe(strip.Color(255, 255, 0), 20); // Желтый
colorWipe(strip.Color(255, 127, 0), 20); // Оранжевый
colorWipe(strip.Color(255, 0, 0), 20); // Красный
}
}
// Заливаем точки одну за другой цветом
void colorWipe(uint32_t c, uint8_t wait) {
for(uint16_t i=0; i Strip.setPixelColor(i, c);
полоса.шоу();
задержка (подождать);
}
}
void Rainbow(int wait) {
for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) {
// Strip.rainbow() может принимать один аргумент (оттенок первого пикселя) или
// опционально несколько дополнений: количество повторений радуги (по умолчанию 1),
// насыщенность и значение (яркость) (оба 0-255, аналогично
// Функция ColorHSV(), по умолчанию 255) и флаг true/false, определяющий,
// применить гамма-коррекцию для обеспечения более «естественных» цветов (по умолчанию true).
Strip.rainbow(firstPixelHue, 1/2);//
// Верхняя строка эквивалентна:
// Strip.rainbow(firstPixelHue, 1, 255, 255, true);
стрип.с





























