Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Светодиодная фоторамка в виде сердца своими руками — проект Arduino

<основной класс="главный сайт" id="главный">

В этом проекте Arduino я покажу вам, как сделать потрясающую фоторамку со светодиодным сердцем, используя Arduino. Вы можете посмотреть следующее видео или прочитать письменную статью ниже, чтобы узнать больше.

На первый взгляд это выглядит как обычная фоторамка, но как только вы нажмете переключатель на задней стороне, она превратится в необычную фоторамку. Создание этого проекта Arduino очень весело, и он может стать идеальным подарком на День святого Валентина, день рождения или годовщину для ваших близких. Итак, приступим к созданию

Подготовка фоторамки


Для начала нам понадобится простая фоторамка 18 х 13 см и вырезанный по размеру рамки ДВП, на котором будем делать отверстия для вставки светодиодов. Затем нам нужно нарисовать и распечатать форму сердца с 32 светодиодами, которая будет использоваться в качестве шаблона. Отверстия для светодиодов будем делать с помощью дрели.

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

После того, как мы припаяли все светодиоды, мы должны проверить, все ли они работают правильно. Для этого нам нужно подключить положительный 5-вольтовый контакт VCC к анодам светодиодов через резистор 220 Ом и с помощью контакта заземления проверить каждый светодиод, загорится ли он.

Схемы схем


Вот принципиальная схема этого проекта, и вы можете найти полный список компонентов, необходимых для этого проекта, под ним. Поэтому мы будем использовать Arduino Nano и две микросхемы TLC5940 для управления светодиодами. TLC5940 — это 16-канальный драйвер светодиодов с ШИМ-выходами. Вы можете найти более подробную информацию о том, как подключить и использовать эту микросхему с Arduino, в моем конкретном руководстве по Arduino и TLC5940.

Компоненты, необходимые для этого проекта Arduino


Вы можете получить компоненты с любого из следующих сайтов:

Сборка


Здесь сначала мы вставим разъемы ИС и штыревые разъемы на место и припаяем их к макетной печатной плате, чтобы мы могли прикрепить к ним ИС и Arduino Nano. Нам также потребуются два дополнительных штыревых разъема с парой разъемов для питания или 5-вольтовых контактов VCC и заземления, а также два конденсатора для развязки.

Мы должны быть очень осторожны при подключении компонентов, потому что это может привести к путанице с таким количеством проводов, если мы подключим что-то неправильно. На этом этапе нам нужно загрузить код Arduino, чтобы убедиться, что мы все правильно подключили.

Код Arduino


Давайте посмотрим на код Arduino, который я сделал для этого проекта. Поэтому мы будем использовать библиотеку TLC5940, созданную Алексом Леоне. Как только мы загрузим и установим эту библиотеку, нам нужно изменить файл tlc_config.h и изменить значение переменной NUM_TLCS на количество микросхем TLC5940, соединенных последовательно, и в нашем случае это значение равно 2

Сделав это, теперь мы можем легко адресовать все светодиоды от 0 до 31. В начале нам также нужно определить некоторые переменные, необходимые для программы. В разделе настройки нам нужно инициировать TLC, а в разделе цикла сделать программу. Я организовал программу в 9 различных этапов или световых шоу светодиодов, используя оператор switch.

Например, рассмотрим первый этап. Мы генерируем случайные значения INT от 0 до 31 и используем их в качестве адресов для светодиодов. Функция Tlc.set() используется для установки того, какой светодиод мы зажжем. Первый параметр — это адрес светодиода, а второй параметр — это значение яркости светодиода или значение ШИМ, которое находится в диапазоне от 0 до 4095. Однако это не зажжет светодиод сразу, а просто установит, какое Затем светодиод загорится, когда будет выполнена функция Tlc.update(). Используя это выражение «если», мы активируем второй этап после того, как загорятся 8 случайных светодиодов. Теперь давайте рассмотрим еще один пример, скажем, этап 3. С помощью этого цикла «for» мы устанавливаем, чтобы все 32 светодиода загорались, когда будет выполняться функция Tlc.update(). После полусекундной задержки с помощью функции Tlc.clear() очищаем и выключаем все светодиоды. Аналогичным образом вы можете изменить код и добавить больше световых шоу по своему усмотрению.

