Innehållsförteckning:

Ingen blå lampa: 4 steg
Ingen blå lampa: 4 steg

Video: Ingen blå lampa: 4 steg

Video: Ingen blå lampa: 4 steg
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
Ingen blå lampa
Ingen blå lampa
Ingen blå lampa
Ingen blå lampa
Ingen blå lampa
Ingen blå lampa
Ingen blå lampa
Ingen blå lampa

Så denna Lazy Old Geek (L. O. G.) har arbetat med ett Blue Light -projekt:

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

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

Tja, för nästa steg ville jag ha en lampa som skulle vara ljus under dagen och inte hade något blått ljus på kvällen/natten.

Designhårdvara:

Jag bestämde mig för att använda en RTC (Real Time Clock) för att styra tiderna för ljusförändringar.

Jag valde DS3231 eftersom den har bättre tid att hålla noggrannhet än DS1307. DS3231 kan vara 5v eller 3.3v.

För ljus kommer jag att använda en WS2812B LED -sträng. Dessa har ett enkelt tretrådigt gränssnitt och kontrollerbara röda, gröna och blå lysdioder. WS2812B är 5v -enheter.

För mikrokontrollen använder jag en Pro Micro, 5v 16MHz.

Även om WS2812B förmodligen fungerar med 3,3V, är det bättre att använda en 5V Arduino.

Pro Micro är en billig Arduino som använder en Atmega32U4 mikrokontroller.

Lampan kommer att ha en på/av -omkopplare för att slå på eller av lampan.

Det kommer att finnas en potentiometer för att styra ljusstyrkan.

Designprogramvara:

DS3231 RTC skulle styra timingen, den har batteribackup så borde hålla tiden även om strömmen går förlorad.

Under dagen skulle alla RGB -lysdioder vara på, styrbara av potten upp till full intensitet.

Tidigt på kvällen släcks de blå lysdioderna, rött och grönt på max.

När kvällen fortskrider kommer de röda och gröna lysdioderna att dämpa, med rött framför grönt (mina tester i del 2 tyder på att de gröna lysdioderna har lite blått).

Efter cirka 22.00 alla lysdioder kommer att släckas.

PROBLEM:

Tillbaka till DS3231 RTC -modulen, jag köpte min från Aliexpress som jag gjorde för de andra komponenterna.

Dessa är tänkta att fungera med och ladda ett LIR2032 uppladdningsbart batteri. Jag provade det. Efter ungefär en dag var batteriet slut.

Efter några sökningar på Internet hittade jag den här artikeln.

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

Jag håller med om denna analys men trodde att LIR2032 skulle ladda tillräckligt men inte överdrivet. Jag hade tydligen fel. Min DS3231 även om den också var märkt som ZS-042 som i artikeln var något annorlunda än hans men nästan densamma. Så jag avlödde dioden som syns på bilden och installerade ett CR2032 -batteri. Utan dioden försöker modulen inte ladda batteriet. Nu håller DS3231 rätt tid även om strömmen är frånkopplad och batteriet ska vara bra i många år.

Kraftbehov:

WS2812B är en rad RGB -lysdioder som ibland kallas NeoPixels. Varje NeoPixel kräver högst 60mA. Jag använder 12 Neo Pixels så behöver 0.72A. Jag använder en 2A USB -adapter så har mycket ström.

Steg 1: BlueLamp -kretskort

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

Så som jag brukar, använde jag gratis Eagle Cadsoft -programvaran (nu Autodesk) för att layouta och skapa mitt kretskort.

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

Eagle -schemat och kortfiler bifogas tillsammans med schemat i en bild.

En kommentar om schemat, 330 ohm -motståndet och 10 000uFd -kondensatorn är rekommendationer från Adafruits neopixelguide:

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

Växelknappen jag använde "Torch tryckknappsbrytare" var härifrån:

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

10K (B103) potentiometern härifrån:

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

Steg 2: Montering av lampan

Montering av lampan
Montering av lampan
Montering av lampan
Montering av lampan

Jag råkade ha en tung bas från en lampa jag köpte. Den hade en stor rund stift på den. Jag tog en bit PVC -rör som passade över det. Den var lite lös så jag tog en bult och ett par muttrar så att jag kunde dra åt den. (se bild)

