Spisu treści:

Brak niebieskiej lampy: 4 kroki
Brak niebieskiej lampy: 4 kroki

Wideo: Brak niebieskiej lampy: 4 kroki

Wideo: Brak niebieskiej lampy: 4 kroki
Wideo: 4х канальное Zigbee реле ZG-003-RF с сухими контактами - способы подключения, режимы работы 2024, Lipiec
Anonim
Brak niebieskiej lampy
Brak niebieskiej lampy
Brak niebieskiej lampy
Brak niebieskiej lampy
Brak niebieskiej lampy
Brak niebieskiej lampy
Brak niebieskiej lampy
Brak niebieskiej lampy

Więc ten Lazy Old Geek (L. O. G.) pracował nad projektem Blue Light:

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

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

Cóż, w następnym kroku chciałem lampę, która będzie jasna w ciągu dnia i nie będzie miała niebieskiego światła wieczorem/w nocy.

Sprzęt projektowy:

Zdecydowałem się użyć zegara czasu rzeczywistego (RTC) do kontrolowania czasów zmian światła.

Wybrałem DS3231, ponieważ ma lepszą dokładność czasu niż DS1307. DS3231 może mieć napięcie 5 V lub 3,3 V.

Do światła użyję ciągu LED WS2812B. Posiadają prosty, trzyprzewodowy interfejs i sterowalne diody LED w kolorze czerwonym, zielonym i niebieskim. WS2812B to urządzenia 5v.

Do mikrokontrolera użyję Pro Micro, 5v 16MHz.

Podczas gdy WS2812B prawdopodobnie będzie działał z napięciem 3,3 V, lepiej użyć Arduino 5 V.

Pro Micro to tanie Arduino wykorzystujące mikrokontroler Atmega32U4.

Lampa będzie miała włącznik/wyłącznik do włączania lub wyłączania lampy.

Nie zabraknie potencjometru do sterowania jasnością.

Oprogramowanie do projektowania:

DS3231 RTC będzie kontrolował czas, ma podtrzymanie bateryjne, więc powinien utrzymywać czas nawet w przypadku utraty zasilania.

W ciągu dnia wszystkie diody RGB byłyby włączone, sterowane przez potencjometr do pełnej intensywności.

Wczesnym wieczorem niebieskie diody będą wyłączone, czerwone i zielone włączone max.

W miarę upływu wieczoru czerwone i zielone diody LED będą ściemniać się, z preferencją czerwonego nad zielonym (moje testy w części 2 sugerują, że zielone diody LED mają w sobie trochę niebieskiego).

Po około 22.00 wszystkie diody LED zgasną.

PROBLEM:

Wracając do modułu DS3231 RTC, kupiłem go od Aliexpressa, tak jak dla innych komponentów.

Mają one współpracować i ładować akumulator LIR2032. Wypróbowałem to. Po około dniu bateria była wyczerpana.

Po kilku poszukiwaniach w Internecie znalazłem ten artykuł.

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

Zgadzam się z tą analizą, ale uważam, że LIR2032 ładuje się odpowiednio, ale nie nadmiernie. Najwyraźniej się myliłem. Mój DS3231 choć również oznaczony jako ZS-042 jak w artykule był nieco inny niż jego, ale prawie taki sam. Odlutowałem więc diodę widoczną na zdjęciu i zainstalowałem baterię CR2032. Bez diody moduł nie będzie próbował ładować akumulatora. Teraz DS3231 utrzymuje prawidłowy czas nawet przy odłączonym zasilaniu, a bateria powinna działać przez wiele lat.

Wymagania dotyczące zasilania:

WS2812B to ciąg diod LED RGB nazywanych czasami NeoPixels. Każdy NeoPixel wymaga maksymalnie 60mA. Używam 12 Neo Pixels, więc potrzebuję 0,72A. Używam adaptera USB 2A, więc mam dużo prądu.

Krok 1: PCB BlueLamp

Niebieska płytka drukowana
Niebieska płytka drukowana
Niebieska płytka drukowana
Niebieska płytka drukowana

Tak jak zwykle, użyłem darmowego oprogramowania Eagle Cadsoft (obecnie Autodesk) do rozplanowania i stworzenia mojej płytki drukowanej.

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

Schemat orła i pliki planszy są załączone wraz ze schematem na zdjęciu.

Jeden komentarz na temat schematu, rezystora 330 omów i kondensatora 10 000 uFd to zalecenia przewodnika po neopixelach Adafruit:

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

Przycisk przełącznika, którego użyłem „Przełącznik palnika” był stąd:

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

Potencjometr 10K (B103) stąd:

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

Krok 2: Montaż lampy

Montaż lampy
Montaż lampy
Montaż lampy
Montaż lampy

Zdarzyło mi się mieć ciężką podstawę od zakupionej lampy. Miał na sobie dużą okrągłą szpilkę. Wziąłem kawałek rury PVC, który pasował do niego. Był trochę luźny, więc wziąłem śrubę i kilka nakrętek, aby móc je dokręcić. (widzieć zdjęcie)

