Рейтинг@Mail.ru
Декоративное панно с подсветкой на Arduino
Декоративное панно с подсветкой на Arduino

Как сделать декоративное панно с подсветкой на Arduino

автор:
Be the first to comment! DIY
Print Friendly, PDF & Email

Предлагается вариант изготовления декоративного панно со светодиодной подсветкой, которая будет управляться с помощью Arduino. На данном панно будет изображено созвездие Большой Медведицы и окружающие его созвездия. Роль звёзд будут исполнять светодиоды. Чтобы придать картине больше таинственности и шарма, звёзды в произвольном порядке будут мерцать.

Инструкция по изготовлению декоративного панно со светодиодной подсветкой, управляемой Ардуино

Нам понадобится:

  • Arduino Nano или иная совместимая плата;
  • персональный компьютер со средой разработки Arduino IDE.
  • USB-кабель и зарядка для телефона;
  • светодиоды, количество зависит от того, сколько хотите разместить на панно (вот из такого набора, например);
  • резисторы номиналом 190…240 Ом, по количеству светодиодов (вот отличный набор резисторов самых распространённых номиналов);
  • соединительные провода, термоусадочная трубка или кембрик;
  • толстая фанера (5…10 мм);
  • лак для дерева и морилка (по желанию);
  • выжигатель;
  • паяльник.

1Выжигаем картину на фанере

Первым делом нужно подготовить фанеру нужного формата и тщательно обработать её наждачной бумагой. Сначала крупной, поперёк волокон фанеры, затем более мелкой, пока фанера не станет приятно гладкой на ощупь. Обработать нужно обе поверхности, и лицевую, и заднюю. Желательно также пройтись по боковым поверхностям и кромкам.

После этого наносим простым карандашом на фанеру изображение, которое вы хотите видеть на своём панно. Можно воспользоваться копировальной бумагой, можно разделить поверхность на клетки и нарисовать изображение от руки по клеткам. Или, если вы хорошо умеете рисовать, нарисуйте его от руки.

Заготовка для панно: выжигаем картину на фанере
Заготовка для панно: выжигаем картину на фанере

Далее выжигаем нашу картину выжигателем. Думаю, это не требует пояснения.

2Углубления для проводов и платы Ардуино

Теперь нужно определить, в каких местах у вас будут находиться светодиоды, и просверлить в этих местах отверстия под диаметр светодиодов. Например, в данном панно светодиоды будут в местах самых ярких звёзд на картине.

Сверлить отверстия нужно с диаметром светодиода. Со стороны выводов у светодиода есть утолщение. Можно взять сверло побольше, диаметром этого утолщения, и изнутри панно на 1-2 мм углубиться этим сверлом, для того чтобы светодиод был плотно утоплен в глубь фанеры, когда мы его поставим на своё место.

На обратной стороне панно определите место, где будет находиться плата Arduino Nano или Arduino Mini, и вырезать под неё углубление. Удобно располагать плату с краю, чтобы можно было легко подключить питание стандартным кабелем USB. Но это вовсе не обязательно.

К плате Ардуино нужно будет подвести провода от светодиодов. Их также желательно упрятать в углубления. Соответственно, нужно расчертить и вырезать дорожки-углубления для проводов.

Углубления для проводов и Arduino
Углубления для проводов и Arduino

На этом этапе желательно покрыть фанеру с желобками и выжженной картиной лаком по дереву. Можно покрыть морилкой – по желанию.

Когда лак высохнет, укладываем в вырезанные желобки провода. Крепить их можно с помощью металлических скоб. Концы проводов пока оставляем свободными.

Крепление проводов с помощью металлических скоб
Крепление проводов с помощью металлических скоб

3Подключение светодиодов и Arduino

Подключим светодиоды. Не забудем, что каждый светодиод должен иметь токоограничивающий резистор номиналом от 180 до 240 Ом. Поэтому сначала припаяем к одной из ножек каждого светодиода резистор.

Затем вставим светодиоды в просверленные отверстия. Расположим обе ножки и резистор вдоль вырезанных углублений.

Выводы светодиодов будут закреплены в желобках и будут тесно соприкасаться друг с другом. Поэтому их обязательно нужно изолировать друг от друга диэлектриком. Желательно иметь кусочки термоусадочной трубки и надеть их на концы проводов, прежде чем припаивать к выводам светодиодов. Если трубки нет, то подойдут кусочки кембрика или другого изолятора.

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

После этого припаяем ножки светодиодов к проводам и также зафиксируем их металлическими скобками.

Установим плату Arduino на своё место в подготовленное углубление. Если есть гвоздики маленького диаметра, желательно закрепить плату (Arduino имеет 4 крепёжных отверстия по углам).

