Ночник со стеклянными шарами на Arduino своими руками.

.Ночник со стеклянными шарами на Arduino своими руками.

Сегодня расскажу про светильник, который сделал своими руками на Arduino (DigiSpark). В качестве рассеивателя установил стеклянные шарики, которые фиксируются с помощью оргстекла молочного цвета.

Заготовки для светильника вырезал на своем самодельном фрезерном ЧПУ станке больше года назад. После склейки корпуса установил электронику и протестировал работу. Но меня не устроили некоторые моменты и проект отложил. И вот, дошли руки его доработать. Изначально стеклянные шарики прижимались куском фанеры, и свет плохо рассеивался. Чтобы устранить данный конструктивный изъян заменил верхнюю часть на 2 детали. Стеклянные шарики зажимаются оргстеклом и для того, чтобы стекло сильно не прогибалось, фиксирую его куском фанеры. Такая конструкция позволяет надежно зафиксировать шарики без прогиба оргстекла.

Сегодня расскажу про светильник, который сделал своими руками на Arduino (DigiSpark).

К сожалению, раскроя фанеры нет, так как у меня сломался жёсткий диск, и часть информации было утеряно, в том числе и раскрой фанеры для данного светильника. Но возможно, осталась копия на рабочем компьютере, который стоит для управления самодельным ЧПУ станком на Arduino. Если найду, то обязательно выложу внизу стати в разделе материалы для скачивания.

А пока хочу с вами поделиться информацией которую узнал недавно. А именно Дедик сервер – это устоявшееся название выделенного сервера, который используется под всевозможные задачи. Также он называется dedicated или dedicated server. Купить дедик на месяц и год предпочитают многие и зачастую именно у нас, поскольку такой мощный по конфигурации и продуктивности сервер подключен к интернету с высокой скоростью и функционирующий долгое время без перезагрузок и отключений. Все это позволяет решать разные задачи.

Покрасил все заготовки в белый цвет и собрал. Вот что получилось.

Покрасил все заготовки в белый цвет и собрал. Вот что получилось.

Электроника и схема подключения самодельного светильника на Arduino (DigiSpark).

Для проекта нам понадобится:

  • Digispark
  • Адресные светодиоды WS2812
  • Резистор 10 кОм
  • Бокс под батарейки 4 x AA
  • Кнопка без фиксации
  • Кнопка с фиксацие

Подключаем все компоненты светильника на Arduino по вот такой схеме.

Подключаем все компоненты светильника на Arduino по вот такой схеме.

Вместо DigiSpark можно использовать Arduino NANO. Подключить кнопку и адресные светодиоды можно к любому цифровому пину Arduino.

Данный проект, по электронным комплектующим и схеме подключения, схож с проектом светофора на адресных светодиодах WS2812.

Прошивка для самодельного светильника на Arduino.

