Innholdsfortegnelse:

Ingen blå lampe: 4 trinn
Ingen blå lampe: 4 trinn

Video: Ingen blå lampe: 4 trinn

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

Så denne Lazy Old Geek (L. O. G.) har jobbet med et Blue Light -prosjekt:

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

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

Vel, for det neste trinnet ønsket jeg en lampe som ville være lys i løpet av dagen og ikke hadde noe blått lys om kvelden/natten.

Design maskinvare:

Jeg bestemte meg for å bruke en RTC (sanntidsklokke) for å kontrollere tidspunktene for lysendringer.

Jeg valgte DS3231 ettersom den har bedre tid til å holde nøyaktigheten enn DS1307. DS3231 kan være 5v eller 3.3v.

For lys vil jeg bruke en WS2812B LED -streng. Disse har et enkelt tretrådsgrensesnitt og kontrollerbare røde, grønne og blå lysdioder. WS2812B er 5v -enheter.

For mikrokontrolleren vil jeg bruke en Pro Micro, 5v 16MHz.

Selv om WS2812B sannsynligvis vil fungere med 3,3V, er det bedre å bruke en 5V Arduino.

Pro Micro er en billig Arduino som bruker en Atmega32U4 mikrokontroller.

Lampen vil ha en av/på -bryter for å slå lampen på eller av.

Det vil være et potensiometer for å kontrollere lysstyrken.

Designprogramvare:

DS3231 RTC ville kontrollere timingen, den har batteribackup, så den bør beholde tiden selv om strømmen går tapt.

I løpet av dagen ville alle RGB -lysdiodene være på, kontrolleres av potten opp til full intensitet.

Tidlig kveld vil de blå lysdiodene være av, rød og grønn på maks.

Etter hvert som kvelden utvikler seg, vil de røde og grønne lysdiodene dempe, med preferanse for rødt fremfor grønt (testene mine i del 2 tyder på at de grønne lysdiodene har blått).

Etter rundt 22.00 alle lysdiodene vil være av.

PROBLEM:

Tilbake til DS3231 RTC -modulen, jeg kjøpte min fra Aliexpress som jeg gjorde for de andre komponentene.

Disse skal jobbe med og lade et LIR2032 oppladbart batteri. Jeg prøvde det. Etter omtrent en dag var batteriet tomt.

Etter litt søk på internett fant jeg denne artikkelen.

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

Jeg er enig i denne analysen, men trodde LIR2032 ville belaste tilstrekkelig, men ikke for mye. Jeg tok tilsynelatende feil. Min DS3231, selv om den også var merket som ZS-042 som i artikkelen, var litt annerledes enn hans, men nesten den samme. Så jeg loddet ut dioden som ble sett på bildet og installerte et CR2032 -batteri. Uten dioden vil ikke modulen prøve å lade batteriet. Nå holder DS3231 riktig tid, selv om strømmen er frakoblet, og batteriet skal være godt i mange år.

Strømkrav:

WS2812B er en streng med RGB -lysdioder som noen ganger kalles NeoPixels. Hver NeoPixel krever maksimalt 60mA. Jeg bruker 12 Neo -piksler, så jeg trenger 0,72A. Jeg bruker en 2A USB -adapter, så jeg har mye strøm.

Trinn 1: BlueLamp PCB

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

Så som jeg vanligvis gjorde, brukte jeg gratis Eagle Cadsoft -programvaren (nå Autodesk) til å sette opp og lage kretskortet mitt.

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

Eagle -skjemaet og tavlefiler er vedlagt sammen med skjemaet i et bilde.

En kommentar om skjematikken, 330 ohm motstanden og 10 000uFd kondensator er anbefalinger fra Adafruit's neopixel guide:

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

Vippeknappen jeg brukte "Torch -trykknappbryter" var herfra:

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

10K (B103) potensiometer herfra:

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

Trinn 2: Montering av lampen

Montering av lampen
Montering av lampen
Montering av lampen
Montering av lampen

Jeg hadde tilfeldigvis en tung sokkel fra en lampe jeg kjøpte. Den hadde en stor rund pinne på den. Jeg tok et stykke PVC -rør som passet over det. Den var litt løs, så jeg tok en bolt og et par muttere slik at jeg kunne stramme den. (se bildet)

WS2812B kan kuttes inn i antall NeoPixels du ønsker. Stripen jeg kjøpte har store mellomrom mellom NeoPixels. Jeg ville at det skulle være litt lysere, så jeg kuttet to 6 NeoPixel -strimler og kjørte dem parallelt litt forskjøvet. WS2812B -stripene kan kuttes mellom NeoPixels. I dette tilfellet trengte jeg en 180 graders endring, så jeg klippet stripen og kjørte jumperkabler mellom. Hvis du noen gang gjør dette, må du kontrollere at signalene og retningspilene er riktige. (Se bildet)