Установленная на панно плата Arduino с подключёнными проводами
Установленная на панно плата Arduino с подключёнными проводами

Припаяем провода от светодиодов к цифровым выводам Arduino.

Удобно припаивать положительные выводы (аноды) светодиодов к цифровым или аналоговым выводам Ардуино, а землю вывести на отдельную шину и припаивать все провода, идущие от катодов светодиодов, к этой шине.

6Украшение панно рамкой

Теперь, когда вся электронная часть собрана, украсим панно красивой рамкой от картины или фотографии. Рамку можно закрепить жестяными уголками.

Крепим к панно рамку
Крепим к панно рамку

Конечно, это придаст панно более благородный и законченный вид. Но если рамки нет, то можно обойтись и без неё.

7Скетч декоративного панно для Arduino

Осталось написать скетч и загрузить его в Arduino. Мой вариант скетча приведён ниже:

Скетч для декоративного панно с подсветкой (разворачивается)
// объявляем номера выводов:
const int led2 = 2;
const int led3pwm = 3;
const int led4 = 4;
const int led5pwm = 5;
const int led6pwm = 6;
const int led7 = 7;
const int led8 = 8;
const int led9pwm = 9;
const int led10pwm = 10;
const int led11pwm = 11;
const int led12 = 12;
const int ledA1 = A1;
const int ledA5 = A5;

// переменные управления мерцанием "звёзд":
int minBrightness = 15;
int maxBrightness = 255;
int brightnessStep = 5;
int brightnessDelay = 50;
int brightnessPause = 700;

void setup() {
  // задаём режимы работы выводов:
  pinMode(led2, OUTPUT);
  pinMode(led3pwm, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5pwm, OUTPUT);
  pinMode(led6pwm, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9pwm, OUTPUT);
  pinMode(led10pwm, OUTPUT);
  pinMode(led11pwm, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(ledA1, OUTPUT);
  pinMode(ledA5, OUTPUT);

  // зажигаем светодиоды с постоянной яркостью:
  digitalWrite(led2, HIGH); 
  digitalWrite(led4, HIGH);
  digitalWrite(led7, HIGH);
  digitalWrite(led8, HIGH);
  digitalWrite(led12, HIGH);
  digitalWrite(ledA1, HIGH);
  digitalWrite(ledA5, HIGH);

  // зажигаем светодиоды с ШИМ минимальной яркостью:
  analogWrite(led3pwm, minBrightness);
  analogWrite(led5pwm, minBrightness);
  analogWrite(led6pwm, minBrightness);
  analogWrite(led9pwm, minBrightness);
  analogWrite(led10pwm, minBrightness);
  analogWrite(led11pwm, minBrightness);  
}

void loop() { 
  // управляем случайным светодиодом, одним из 6-ти:
  int randNumber = random(1, 7);
  switch (randNumber) {
    case 1:
      fade(led3pwm);
      break;
    case 2:
      fade(led5pwm);
      break;
    case 3:
      fade(led6pwm);
      break;
    case 4:
      fade(led9pwm);
      break;
    case 5:
      fade(led10pwm);
      break;
    case 6:
      fade(led11pwm);
      break;
  }
}

// Меняем яркость:
void fade(int pinNum) {
  // наращиваем яркость:
  for (int fadeValue = minBrightness; fadeValue <= maxBrightness; fadeValue += brightnessStep) {
    analogWrite(pinNum, fadeValue);
    delay(brightnessDelay);
  }

  // произвольная задержка:
  delay(brightnessPause * random(1, 5)); 
  
  // убавляем яркость:
  for (int fadeValue = maxBrightness; fadeValue >= minBrightness; fadeValue -= brightnessStep) {
    analogWrite(pinNum, fadeValue);
    delay(brightnessDelay);
  }

  // произвольная задержка:
  delay(brightnessPause * random(1, 5)); 

}

Светодиоды, подключённые к цифровым выводам без функции ШИМ, будут гореть с постоянной яркостью. А другие, подключённые к выводам с ШИМ, будут периодически менять свою яркость. Причём время задержки и номер вывода будет задаваться случайно в заданном ограниченном диапазоне. Это будет имитировать мерцание звёзд.

8Загрузка скетча и включение панно

Загружаем скетч в память Ардуино.

С зарядного устройства для телефона по кабелю mini-USB подаём питание на Arduino… и любуемся результатом своих трудов!

Готовое панно со светодиодной подсветкой
Готовое панно со светодиодной подсветкой
Демонстрация работы светодиодного панно aave
Last modified onСреда, 10 Январь 2024 20:45 Read 9294 times

Поблагодарить автора:

Поделиться

Print Friendly, PDF & Email