#include <Adafruit_NeoPixel.h>
#define PIN 0
#define STRIPSIZE 3
byte button_rejim = 1;  // кнопка режим
int rejim = 0;       // текущий режим
int yarkast = 250;       // текущая яркасть
boolean lastButten = LOW;     // предыдущее состояние кнопки
boolean currentButten = LOW;  // текущее состояние кнопки
int wait = 15;
uint16_t j = 0;
uint16_t i = 0;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(STRIPSIZE, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
  pinMode(button_rejim, INPUT); // настроить пин кнопки
  strip.begin();
}
boolean debvance (boolean last) //убираем дребизг 2
{
  boolean current = digitalRead (button_rejim); // считываем данные с кнопки
  if (last != current) // Если текущее состояни еотличететься от предыдущего
  {
    delay (5);   // Ждем 5 милисек.
    current = digitalRead (button_rejim); // Присваеваем текущее состояние кнопки
    return current;
  }
}
void loop() {
  currentButten = debvance (lastButten); // Передаем функции дребезга значение по умолчанию LOW
  if (lastButten == LOW && currentButten == HIGH) // Проверяем отпускали мы кнопку или нет
  {
    rejim++; // изменяем режим
    i = 0;
    if (rejim == 3)
      rejim = 0;
  }
  lastButten =  currentButten;  // Переприсваеваем прошлое состояние кнопки
  if (rejim == 0)
  {
    if (j < 256) {
      for (i = 0; i < strip.numPixels(); i++) {
        strip.setPixelColor(i, Wheel((i + j) & 255));
      }
      delay(wait);
      j++ ;
    }
    if (j == 255)
      j = 0;
  }
  else if (rejim == 1)
  {
    if (j < 256 * 5) { // 5 cycles of all colors on wheel
      for (i = 0; i < strip.numPixels(); i++) {
        strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
      }
      delay(wait);
      j++;
    }
    if (j == 255)
      j = 0;
  }
  else if (rejim == 2) // радуга из центра
  {
    for (i = 0; i < strip.numPixels(); i++) {
      strip.setPixelColor(i, strip.Color(255, 255, 255));
      delay(wait);
    }
  }
  strip.setBrightness(yarkast);  // Lower brightness and save eyeballs!
  strip.show(); // Initialize all pixels to 'off'
}
uint32_t Wheel(byte WheelPos) {
  if (WheelPos < 85) {
    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  } else if (WheelPos < 170) {
    WheelPos -= 85;
    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  } else {
    WheelPos -= 170;
    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  }
}
void colorWipes(uint32_t c, int num) {
  for (i = 0; i < strip.numPixels(); i++) {
    if (i == num)
      strip.setPixelColor(i, c);
    else
      strip.setPixelColor(i, strip.Color(0, 0, 0));
  }
  strip.setPixelColor(num, c);
  strip.show();
  delay(1);
}

Перед установкой электроники нужно запрограммировать DigiSpark или Arduino.

  • Сперва устанавливаем библиотеку NeoPixel. Скачать ее можно тут или внизу статьи, из раздела материалы для скачивания.
  • В скетче менять ни чего не надо.
  • Все, загрузка прошла успешно. Сейчас всю электронику можно устанавливать в светильник.

Как запрограммировать Arduino смотрите тут. Загрузка скетча в DigiSpark происходит немногого по-другому. Сначала нажимаете кнопку загрузить код, после того как код скомпилируется и выйдет надпись, у вас будет 60 секунд для подключения DigiSpark к компьютеру.

Загрузка скетча в DigiSpark происходит немногого по-другому.

. Сначала нажимаете кнопку загрузить код, после того как код скомпилируется и выйдет надпись, у вас будет 60 секунд для подключения DigiSpark к компьютеру.

Кнопка с фиксацией включает и выключает питание. Тактовая кнопка переключает режимы.

У светильника есть 3 режима роботы:

  • Плавная смена цвета всех светодиодов одновременно.
  • Смена цветов у каждого светодиода свой цвет.
  • Белый цвет свечения всех светодиодов.

Светильник запрограммирован и собран. Можно приступить к тестированию.

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

Батареек самых дешевых хватит примерно на 5-7 ночей. Это достаточно неплохой результат.

Батареек самых дешевых хватит примерно на 5-7 ночей. Это достаточно неплохой результат.

И еще немного фото самодельного светильника на Arduino (DigiSpark).

И еще немного фото самодельного светильника на Arduino (DigiSpark).

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

На этом всё. Не забывайте подписываться на мой YouTube канал, вступать в группу Вконтакте, в группу на Facebook.

И всем пока-пока.

До встречи в новом проекте.

Понравилась статья? Поделитесь ею с друзьями:

Файлы для скачивания

библиотеку Adafruit_NeoPixel библиотеку Adafruit_NeoPixel.zip68 Kb 587 Скачать
Вернуться в раздел: Проекты на Arduino Дата публикации 27 февраля , 2020

Комментарии

Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.

Робб
#1 Гость: Робб (15 марта, 2020 в 09:37)

Отличный светильник. Батареек на сколько хватает?


Cлучайные товары

Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Telegram

Portal-PK (Портал ПК) © 2015 - 2024
Разработка проектов
AT Block
DWIN Box