WS2812B można przyciąć do żądanej liczby NeoPixels. Listwa, którą kupiłem, ma duże odstępy między NeoPixelami. Chciałem, żeby było trochę jaśniej, więc wyciąłem dwa paski 6 NeoPixel i poprowadziłem je równolegle, lekko przesunięte. Paski WS2812B można ciąć między NeoPixels. W tym przypadku potrzebowałem zmiany o 180 stopni, więc przeciąłem pasek i poprowadziłem przewody połączeniowe. Jeśli kiedykolwiek to zrobisz, upewnij się, że sygnały i strzałki kierunkowe są prawidłowe. (patrz zdjęcie)

Ten WS2812B ma również przewody i złącze (to złącze to 3-pinowe złącze JST-SM, jeśli chcesz go użyć gdzie indziej). Ponieważ to złącze już tam było, po prostu przylutowałem przewody do mojej płytki. W przypadku tego WS2812B czerwony przewód to 5 v, zielony to sygnał, a biały to masa.

Kiedy już wykonałem płytkę, nałożyłem na spód taśmę i przykleiłem ją do podstawy. Następnie podłączyłem Pro Micro i DS3231.

Krok 3: Szkic Arduino

Szkic Arduino
Szkic Arduino

Chociaż kupiłem mój Pro Micro od Aliexpress.com, użyłem następujących informacji, aby uruchomić Arduino:

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

Aby zainstalować bibliotekę dla DS3231, używam tej:

github.com/PaulStoffregen/DS1307RTC

Pobierz plik Zip

Otwórz Arduino, wybierz „Szkic” „Dołącz bibliotekę” „Dodaj bibliotekę.zip”

Zainstaluj następujące, użyj tej samej metody

Biblioteka Czasu PaulStoffregen

github.com/PaulStoffregen/Time

Biblioteka stref czasowych

github.com/JChristensen/Strefa czasowa

Po zakończeniu uruchom Arduino.

W sekcji Tablice narzędziowe wybierz „Sparkfun Pro Micro”

Kliknij ponownie Narzędzia, pojawi się wybór procesora

Może być konieczna zmiana „Atmega32U4 (5V 16Mhz)”

OSTRZEŻENIE: Jeśli jesteś tak nieostrożny, jak ja, przez pomyłkę wybrałem „Atmega32U4 (3,3 V 8 Mhz)”. To go „zamurowało”, więc Arduino nie mogło tego zobaczyć. Cóż, zwykle staram się czytać o nowych rzeczach, zanim je dostałem i przypomniałem sobie coś o tym wydarzeniu:

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

W tym przewodniku znajduje się sekcja zatytułowana „Jak ożywić ‚Bricked’ Pro Micro” Jak wspomniano, jest to trudna procedura, ale udało mi się odzyskać moją.

FYI: Jeśli zastanawiasz się, dlaczego istnieją dwie wersje o różnych napięciach i prędkościach, Atmega32U4 (taka sama jak Atmega328) będzie działać dobrze przy 5 V z zegarem 16 MHz. Ale przy 3,3 V specyfikacja projektowa mówi, że zegar 16 MHz nie będzie działał, dlatego mają zegar na 8 MHz. Ogólnie rzecz biorąc, oprogramowanie Arduino zajmie się wszelkimi problemami z synchronizacją.

WSKAZÓWKA RTC: Większość oprogramowania napisanego dla DS1307 będzie działać z DS3231, ponieważ mają one bardzo podobne oprogramowanie.

Czas letni

Cóż, chciałem wdrożyć DST, więc nie musiałem przeprogramowywać lampy dwa razy w roku. Pracowałem nad tym przez kilka dni. Nie mogłem znaleźć żadnych dobrych prostych wyjaśnień na temat działania Time, TimeLib i RTClib.

Napisałem trochę kodu DST dla mojego IPClocka:

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

to działało dla czasu internetowego, ale nie mogłem go uruchomić w czasie RTC.

W końcu natknąłem się na następujące przez JChristensena:

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

github.com/JChristensen/Strefa czasowa

Aby z tego skorzystać, musisz najpierw ustawić RTC na UTC (uniwersalny czas koordynowany), czyli czas w Greenwich w Anglii. Cóż, nie wiedziałem, jak to zrobić, ale znalazłem ten artykuł:

www.justavapor.com/archives/2482

Przepisałem go na czas górski (w załączeniu) UTCtoRTC.ino

Następnie włączyłem strefę czasową do mojego szkicu. Szczerze mówiąc, nie testowałem tego, więc zakładając, że to działa.

Mój szkic jest załączony MTS_BlueLamp.ino.

Krok 4: Wniosek

Wniosek
Wniosek

Zrobiłem mały haczyk na górze mojej maski CPAP. Wieszałam go na mojej starej lampce nocnej.

W zasadzie bardzo zadowolony z tej lampy. Całkowicie jasny w ciągu dnia i bez niebieskiego wieczorem i w nocy.

Jedna rzecz, której nie lubię, to to, że nie mogę jej używać po 22:00. a przed 5 rano

Odkryłem również, że nie używam przełącznika włączania / wyłączania, ponieważ zwykle używam tylko ściemniacza.

W przyszłości mogę przepisać szkic i zmienić przycisk na zaplanowane lub nieplanowane (pełne włączenie). Ale z moimi słabymi umiejętnościami kodowania mogę chwilę poczekać.

Zalecana: