0

Подсветка монитора на arduino

Популярное на сайте
Elektro-Velik.ru | 10.01.2021 | 4312 / 5038 |

описание проекта:

Подсветка и захват экрана монитора по типу Philips Ambilight своими руками используя адресную светодиодную ленту WS2812 и arduino Nano 3,0 Atmega328

Управление и настройка производятся при помощи бесплатных программ AmbiBox или Prismatik.

Загрузка скетча через программу arduino

компоненты:
наименование: цена: где купить:
1 Адресная светодиодная лента 60 светодиодов на 1м.п ip30 за Black PCB + 2m 60leds IP30 ~ 566   заказать
2 Контроллер Arduino Nano 3,0 Atmega328 - 1 единицу ~ 148   заказать
3 Блок питания на 5 вольт 3 ампера ~ 270   заказать
4 Резистор на 200 - 500 ОМ любой мощности ~ 2   заказать

Фоновая подсветка монитора и захват экрана

Привет. Сегодня отвлекусь от темы сборки электровелосипедов. Так как много времени провожу за монитором компьютера и зимой так мало света для того что бы не сильно вредить зрению включаю лампу за монитором так глазам легче, и они меньше устают. Но недавно увидел проект фоновой подсветки монитора и решил реализовать его. Большую часть информации беру с блога Алекса гивера

Фоновая подсветка монитора
Фоновая подсветка монитора

Для реализации фоновой подсветки потребуется

  • Адресная светодиодная лента на 5 вольт – я взял под маркировкой ws2812 – 60 светодиодов на 1 метр, можно взять и 30, но это будет менее динамично, наверное, на мой монитор 23,8 дюйма у меня ушло чуть меньше 2х метров ленты.
  • Плата ардуино нано 3.0 можно заказать со шнуром mini usb если у вас есть, такой-то можно и без него, разница по стоимости что-то около 20 рублей.
  • Так же потребуется резистор на 250 – 500 ом любой мощности.
  • Блок питания на 5 вольт от 2 ампер – желательно на 3-4 ампера от него будет запитоваться лента, контроллер будет работать от usb компьютера.
  • Ещё нужны будут провода, немного термоусадки, паяльник (ну куда же без него).
компоненты для Подсветка монитора
компоненты для Подсветка монитора

Нарезка светодиодной ленты по размеру монитора

Предварительно нужно нарезать светодиодную ленту по размерам монитора в моём случае монитор 23,8 дюйма 54 на 32,5 см на верхнюю и нижнюю часть у меня вместилось по 32 светодиода, а на боковые стороны по 19 светодиодов. На ленте указано место разреза в виде ножниц и белой полосы.

На ленте есть стрелки, которые показывают направление соединить их нужно последовательно учитывая направление стрелок против часовой стрелки, если развернуть монитор подключать питание и сигнальный провод к ленте следует от левого нижнего угла (смотрите фото ниже).

Лента соединяется при помощи трёх проводов +5v – D0 - GND

нарезаем светодиодную ленту по размеру монитора
нарезаем светодиодную ленту по размеру монитора

Подключение компонентов по схеме

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

От блока питания на 5 вольт минусовой провод к ленте с обозначением GND к нему же подключаем контроллер ардуино к контакту GND плюсовой провод от блока питания подключаем к ленте с обозначением +5v а сигнальный провод от ленты с контактом D0 подключаем к Arduino через резистор 250-500ом к контакту D13

схема подключения компонентов фоновой подсветки
схема подключения компонентов фоновой подсветки

программы и загрузка скетча на контроллер

На этом этапе нужно скачать и установитьбесплатную программу ARDUINO выберите программу для вашей операционной системы.

Установите загруженную программу на ваш ПК следуя инструкции установщика.

Загрузите и установите драйвера для китайского USB преобразователя CH341 для Windows

Скачайте библиотеку и скетч для установки на контроллер, файлы библиотеки (папку FastLED-master) следует распоковать или скопировать в папку libraries программы ARDUINO – у меня такой путь к папке - C:\Program Files (x86)\Arduino\libraries

скетч фоновой подсветки экрана:

//----------------------НАСТРОЙКИ-----------------------
#define NUM_LEDS 102          // число светодиодов в ленте
#define DI_PIN 13            // пин, к которому подключена лента

#define start_flashes 0      // проверка цветов при запуске (1 - включить, 0 - выключить)

