Оглавление:

Нет синей лампы: 4 шага
Нет синей лампы: 4 шага

Видео: Нет синей лампы: 4 шага

Видео: Нет синей лампы: 4 шага
Видео: Пикник - Королевство кривых 2024, Ноябрь
Anonim
Нет синей лампы
Нет синей лампы
Нет синей лампы
Нет синей лампы
Нет синей лампы
Нет синей лампы
Нет синей лампы
Нет синей лампы

Итак, этот ленивый старый компьютерщик (L. O. G.) работал над проектом Blue Light:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

Что ж, для следующего шага мне нужна лампа, которая будет яркой днем и не будет синего света вечером / ночью.

Конструкторское оборудование:

Я решил использовать RTC (часы реального времени), чтобы контролировать время изменения освещения.

Я выбрал DS3231, так как у него лучшая точность отсчета времени, чем у DS1307. DS3231 может быть 5 В или 3,3 В.

Для света я буду использовать светодиодную гирлянду WS2812B. Они имеют простой трехпроводной интерфейс и управляемые красный, зеленый и синий светодиоды. WS2812B - это устройства на 5 В.

В качестве микроконтроллера я буду использовать Pro Micro, 5v 16MHz.

Хотя WS2812B, вероятно, будет работать с напряжением 3,3 В, лучше использовать Arduino с напряжением 5 В.

Pro Micro - это дешевый Arduino, использующий микроконтроллер Atmega32U4.

Лампа будет иметь переключатель включения / выключения для включения или выключения лампы.

Там будет потенциометр для регулировки яркости.

Программное обеспечение для проектирования:

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

В течение дня все светодиоды RGB будут гореть, и горшок будет управлять им на полную мощность.

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

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

Примерно после 22:00. все светодиоды погаснут.

ПРОБЛЕМА:

Вернемся к модулю DS3231 RTC, я купил свой на Aliexpress, как и другие компоненты.

Предполагается, что они работают с аккумуляторной батареей LIR2032 и заряжают ее. Я попробовал. Примерно через день разрядился аккумулятор.

После некоторого поиска в Интернете я нашел эту статью.

www.onetransistor.eu/2019/07/zs042-ds3231-…

Я согласен с этим анализом, но думал, что LIR2032 будет заряжаться адекватно, но не чрезмерно. Видимо, я ошибался. Мой DS3231, хотя и отмечен как ZS-042, как в статье, немного отличался от его, но почти такой же. Итак, я распаял диод, показанный на картинке, и установил батарею CR2032. Без диода модуль не будет пытаться заряжать аккумулятор. Теперь DS3231 показывает правильное время даже при отключенном питании, а батарея должна прослужить много лет.

Требования к питанию:

WS2812B - это серия светодиодов RGB, которую иногда называют NeoPixels. Каждому NeoPixel требуется максимум 60 мА. Я использую 12 Neo Pixels, поэтому мне нужно 0,72 А. Я использую USB-адаптер на 2 А, поэтому у меня много тока.

Шаг 1: печатная плата BlueLamp

Плата BlueLamp
Плата BlueLamp
Плата BlueLamp
Плата BlueLamp

Как обычно, я использовал бесплатное программное обеспечение Eagle Cadsoft (теперь Autodesk) для компоновки и создания моей печатной платы.

www.autodesk.com/products/eagle/free-downl…

Файлы схемы и платы Eagle прилагаются вместе со схемой на картинке.

Один комментарий по поводу схемы, резистора 330 Ом и конденсатора 10 000 мкФд - это рекомендации руководства Adafruit neopixel:

learn.adafruit.com/adafruit-neopixel-uberg…

Кнопка переключения, которую я использовал "Кнопочный переключатель горелки", находилась здесь:

www.aliexpress.com/item/32904942704.html?s…

Потенциометр 10K (B103) отсюда:

www.aliexpress.com/item/32672253655.html?s…

Шаг 2: Сборка лампы

Сборка лампы
Сборка лампы
Сборка лампы
Сборка лампы

У меня оказался тяжелый цоколь от купленной мною лампы. На нем была большая круглая булавка. Я взял кусок ПВХ-трубы, надетый на него. Он был немного ослаблен, поэтому я взял болт и пару гаек, чтобы затянуть его. (см. картинку)

WS2812B можно разрезать на необходимое количество NeoPixels. В купленной мной полоске между NeoPixels большие промежутки. Я хотел, чтобы он был немного ярче, поэтому я вырезал две полоски 6 NeoPixel и провел их параллельно с небольшим смещением. Полоски WS2812B можно разрезать между NeoPixels. В этом случае мне нужно было изменить угол на 180 градусов, поэтому я разрезал полоску и проложил между ними перемычки. Если вы когда-нибудь это сделаете, убедитесь, что сигналы и стрелки направления верны (см. Рисунок).