/*  LED Heart Photo Frame - Arduino Project
 *  Program made by Dejan Nedelkovski,
 *  www.HowToMechatronics.com 
 */

/* TLC5940 Library by Alex Leone, https://code.google.com/archive/p/tlc5940arduino/
 *  You need to modify tlc_config.h located in the TLC5940 library 
 *  and change the value of the variable NUM_TLCS to the numbers of TLC5940 ICs connected
 */

#include "Tlc5940.h" 

int stage = 0;
int randomNumber;
int count = 0;
int brightness = 3500;
int brightUp = 50;
int dir=1;

void setup() {
  Tlc.init();
}

void loop() {
  
  switch(stage) {    
    //-----Stage 1
    case 0:
      randomNumber = (int)random(0,31);
      Tlc.set(randomNumber,4095);
      delay(1500);
      Tlc.update();
      if(count >= 8) { 
        stage = 1;
        count = 0;
      }
      else {
        ++count;
      }
    break;
    //-----Stage 2
    case 1:
      delay(75);
      for(int i=31;i>=0;i--) {
        Tlc.set(i,4095);
        delay(100);
        Tlc.update();
      }
      delay(500);
      Tlc.clear();
      Tlc.update();
      stage = 2;
      delay(500);
    break;
    //-----Stage 3
    case 2:
      for(int i=0;i<=31;i++) {
        Tlc.set(i,4095);
      }
      Tlc.update();
      delay(500);
      Tlc.clear();
      Tlc.update();
      delay(350);
      if(count > 6) { 
        stage = 3;
        count = 0;
      }
      else {
        ++count;
      }
    break;
    //-----Stage 4
    case 3:
      for (int i=0;i<=15;i++) {
        Tlc.set(i,4095);
        Tlc.set(31-i,4095);
        Tlc.update();
        delay(70);
      }
      delay(50);
      for (int i=15;i>=0;i--) {
        Tlc.set(i,0);
        Tlc.set(31-i,0);
        Tlc.update();
        delay(70);
      }
      for (int i=15;i>=0;i--) {
        Tlc.set(i,4095);
        Tlc.set(31-i,4095);
        Tlc.update();
        delay(70);
      }
      for (int i=0;i<=15;i++) {
        Tlc.set(i,0);
        Tlc.set(31-i,0);
        Tlc.update();
        delay(70);
      }
      delay(50);
      
      Tlc.clear();
      Tlc.update();
      delay(100);
      if(count > 1) {
        stage = 4;
        count = 0;
      }
      else {
        ++count;
      }
    break;
    //-----Stage 5
    case 4:
      for (int i=15;i>=count;i--) {
        Tlc.set(32-i,4095);
        Tlc.update();
        delay(5);
        Tlc.set(32-i-1,0);
        Tlc.update();
        delay(5);
        Tlc.set(i,4095);
        Tlc.update();
        delay(5);
        Tlc.set(i+1,0);
        Tlc.update();
        delay(50);
      }
      if(count > 15) {
        Tlc.set(16,4095);
        Tlc.update();
        delay(2000);
        stage = 5;
        count = 0;
      }
      else {
        ++count;
      }
    break;
    //-----Stage 6
    case 5:
      for (int i=0;i<=31;i++) {
        Tlc.set(i,brightness);
        Tlc.update();
      }
      Tlc.update();
      brightness = brightness + brightUp;
      if (brightness>=3500) {
        brightUp=-50;
        ++count;
      }
      if (brightness<=150) {
        brightUp=50;
      }
      if(count > 6) { 
        stage = 6;
        count = 0;
        brightness = 3500;
        Tlc.clear();
        Tlc.update();
      }
      delay(40);
    break;
    //-----Stage 7
    case 6:
      for (int i=0;i<=30;i+=2) {
        Tlc.set(i,4095);
        Tlc.set(i+1,0);        
      }
      Tlc.update();
      delay(500);
      for (int i=0;i<=30;i+=2) {
        Tlc.set(i,0);
        Tlc.set(i+1,4095);       
      }
      Tlc.update();
      delay(500); 
      if(count > 20) {
        stage = 7;
        count = 0;
      }
      else {
        ++count;
      }
    break;
    //-----Stage 8
    case 7:
      for(int i=31;i>=16;i--) {
        Tlc.clear();
        Tlc.update();
        delay(2);
        Tlc.set(i,4095);
        Tlc.set(i+1,2000);
        Tlc.set(i+2,1000);
        Tlc.set(i+3,500);
        Tlc.set(i+4,300);
        Tlc.set(i+5,200);
        Tlc.set(i+6,100);
        Tlc.set(i+7,50);
        Tlc.set(i+8,0);

        Tlc.set(i-16,4095);
        Tlc.set(i-15,2000);
        Tlc.set(i-14,1000);
        Tlc.set(i-13,500);
        Tlc.set(i-12,300);
        Tlc.set(i-11,200);
        Tlc.set(i-10,100);
        Tlc.set(i+-9,50);
        Tlc.set(i-8,0);
        
        Tlc.update();
        delay(50); 
      }
      if(count > 8) {
        for(int i=31;i>=0;i--) {
        Tlc.set(i,4095);
        Tlc.update();
        delay(50);
        }
        stage = 8;
        count = 0;
      }
      else {
        ++count;
      }
    break;
    //-----Stage 9
    case 8:
      for(int i=31;i>=0;i--) {
        Tlc.set(i+8,4095);
        Tlc.set(i+7,2000);
        Tlc.set(i+6,1000);
        Tlc.set(i+5,500);
        Tlc.set(i+4,300);
        Tlc.set(i+3,200);
        Tlc.set(i+2,100);
        Tlc.set(i+1,50);
        Tlc.set(i,0);
        Tlc.update();
        delay(50);
      }
      for(int i=31;i>=0;i--) {
        Tlc.set(i,4095);
        }
      Tlc.update();
      delay(10);
      if(count > 8) {
        delay(8000);
        Tlc.clear();
        Tlc.update();
        stage = 0;
        count = 0;
      }
      else {
        ++count;
      }
    break;
      
  }
}Code language: Arduino (arduino)