#define auto_bright 1        // автоматическая подстройка яркости от уровня внешнего освещения (1 - включить, 0 - выключить)
#define max_bright 255       // максимальная яркость (0 - 255)
#define min_bright 50        // минимальная яркость (0 - 255)
#define bright_constant 500  // константа усиления от внешнего света (0 - 1023)
// чем МЕНЬШЕ константа, тем "резче" будет прибавляться яркость
#define coef 0.9             // коэффициент фильтра (0.0 - 1.0), чем больше - тем медленнее меняется яркость
//----------------------НАСТРОЙКИ-----------------------

int new_bright, new_bright_f;
unsigned long bright_timer;

#define serialRate 115200  // скорость связи с ПК
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;  // кодовое слово Ada для связи
#include 
CRGB leds[NUM_LEDS];  // создаём ленту

void setup()
{
  FastLED.addLeds(leds, NUM_LEDS);  // инициализация светодиодов

  // вспышки красным синим и зелёным при запуске (можно отключить)
  if (start_flashes) {
    LEDS.showColor(CRGB(255, 0, 0));
    delay(500);
    LEDS.showColor(CRGB(0, 255, 0));
    delay(500);
    LEDS.showColor(CRGB(0, 0, 255));
    delay(500);
    LEDS.showColor(CRGB(0, 0, 0));
  }

  Serial.begin(serialRate);
  Serial.print("Ada\n");     // Связаться с компом
}

void loop() {
  if (auto_bright) {                         // если включена адаптивная яркость
    if (millis() - bright_timer > 100) {     // каждые 100 мс
      bright_timer = millis();               // сброить таймер
      new_bright = map(analogRead(6), 0, bright_constant, min_bright, max_bright);   // считать показания с фоторезистора, перевести диапазон
      new_bright = constrain(new_bright, min_bright, max_bright);
      new_bright_f = new_bright_f * coef + new_bright * (1 - coef);
      LEDS.setBrightness(new_bright_f);      // установить новую яркость
    }
  }

  for (i = 0; i < sizeof prefix; ++i) {
waitLoop: while (!Serial.available()) ;;
    if (prefix[i] == Serial.read()) continue;
    i = 0;
    goto waitLoop;
  }

  while (!Serial.available()) ;;
  hi = Serial.read();
  while (!Serial.available()) ;;
  lo = Serial.read();
  while (!Serial.available()) ;;
  chk = Serial.read();
  if (chk != (hi ^ lo ^ 0x55))
  {
    i = 0;
    goto waitLoop;
  }

  memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
  for (uint8_t i = 0; i < NUM_LEDS; i++) {
    byte r, g, b;
    // читаем данные для каждого цвета
    while (!Serial.available());
    r = Serial.read();
    while (!Serial.available());
    g = Serial.read();
    while (!Serial.available());
    b = Serial.read();
    leds[i].r = r;
    leds[i].g = g;
    leds[i].b = b;
  }
  FastLED.show();  // записываем цвета в ленту
}
инструкция установка программ и загрузка скетча на контроллер
инструкция установка программ и загрузка скетча на контроллер

Настройка программы AmbiBox и включение подсветки

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

От блока питания на 5 вольт минусовой провод к ленте с обозначением GND к нему же подключаем контроллер ардуино к контакту GND плюсовой провод от блока питания подключаем к ленте с обозначением +5v а сигнальный провод от ленты с контактом D0 подключаем к Arduino через резистор 250-500ом к контакту D13

Настройка программы Ambibox
Настройка программы Ambibox

Подсветка и захват экрана монитора по типу Philips Ambilight за 1000 рублей своими руками

Мои покупки - Подсветка монитора на arduino:
Адресная светодиодная лента 60 светодиодов на 1м.п ip30 за Black PCB + 2m 60leds IP30
Адресная светодиодная лента 60 светодиодов на 1м.п ip30 за Black PCB + 2m 60leds IP30

Стоимость: 566
Контроллер Arduino Nano 3,0 Atmega328 - 1 единицу
Контроллер Arduino Nano 3,0 Atmega328 - 1 единицу

Стоимость: 148
Блок питания на 5 вольт 3 ампера
Блок питания на 5 вольт 3 ампера

Стоимость: 270
Резистор на 200 - 500 ОМ любой мощности
Резистор на 200 - 500 ОМ любой мощности

Стоимость: 2
поделится:
Elektro-Velik.ru в соц сетях:
в продолжение темы - Подсветка монитора
Подсветка для телевизора и монитора

Универсальная светодиодная подсветка для телевизора или монитора готовое недорогое решение для любого размера экрана. Работает…



Задать вопрос / оставить комментарий по теме: Подсветка монитора.

Вопросы и комментарии:

пока никто ничего не написал | может это сделаете Вы? Спасибо.