Этот WS2812B также имеет провода и разъем (этот разъем представляет собой 3-контактный разъем JST-SM, если вы хотите использовать его в другом месте). Поскольку этот разъем уже был там, я просто припаял провода к своей плате. Для этого WS2812B красный провод - 5 В, зеленый - сигнальный, а белый - земля.

Как только я сделал печатную плату, я наклеил на дно скотчем и приклеил его к основанию. Затем я подключил Pro Micro и DS3231.

Шаг 3: эскиз Arduino

Эскиз Arduino
Эскиз Arduino

Хотя я купил свой Pro Micro на Aliexpress.com, я использовал следующую информацию, чтобы заставить Arduino работать:

learn.sparkfun.com/tutorials/pro-micro--fi…

Для установки библиотеки для DS3231 я использую вот такую:

github.com/PaulStoffregen/DS1307RTC

Загрузите Zip-файл

Откройте Arduino, выберите «Скетч», «Включить библиотеку», «Добавить библиотеку.zip».

Установите следующее, используя тот же метод

Библиотека времени ПаульСтоффреген

github.com/PaulStoffregen/Time

Библиотека часовых поясов

github.com/JChristensen/Timezone

По завершении запустите Arduino.

В разделе "Доски инструментов" выберите "Sparkfun Pro Micro".

Снова нажмите Инструменты, появится выбор для процессора.

Возможно, вам потребуется заменить его на «Atmega32U4 (5V 16Mhz)»

ВНИМАНИЕ: Если вы, как и я, неосторожны, я по ошибке выбрал «Atmega32U4 (3,3 В 8 МГц)». Это «замуровало» его, так что Arduino не могла его увидеть. Что ж, я обычно стараюсь читать что-то новое, прежде чем я его понял и кое-что вспомнил об этом:

learn.sparkfun.com/tutorials/pro-micro--fi…

В этом руководстве есть раздел под названием «Как восстановить« кирпичную »Pro Micro». Как уже упоминается, это сложная процедура, но мне удалось восстановить свой.

К вашему сведению: если вам интересно, почему существуют две версии с разным напряжением и скоростью, Atmega32U4 (такой же, как Atmega328) будет нормально работать при 5 В с тактовой частотой 16 МГц. Но при напряжении 3,3 В спецификация дизайна говорит, что тактовая частота 16 МГц не будет работать, поэтому у них тактовая частота 8 МГц. Как правило, программное обеспечение Arduino позаботится о любых проблемах с синхронизацией.

СОВЕТ RTC: Большая часть программного обеспечения, написанного для DS1307, будет работать с DS3231, поскольку они имеют очень похожее программное обеспечение.

Летнее время

Что ж, я хотел внедрить DST, чтобы мне не приходилось перепрограммировать лампу дважды в год. Я работал над этим несколько дней. Я не мог найти хороших простых объяснений того, как работают Time, TimeLib и RTClib.

На самом деле я написал код DST для своего IPClock:

www.instructables.com/id/NO-MORE-SPRING-FO…

это работало для времени Интернета, но я не мог заставить его работать для времени RTC.

Я наконец наткнулся на следующее от JChristensen:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

Чтобы использовать это, вы сначала должны установить RTC на UTC (всемирное координированное время), это время в Гринвиче, Англия. Ну, не знал, как это сделать, но нашел эту статью:

www.justavapor.com/archives/2482

Переписал на Горное время (прилагается) UTCtoRTC.ino

Затем я включил часовой пояс в свой Sketch. Честно говоря, я не тестировал это, поэтому просто предполагаю, что это работает.

Мой скетч прикреплен к MTS_BlueLamp.ino.

Шаг 4: Заключение

Заключение
Заключение

Я сделал небольшой крючок наверху для своей маски для лица CPAP. Я вешал его на свою старую ночную лампу.

В принципе очень доволен этой лампой. Полностью яркий днем и без синего вечером и ночью.

Что мне не нравится, так это то, что я не могу им пользоваться после 22:00. и до 5 утра.

Я также обнаружил, что не использую тумблер включения / выключения, так как обычно использую только диммер.

В будущем я могу переписать скетч и изменить кнопку на запланированный или незапланированный (полный) переключатель. Но с моими плохими навыками программирования я мог бы немного подождать.

Рекомендуемые: