Лайтбокс на RGB светодиодах WS2812 и SK6812, Arduino проект для начинающих

Ном. номер: 9000395992
Производитель: DIY
Лайтбокс на RGB светодиодах WS2812 и SK6812, Arduino проект для начинающих
1 923 руб.
Есть в наличии.
Отгрузка со склада в г.Москва
Добавить в корзину 1 шт. на сумму 1 923 руб.

Спецификация набора

То, что у вас уже есть, вы можете удалить в корзине.

НаименованиеЦенаКол-во
Печатная плата Neopixel stick 16, Печатная плата с разводкой, FR4 7.5х117.7мм (1.5мм, 18мкм) 40 руб. 2
Печатная плата Neopixel stick 8, Печатная плата с разводкой, FR4 15.24х40.64мм (1.5мм, 18мкм) 60 руб. 2
Кер.ЧИП конд. 0.1мкФ,Y5V 50В, +80-20%,0603 4 руб. 42
SL-30V1-A10K, 10 кОм, Резистор переменный движковый 55 руб. 5
SK6812-RGBW-NW (Neopixel), Светодиод SMD 5050 RGB с пиксельной адресацией 4000-4500K 14 руб. 16
SK6812-RGBW-WS (Neopixel), Светодиод SMD 5050 RGB с пиксельной адресацией 2800-3500K 14 руб. 16
WS2812B (Neopixel), Светодиод SMD 5050 RGB с пиксельной адресацией 12 руб. 16
Бузина, Клон Arduino Nano, ATmega328P-AU 640 руб. 1

Лайтбокс или как его еще называют лайткуб или софтбокс - сооружение для съемки без бликов и даже без теней. В этом проекте для освещения объекта фотосъемки мы будем использовать RGB светодиоды с пиксельной адресацией WS2812 и SK6812. Это позволит нам не только избавиться от бликов и теней, но и подкрасить объект нужным цветом.
В проекте три потенциометра расположенные справа (см.видео) регулируют яркость соответственно красного, зеленого и синего цвета сразу у всех светодиодов. Можно поднимать каждый цвет отдельно или смешивать эти три цвета синтезируя любой из видимых цветов. Этим добиваемся желаемой насыщенности и баланса цветов.
Два потенциометра расположенные на левой стороне регулируют яркость свечения только белых светодиодов. Один для верхней линейки с SK6812, другой для нижней. Этими потенциометрами мы добиваемся желаемой яркости картинки.

Схема подключения.

Схема

Это открытый проект! Лицензия, под которой он распространяется – Creative Commons - Attribution - Share Alike license.

Скетч. Код программы


#include <Adafruit_NeoPixel.h>


#define   LED_PIN              11
#define   LED_WHITE_PIN        12
#define   ANALOG_PIN_RED       A0
#define   ANALOG_PIN_GREEN     A1
#define   ANALOG_PIN_BLUE      A2
#define   ANALOG_PIN_WHITE     A3
#define   ANALOG_PIN_WHITE_2   A4
#define   ColoursNum           5//1//
#define   KEY_PIN              9

#define   PIXEL_IN_STICK              8
#define   PIXEL_IN_W_WHITE_STICK      (2 * PIXEL_IN_STICK)
#define   PIXEL_IN_C_WHITE_STICK      (2 * PIXEL_IN_STICK)
#define   PIXEL_IN_COLOUR_STICK_1     PIXEL_IN_STICK
#define   PIXEL_IN_COLOUR_STICK_2     PIXEL_IN_STICK
#define   PIXEL_NUM                   (PIXEL_IN_COLOUR_STICK_1 + PIXEL_IN_COLOUR_STICK_2)
#define   PIXEL_WHITE_NUM             (PIXEL_IN_W_WHITE_STICK + PIXEL_IN_C_WHITE_STICK)





Adafruit_NeoPixel LEDS_WHITE = Adafruit_NeoPixel(PIXEL_WHITE_NUM, LED_WHITE_PIN, NEO_GRBW + NEO_KHZ800);
Adafruit_NeoPixel LEDS = Adafruit_NeoPixel(PIXEL_NUM, LED_PIN, NEO_GRB + NEO_KHZ800);


unsigned int COLOURS[ColoursNum];
byte ANALOG_PINS[ColoursNum] = {ANALOG_PIN_RED, ANALOG_PIN_GREEN, ANALOG_PIN_BLUE, ANALOG_PIN_WHITE, ANALOG_PIN_WHITE_2};
bool Active = false;

void setup()
{
  digitalWrite(KEY_PIN, HIGH);
  LEDS.begin();
  LEDS.show();
  LEDS_WHITE.begin();
  LEDS_WHITE.show();
}
//----------------------------------------
void loop()
{
  if (Active)
  {
    for (byte i = 0; i < ColoursNum; i++)
    {
      COLOURS[i] = analogRead(ANALOG_PINS[i]) / 4;
    }
  
    for (byte i = 0; i < PIXEL_NUM; i++)
      LEDS.setPixelColor(i, COLOURS[0], COLOURS[1], COLOURS[2]);
    for (byte i = 0; i < PIXEL_IN_W_WHITE_STICK; i++)
      LEDS_WHITE.setPixelColor(i, COLOURS[0], COLOURS[1], COLOURS[2], COLOURS[3]);
    for (byte i = PIXEL_IN_W_WHITE_STICK; i < (PIXEL_IN_W_WHITE_STICK + PIXEL_IN_C_WHITE_STICK); i++)
      LEDS_WHITE.setPixelColor(i, COLOURS[0], COLOURS[1], COLOURS[2], COLOURS[4]);

    LEDS_WHITE.show();
    LEDS.show();
  }

  if (!digitalRead(KEY_PIN))
  {
    delay(300);
    if (!digitalRead(KEY_PIN))
    {
      if (Active)
      {
        Active = false;
        for (byte i = 0; i < PIXEL_NUM; i++)
          LEDS.setPixelColor(i, 0);
        for (byte i = 0; i < PIXEL_IN_W_WHITE_STICK; i++)
          LEDS_WHITE.setPixelColor(i, 0);
        for (byte i = PIXEL_IN_W_WHITE_STICK; i < (PIXEL_IN_W_WHITE_STICK + PIXEL_IN_C_WHITE_STICK); i++)
          LEDS_WHITE.setPixelColor(i, 0);

        LEDS_WHITE.show();
        LEDS.show();
      }
      else
        Active = true;
    }
  }
}
//----------------------------------------

Техническая документация

PinChangeInt
zip, 42 КБ

Видео

Выберите регион, чтобы увидеть способы получения товара.

Комментарии