Denne WS2812B har også ledninger og en kontakt (denne kontakten er en JST-SM 3-pinners kontakt hvis du vil bruke den andre steder). Siden denne kontakten allerede var der, loddet jeg nettopp ledningene til PCB -en. For denne WS2812B er den røde ledningen 5v, grønn er signal og hvit er malt.

Når jeg hadde gjort kretskortet, la jeg litt tape på bunnen og festet den til basen. Deretter koblet jeg til Pro Micro og DS3231.

Trinn 3: Arduino Sketch

Arduino skisse
Arduino skisse

Selv om jeg kjøpte min Pro Micro fra Aliexpress.com, brukte jeg følgende informasjon for å få Arduino til å fungere:

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

For å installere biblioteket for DS3231 bruker jeg denne:

github.com/PaulStoffregen/DS1307RTC

Last ned Zip -filen

Åpne Arduino, velg 'Sketch' 'Inkluder bibliotek' 'Legg til.zip -bibliotek'

Installer følgende med samme metode

Tidsbibliotek PaulStoffregen

github.com/PaulStoffregen/Time

Tidssone -bibliotek

github.com/JChristensen/Timezone

Når du er ferdig, starter du Arduino.

Velg "Sparkfun Pro Micro" under Verktøytavler

Klikk på Verktøy igjen, det vil være et utvalg for prosessor

Du må kanskje endre den "Atmega32U4 (5V 16Mhz)"

ADVARSEL: Hvis du er uforsiktig som jeg, valgte jeg "Atmega32U4 (3.3V 8Mhz)" ved en feiltakelse. Dette "muret" det slik at Arduino ikke kunne se det. Vel, jeg prøver vanligvis å lese meg om nye ting før jeg fikk det og husket noe om dette som skjedde:

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

I denne veiledningen er det en seksjon kalt "Hvordan gjenopplive en" Bricked "Pro Micro" Som det nevnes, er det en vanskelig prosedyre, men jeg klarte å gjenopprette min.

FYI: Hvis du lurer på hvorfor det er to versjoner med forskjellige spenninger og hastigheter, vil Atmega32U4 (samme som Atmega328) fungere fint ved 5V med en 16MHz klokke. Men ved 3.3V sier designspesifikasjonen at 16MHz -klokken ikke vil fungere, derfor har de klokken på 8MHz. Vanligvis vil Arduino -programvaren ta seg av eventuelle timingproblemer.

RTC -TIPS: Det meste av programvaren som er skrevet for DS1307 vil fungere med DS3231 ettersom de har veldig lik programvare.

Sommertid

Vel, jeg ønsket å implementere sommertid, så jeg trengte ikke å omprogrammere lampen min to ganger i året. Jeg jobbet med dette i flere dager. Jeg fant ingen gode, enkle forklaringer på hvordan Time, TimeLib og RTClib fungerte.

Jeg skrev faktisk noen DST -kode for min IPClock:

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

som fungerte for Internett -tid, men jeg kunne ikke få det til å fungere for RTC -tid.

Jeg løp til slutt over følgende av JChristensen:

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

github.com/JChristensen/Timezone

For å bruke dette må du først sette RTC til UTC (Coordinated Universal Time), dette er tid i Greenwich, England. Vel, jeg visste ikke hvordan jeg skulle gjøre det, men fant denne artikkelen:

www.justavapor.com/archives/2482

Omskrive den for fjelltid (vedlagt) UTCtoRTC.ino

Så innlemmet jeg tidssonen i min skisse. For å være ærlig, har jeg ikke testet det, så bare antar at det fungerer.

Skissen min er vedlagt MTS_BlueLamp.ino.

Trinn 4: Konklusjon

Konklusjon
Konklusjon

Jeg lagde en liten krok øverst til CPAP -ansiktsmasken min. Jeg pleide å henge den på min gamle sengelampe.

I utgangspunktet veldig fornøyd med denne lampen. Fullt lyst om dagen og ikke blått om kvelden og natten.

En ting jeg ikke liker er at jeg ikke kan bruke den etter 22.00 og før kl. 17.00

Jeg fant også ut at jeg ikke bruker bryteren på/av, da jeg vanligvis bare bruker dimmerbryteren.

I fremtiden kan jeg omskrive skissen og endre knappen til planlagt eller ikke -planlagt (full på) bryter. Men med mine dårlige kodingsevner kan jeg vente en stund.

Anbefalt: