Съдържание:

Без синя лампа: 4 стъпки
Без синя лампа: 4 стъпки

Видео: Без синя лампа: 4 стъпки

Видео: Без синя лампа: 4 стъпки
Видео: Светодиодные лампы LED G4 для люстры (ОБЗОР) 2024, Юли
Anonim
Няма синя лампа
Няма синя лампа
Няма синя лампа
Няма синя лампа
Няма синя лампа
Няма синя лампа
Няма синя лампа
Няма синя лампа

Така че този Lazy Old Geek (L. O. G.) работи по проект Blue Light:

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

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

Е, за следващата стъпка исках лампа, която да е ярка през деня и да няма синя светлина вечер/нощ.

Дизайн хардуер:

Реших да използвам RTC (часовник в реално време), за да контролирам времето за смяна на светлината.

Избрах DS3231, тъй като той има по -добра времева точност от DS1307. DS3231 може да бъде 5v или 3.3v.

За светлина ще използвам LED низ WS2812B. Те имат прост трипроводен интерфейс и контролируеми червени, зелени и сини светодиоди. WS2812B са 5v устройства.

За микроконтролера ще използвам Pro Micro, 5v 16MHz.

Докато WS2812B вероятно ще работи с 3.3V, по -добре е да използвате 5V Arduino.

Pro Micro е евтин Arduino, използващ микроконтролер Atmega32U4.

Лампата ще има ключ за включване/изключване за включване или изключване на лампата.

Ще има потенциометър за контрол на яркостта.

Дизайн софтуер:

DS3231 RTC ще контролира времето, има резервно копие на батерията, така че трябва да запазва времето, дори ако захранването е загубено.

През деня всички 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 изисква максимум 60mA. Използвам 12 Neo Pixels, така че се нуждая от 0.72A. Използвам 2A USB адаптер, така че има много ток.

Стъпка 1: Платка BlueLamp

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

Както обикновено правя, използвах безплатния софтуер Eagle Cadsoft (сега Autodesk) за оформление и създаване на моята печатна платка.

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

Схемата и файловете на Eagle са прикачени заедно със схемата в картина.

Един коментар относно схемата, 330 омовия резистор и 10 000uFd кондензатор са препоръки от неопикселовото ръководство на Adafruit:

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

Бутонът за превключване, който използвах „Превключвател с бутон на факел“, беше от тук:

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

Потенциометърът 10K (B103) от тук:

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

Стъпка 2: Сглобяване на лампата

Сглобяване на лампата
Сглобяване на лампата
Сглобяване на лампата
Сглобяване на лампата

Случайно имах тежка основа от закупена лампа. На него имаше голяма кръгла игла. Взех парче PVC тръба, която пасваше върху него. Беше малко хлабав, затова взех болт и няколко гайки, за да го затягна. (виж снимката)

WS2812B може да бъде нарязан на желания от вас брой неопиксели. Лентата, която купих, има големи пространства между NeoPixels. Исках да е малко по -ярък, затова изрязах две 6 ленти NeoPixel и ги пуснах успоредно леко изместени. Лентите WS2812B могат да се режат между NeoPixels. В този случай имах нужда от смяна на 180 градуса, така че отрязах лентата и прокарах джъмперните проводници между тях. Ако някога направите това, уверете се, че сигналите и стрелките за посоката са правилни. (Вижте снимката)

Този WS2812B също има проводници и конектор (този конектор е JST-SM 3-пинов конектор, ако искате да го използвате другаде). Тъй като този конектор вече беше там, току -що запоех проводниците към моята печатна платка. За този WS2812B червеният проводник е 5v, зеленият е сигнал, а белият е заземен.

След като направих печатната платка, сложих малко лента на дъното и я залепих за основата. След това включих 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, изберете „Sketch“„Include Library“„Add.zip library“

Инсталирайте следното, използвайте същия метод

Библиотека на времето PaulStoffregen

github.com/PaulStoffregen/Time

Библиотека на часовата зона

github.com/JChristensen/Timezone

Когато приключи, стартирайте Arduino.

Под Инструментални табла изберете „Sparkfun Pro Micro“

Кликнете отново върху Инструменти, ще има избор за процесор

Може да се наложи да го промените „Atmega32U4 (5V 16Mhz)“

ВНИМАНИЕ: Ако сте невнимателни като мен, погрешно избрах „Atmega32U4 (3.3V 8Mhz)“. Това го „зазида“, така че Arduino не можеше да го види. Е, обикновено се опитвам да прочета нови неща, преди да ги получа и да си спомня нещо за това, което се случва:

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

В това ръководство има раздел, наречен „Как да съживя„ тухлен “Pro Micro“Както се споменава, това е трудна процедура, но успях да възстановя моя.

Забележка: Ако се чудите защо има две версии с различно напрежение и скорост, Atmega32U4 (също като Atmega328) ще работи добре при 5V с 16MHz часовник. Но при 3.3V спецификациите на дизайна казват, че 16MHz часовникът няма да работи, затова те имат часовник на 8MHz. Като цяло софтуерът 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

След това включих часовата зона в моята скица. Честно казано, не съм го тествал, така че само приемам, че работи.

Моята скица е приложена MTS_BlueLamp.ino.

Стъпка 4: Заключение

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

Направих малка кука в горната част за моята CPAP маска за лице. Висях го на старата си лампа за легло.

По принцип много доволен от тази лампа. Напълно ярка през деня и без синьо вечер и нощ.

Едно нещо, което не ми харесва, е, че не мога да го използвам след 22:00 часа. и преди 5 часа сутринта

Също така установих, че не използвам превключвателя за включване/изключване, тъй като обикновено използвам само превключвателя за димер.

В бъдеще може да пренапиша скицата и да променя бутона на планиран или непланиран (пълно включване) превключвател. Но с лошите ми умения за кодиране може да изчакам малко.

Препоръчано: