Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10
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
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
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
Ä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
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:
Gör en ENKEL Infinity Mirror Cube - INGEN 3D -utskrift och INGEN programmering: 15 steg (med bilder)
Gör en ENKEL Infinity Mirror Cube | INGEN 3D -utskrift och INGEN programmering: Alla gillar en bra oändlig kub, men de ser ut som om de skulle vara svåra att göra. Mitt mål för denna instruerbara är att visa dig steg-för-steg hur du gör en. Inte bara det, men med instruktionerna som jag ger dig kommer du att kunna göra en
Konfigurera Raspberry Pi 4 via bärbar dator/dator med Ethernet-kabel (ingen bildskärm, ingen Wi-Fi): 8 steg
Konfigurera Raspberry Pi 4 via bärbar dator/dator med Ethernet-kabel (ingen bildskärm, ingen Wi-Fi): I detta ska vi arbeta med Raspberry Pi 4 Model-B med 1 GB RAM för installationen. Raspberry-Pi är en enda kortdator som används för utbildningsändamål och DIY-projekt till en överkomlig kostnad, kräver en strömförsörjning på 5V 3A
Uppgradera en VU -mätarens bakgrundsbelysning till blå LED med gamla CFL -glödlampa -delar: 3 steg
Uppgradera en bakgrundsbelysning för VU-mätare till blå LED med gamla CFL-glödelsedelar.: När jag reparerade en gammal Sony TC630-rulle-till-rulle-bandspelare märkte jag att en av glödlamporna för VU-mätarens bakgrundsbelysning var trasig. Ingen mängd ledande färg fungerade eftersom ledningen hade brutit av under glasytan. Den enda ersättaren jag kan
Reparera Creative Tactic3D Rage Wireless Headset (blå blinkande, ingen parning, byte av batteri): 11 steg
Reparera Creative Tactic3D Rage trådlöst headset (blått blinkande, inget parning, byte av batteri): Den här handboken på bilderna är för dem som äger ett Creative Headset, som tappat parkopplingen med USB-sändaren och omparning fungerar inte eftersom headsetet långsamt blinkar blått och reagerar inte längre på knapparna. I detta tillstånd kan du inte
Så, du laddar STM32duino Bootloader i din "blå piller" Så vad nu ?: 7 steg
Så, du laddar STM32duino Bootloader i din "blå piller" … Så vad nu ?: Om du redan läser mina instruktioner som förklarar hur man laddar STM32duino bootloader eller annan liknande dokumentation, försöker du ladda kodexempel och …. kan vara ingenting händer överhuvudtaget. Problemet är många, om inte alla exempel för " Generic " STM32 vill