Ночник со стеклянными шарами на Arduino своими руками.
Сегодня расскажу про светильник, который сделал своими руками на Arduino (DigiSpark). В качестве рассеивателя установил стеклянные шарики, которые фиксируются с помощью оргстекла молочного цвета.
Заготовки для светильника вырезал на своем самодельном фрезерном ЧПУ станке больше года назад. После склейки корпуса установил электронику и протестировал работу. Но меня не устроили некоторые моменты и проект отложил. И вот, дошли руки его доработать. Изначально стеклянные шарики прижимались куском фанеры, и свет плохо рассеивался. Чтобы устранить данный конструктивный изъян заменил верхнюю часть на 2 детали. Стеклянные шарики зажимаются оргстеклом и для того, чтобы стекло сильно не прогибалось, фиксирую его куском фанеры. Такая конструкция позволяет надежно зафиксировать шарики без прогиба оргстекла.
К сожалению, раскроя фанеры нет, так как у меня сломался жёсткий диск, и часть информации было утеряно, в том числе и раскрой фанеры для данного светильника. Но возможно, осталась копия на рабочем компьютере, который стоит для управления самодельным ЧПУ станком на Arduino. Если найду, то обязательно выложу внизу стати в разделе материалы для скачивания.
А пока хочу с вами поделиться информацией которую узнал недавно. А именно Дедик сервер – это устоявшееся название выделенного сервера, который используется под всевозможные задачи. Также он называется dedicated или dedicated server.Купить дедик на месяц и год предпочитают многие и зачастую именно у
нас, поскольку такой мощный по конфигурации и продуктивности сервер
подключен к интернету с высокой скоростью и функционирующий долгое время
без перезагрузок и отключений. Все это позволяет решать разные задачи.
Покрасил все заготовки в белый цвет и собрал. Вот что получилось.
Электроника и схема подключения самодельного светильника на Arduino (DigiSpark).
Для проекта нам понадобится:
Digispark
Адресные светодиоды WS2812
Резистор 10 кОм
Бокс под батарейки 4 x AA
Кнопка без фиксации
Кнопка с фиксацие
Подключаем все компоненты светильника на Arduino по вот такой схеме.
Вместо DigiSparkможно использоватьArduinoNANO. Подключить кнопку и адресные светодиоды можно к любому цифровому пину 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 к компьютеру.
Кнопка с фиксацией включает и выключает питание. Тактовая кнопка переключает режимы.
У светильника есть 3 режима роботы:
Плавная смена цвета всех светодиодов одновременно.
Смена цветов у каждого светодиода свой цвет.
Белый цвет свечения всех светодиодов.
Светильник запрограммирован и собран. Можно приступить к тестированию. Светильник нравится детям. Не смотря на то, что стеклянные шарики достаточно сильно прижимаются и достать их не так и просто, дети смогли все таки один достать. Но сломать ночник не смогли. Поэтому можно считать, что светильник тестирование детьми прошёл успешно.
Батареек самых дешевых хватит примерно на 5-7 ночей. Это достаточно неплохой результат.
И еще немного фото самодельного светильника на Arduino (DigiSpark).
Если есть вопросы, проблемы, предложения и пожелания, пишите их в комментариях. Комментарий можно написать без регистрации на сайте.
На этом всё. Не забывайте подписываться на мой YouTube канал, вступать в группу Вконтакте, в группу на Facebook.
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.