Последний штрих


Как только мы закончим с программированием и поймем, что все работает хорошо, нам нужно прикрепить светодиоды к древесноволокнистой плите, и я сделал это с помощью клеевого пистолета. Затем нам нужно сделать коробку-крышку для электроники с помощью клеевого пистолета и еще 4 кусков ДВП, вырезанных по размеру.

Осталось подключить силовые линии, идущие от выключателя и разъем питания, которые вставлены в ДВП фоторамки, добавить фото, прикрепить всю коробку к фоторамке и готово!

Здесь вы можете посмотреть полное демонстрационное видео фоторамки LED Heart Photo Frame.

Не стесняйтесь задавать любые вопросы в разделе комментариев ниже!


Производственный процесс

  1. Музыкальный визуализатор DIY LUMAZOID для Arduino
  2. Инфракрасный датчик сердцебиения своими руками с использованием Arduino
  3. Детектор звуковой частоты
  4. Arduino с Bluetooth для управления светодиодом!
  5. Tech-TicTacToe
  6. DIY вольтметр с Arduino и дисплеем Nokia 5110
  7. Четвероногий Arduino
  8. Таймер обратного отсчета Arduino
  9. Цветовой микшер Arduino RGB
  10. Сделай сам Arduino РАДИОНИКА Лечение MMachine