Мобільна версія Форум Arduino Документація Гарантійні умови 0 0
UA RU
Графік роботи магазину:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Нд: вихідний
Каталог
Напиши статтю і отримай знижку!

Светодиодное освещение рабочего стола на Arduino

2020-09-03

Всі статті →

Хороший свет на рабочем месте всегда был одним из главных “пунктиков” для меня. Особенно когда сидишь ночью в темноте и пишешь курсач или кодишь в VS - из-за высокой контрастности, между светлым монитором и темным задним фоном, глаза сильно перенапрягаются и устают. Сначала рядом стояла лампа, но она занимала достаточно много места на столе, поэтому было решено сделать новую, более “миниатюрную”.

У китайцев заказал 5м светодиодной ленты (теплый белый цвет) и блок питания 12В 3А, в эпицентре – алюминиевый профиль для этой ленты с пластиковой линзой для рассеивания света.

Светодиодные ленты: https://arduino.ua/cat264-svetodiodnie-lenti

Все остальное нашел у себя в ящике, а именно:

Все паяется по схеме:

Для прошивки контроллера используем плату Arduino nano и код из папки примеров Arduino ISP, подробную инструкцию писал в статье про сборку портативного осциллографа: https://arduino.ua/art97-kak-sobrat-portativnii-oscillograf

Так же делюсь последней версией прошивки. Все функции и переменные описаны в виде комментариев в коде:

/*

 *  Прошивка для светодиодного светильника LEDlamp v.2.1
 *  Добавлено:
 *                       плавное включение/выключение
 *                       выключение после долгого нажатия на кнопку
 *                       включение заданной яркости за постоянное к-во миллисекунд
 */
 
#define BTN 2 // Пин для подключения кнопки
#define LED 3 // Пин для подключение мофсета
 
byte State = 0, flag = 0;
bool ButtonState = HIGH; // Изменить в зависимости от использованной в проекте кнопки
 
unsigned long previousMillis = 0; 
unsigned long interval = 2000;     // К-во миллиссекунд для включения заданной яркости
unsigned long currentMillis = 0;
 
void setup() {
 
  Serial.begin(9600);
 
  pinMode(LED, OUTPUT);
  pinMode(BTN, INPUT);
  pinMode(A0, INPUT);
 
}
 
void loop() {
 
  if ( digitalRead(BTN) == ButtonState ) {
 
    flag++;
    currentMillis = millis();
 
  }
 
  while ( digitalRead(BTN) == ButtonState ) {
 
    if ( millis() - currentMillis >= interval ) {
 
      flag = 0;
      analogWrite(LED, 0);
      break;
 
    }
  }
 
  while ( digitalRead(BTN) == ButtonState ) delay(1); // Задержка от ложный нажатий
 
  switch (flag) {
 
    case 0:
      analogWrite(LED, 0); // Вторым аргументом в функции устанавливается яркость ленты
      break;
 
    case 1:
      analogWrite(LED, 40);
      break;
 
    case 2:
      analogWrite(LED, 85);
      break;
 
    case 3:
      analogWrite(LED, 175);
      break;
 
    case 4:
      analogWrite(LED, 250);
      break;
 
    case 5:
      flag = 0;
      break;
 
  }
 
  delay(1);
 
}

 

Есть один нюанс: блок питания подбирается из расчета потребления тока лентой - обычно 1А/м + 1А в запас (по умолчанию большинство лент требует 12В напряжения)

Блоки питания: https://arduino.ua/cat27-bloki-pitaniya или https://arduino.ua/cat200-bloki-pitaniya-negermetichnie

P.S. Свой светильник я наклеил за монитор дабы он освещал задний фон. При максимальной яркости вполне удобно что-то записывать в сумерках, поздней ночью обычно ставлю рядом еще и лампу. Контроллер повесил слева в углу, кнопка светится постоянно (пока не нажата) – для этого на плате запаивается перемычка.

Ссылки:

Ваша оцінка статті:

Відмінно
Добре
Задовільно
Погано
Дуже погано

Загальна оцінка:

Оцінка "Светодиодное освещение рабочего стола на Arduino"
4 з 5
зроблена на основі 5 оцінок 5 клієнтських відгуків.

Дякуємо Вам за звернення! Ваш відгук з'явиться після модерації адміністратором.
Тарас
09.04.2022 15:46:30
В этой задаче вместо Mega328 за 100 грн достаточно LM555 за 5 грн
Никита
19.01.2022 13:22:36
Повторил, очень круто вышло, спасибо! Правда вместо меги поставил тиньку
Вадим
16.11.2020 00:04:09
вы серьезно? целая мега на такую мелочь? для такой задачи хватит 13той тиньки
Artem
02.11.2020 07:41:10
Може і гарно, але при такому освітлені це просто додаткове навантаження на зір
Олексій Савченко
04.10.2020 18:00:24
Досить гарно вийшло!
оплата картами Visa і MasterCard