WS2812B kan skäras in i det antal NeoPixels du önskar. Remsan jag köpte har stora utrymmen mellan NeoPixels. Jag ville att det skulle bli lite ljusare så jag klippte två 6 NeoPixel -remsor och körde dem parallellt något förskjutna. WS2812B -remsorna kan skäras mellan NeoPixels. I det här fallet behövde jag en 180 graders ändring så jag klippte remsan och körde bygelkablar mellan. Om du någonsin gör detta, se till att signalerna och riktningspilarna är korrekta. (Se bild)

Denna WS2812B har också ledningar och en kontakt (den här kontakten är en JST-SM 3-stifts kontakt om du vill använda den någon annanstans). Eftersom den här kontakten redan var där, lödde jag bara trådarna till mitt kretskort. För denna WS2812B är den röda ledningen 5v, grön är signal och vit är mald.

När jag väl gjorde kretskortet satte jag lite tejp på botten och satte fast det på basen. Sedan kopplade jag in Pro Micro och DS3231.

Steg 3: Arduino Sketch

Arduino Sketch
Arduino Sketch

Även om jag köpte min Pro Micro från Aliexpress.com använde jag följande information för att få Arduino att fungera:

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

För att installera biblioteket för DS3231 använder jag det här:

github.com/PaulStoffregen/DS1307RTC

Ladda ner Zip -filen

Öppna Arduino, välj "Skissa" "Inkludera bibliotek" "Lägg till.zip -bibliotek"

Installera följande med samma metod

Tidsbibliotek PaulStoffregen

github.com/PaulStoffregen/Time

Tidszonsbibliotek

github.com/JChristensen/Timezone

När du är klar startar du Arduino.

Under Verktygskort väljer du "Sparkfun Pro Micro"

Klicka på Verktyg igen, det kommer att finnas ett urval för processor

Du kan behöva ändra det "Atmega32U4 (5V 16Mhz)"

VARNING: Om du är slarvig som jag, valde jag "Atmega32U4 (3.3V 8Mhz)" av misstag. Detta "murade" det så att Arduino inte kunde se det. Jag brukar försöka läsa om nya saker innan jag fick det och kom ihåg något om att detta hände:

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

I den här guiden finns det ett avsnitt som heter "Hur man återupplivar en" Bricked "Pro Micro" Som det nämns är det en knepig procedur men jag lyckades återställa min.

FYI: Om du undrar varför det finns två versioner med olika spänningar och hastigheter, fungerar Atmega32U4 (samma som Atmega328) bra vid 5V med en 16MHz klocka. Men vid 3.3V säger designspecifikationen att 16MHz -klockan inte fungerar, det är därför de har klockan på 8MHz. I allmänhet kommer Arduino -programvaran att ta hand om alla tidsproblem.

RTC -TIPS: De flesta programvaror som skrivits för DS1307 fungerar med DS3231 eftersom de har mycket liknande programvara.

Sommartid

Tja, jag ville implementera sommartid, så jag behövde inte programmera om min lampa två gånger om året. Jag arbetade med detta i flera dagar. Jag kunde inte hitta några bra enkla förklaringar om hur Time, TimeLib och RTClib fungerade.

Jag skrev faktiskt en DST -kod för mitt IPClock:

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

som fungerade för internettid men jag kunde inte få det att fungera under RTC -tid.

Jag stötte äntligen på följande av JChristensen:

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

github.com/JChristensen/Timezone

För att använda detta måste du först ställa in RTC till UTC (Coordinated Universal Time), det här är tid i Greenwich, England. Tja, visste inte hur jag skulle göra det men hittade den här artikeln:

www.justavapor.com/archives/2482

Skriv om det för bergstid (bifogad) UTCtoRTC.ino

Sedan införlivade jag tidszonen i min skiss. För att vara ärlig har jag inte testat det så bara antar att det fungerar.

Min skiss är bifogad MTS_BlueLamp.ino.

Steg 4: Slutsats

Slutsats
Slutsats

Jag gjorde en liten krok överst för min CPAP -ansiktsmask. Jag brukade hänga den på min gamla sänglampa.

I princip väldigt nöjd med denna lampa. Fullt ljus under dagen och inget blått på kvällen och natten.

En sak jag inte gillar är att jag inte kan använda den efter 22:00 och före kl. 17.00

Jag upptäckte också att jag inte använder omkopplaren på/av eftersom jag vanligtvis bara använder dimmern.

I framtiden kan jag skriva om skissen och ändra knappen till schemalagd eller oplanerad (full på) omkopplare. Men med mina dåliga kodningskunskaper kan jag vänta ett tag.

Rekommenderad: