Сегодня расскажу про светильник, который сделал своими руками на Arduino (DigiSpark). В качестве рассеивателя установил стеклянные шарики, которые фиксируются с помощью оргстекла молочного цвета.
Заготовки для светильника вырезал на своем самодельном фрезерном ЧПУ станке больше года назад. После склейки корпуса установил электронику и протестировал работу. Но меня не устроили некоторые моменты и проект отложил. И вот, дошли руки его доработать. Изначально стеклянные шарики прижимались куском фанеры, и свет плохо рассеивался. Чтобы устранить данный конструктивный изъян заменил верхнюю часть на 2 детали. Стеклянные шарики зажимаются оргстеклом и для того, чтобы стекло сильно не прогибалось, фиксирую его куском фанеры. Такая конструкция позволяет надежно зафиксировать шарики без прогиба оргстекла.
К сожалению, раскроя фанеры нет, так как у меня сломался жёсткий диск, и часть информации было утеряно, в том числе и раскрой фанеры для данного светильника. Но возможно, осталась копия на рабочем компьютере, который стоит для управления самодельным ЧПУ станком на Arduino. Если найду, то обязательно выложу внизу стати в разделе материалы для скачивания.
А пока хочу с вами поделиться информацией которую узнал недавно. А именно Дедик сервер – это устоявшееся название выделенного сервера, который используется под всевозможные задачи. Также он называется dedicated или dedicated server.
Купить дедик на месяц и год предпочитают многие и зачастую именно у
нас, поскольку такой мощный по конфигурации и продуктивности сервер
подключен к интернету с высокой скоростью и функционирующий долгое время
без перезагрузок и отключений. Все это позволяет решать разные задачи.
Покрасил все заготовки в белый цвет и собрал. Вот что получилось.
Для проекта нам понадобится:
Подключаем все компоненты светильника на 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.
Как запрограммировать Arduino смотрите тут. Загрузка скетча в DigiSpark происходит немногого по-другому. Сначала нажимаете кнопку загрузить код, после того как код скомпилируется и выйдет надпись, у вас будет 60 секунд для подключения DigiSpark к компьютеру.
Кнопка с фиксацией включает и выключает питание. Тактовая кнопка переключает режимы.
У светильника есть 3 режима роботы:
Светильник запрограммирован и собран. Можно приступить к тестированию. Светильник нравится детям. Не смотря на то, что стеклянные шарики достаточно сильно прижимаются и достать их не так и просто, дети смогли все таки один достать. Но сломать ночник не смогли. Поэтому можно считать, что светильник тестирование детьми прошёл успешно.
Батареек самых дешевых хватит примерно на 5-7 ночей. Это достаточно неплохой результат.
И еще немного фото самодельного светильника на Arduino (DigiSpark).
Если есть вопросы, проблемы, предложения и пожелания, пишите их в комментариях. Комментарий можно написать без регистрации на сайте.
На этом всё. Не забывайте подписываться на мой YouTube канал, вступать в группу Вконтакте, в группу на Facebook.
И всем пока-пока.
До встречи в новом проекте.
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
![]() |
библиотеку Adafruit_NeoPixel.zip | 68 Kb | 725 | Скачать |
Вернуться в раздел: Проекты на Arduino Дата публикации 27 февраля , 2020
Читайте также
Отличный светильник. Батареек на сколько хватает?
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.