Innholdsfortegnelse:

Rainbow Word Clock med full Rainbow -effekt og mer: 13 trinn (med bilder)
Rainbow Word Clock med full Rainbow -effekt og mer: 13 trinn (med bilder)

Video: Rainbow Word Clock med full Rainbow -effekt og mer: 13 trinn (med bilder)

Video: Rainbow Word Clock med full Rainbow -effekt og mer: 13 trinn (med bilder)
Video: Кто-нибудь из вас слышал о полуночной игре? Страшные истории. Мистика. Ужасы 2024, Juli
Anonim
Rainbow Word Clock med en full regnbueeffekt og mer
Rainbow Word Clock med en full regnbueeffekt og mer

Mål

1) Enkel

2) Ikke dyrt

3) Så energieffektivt som mulig

Rainbow Word Clock med full regnbueeffekt.

En smiley på ordklokken.

Enkel IR fjernkontroll

Oppdater 03-nov-18 LDR for Brightness Control of Neopixels

Oppdatering 01-jan-19 Redusere WS2812B strømforbruk.

Oppdater 15-jan-19 Smiley.

Oppdater 23-jan-19 Kode 1.6

Oppdater 10-mar-19 biblioteker-lenker

Oppdater 14-apr-19 versjon 1.7 Choice smiley on/off collor rainbow/fix enz.

Siste oppdatering 01-jun-19 versjon 2.0 IR fjernkontroll og kodedesign

Trinn 1: Etui til klokken

Saken til klokken
Saken til klokken
Saken til klokken
Saken til klokken
Saken til klokken
Saken til klokken

Med noen enkle verktøy og litt dyktighet er det ikke vanskelig å lage en bokstavklokke. Jeg brukte materialene som var tilgjengelige for meg.

For saken brukte jeg en grov furubar der jeg saget noen rammer. Disse ville lage de fire sidene av saken, som ble limt sammen og forsterket med et lite treverk i hjørnene. Da trenger treet sliping og maling.

Bokstavene er kuttet ut av folie av en skriver i speilskriving. Folien er på baksiden av glassplaten og er dekket med et dobbeltlagsmønsterpapir for bedre lysfordeling. Glasset festes med silikonforsegling.

Trinn 2: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels

Neopixels lysdioder er plassert på en treplate. I dette borer du først 3 mm hull. Foran forstørres de til bokstavstørrelse til 3/4 dybde. Etter det økes 3 mm på baksiden til 10 mm, dette er på størrelse med en Neopixel. For noen tegn, blant annet W, bør hullet justeres litt.

Jeg brukte kryssfiner som raskt splintret, MDF kan være bedre.

Med individuelle lysdioder er du ikke bundet til en fast avstand, som er tilfelle med LED -strimler. Lysdiodene må være koblet til hverandre. Du kan gjøre dette med alle korte trådstykker. Men de to min (-) tilkoblingene er akkurat som de to pluss (+) tilkoblingene internt tilkoblet, så den samme tilkoblingen.

Du kan spare mye arbeid ved å lodde et stykke ledning til venstre LED og deretter til høyre LED. Deretter loddes de mellomliggende.

Datatilkoblingen må selvfølgelig med korte stykker fordi data-out går til data-in.

Trinn 3: Justere tekst foran

Justere tekst foran
Justere tekst foran
Justere tekst foran
Justere tekst foran
Justere tekst foran
Justere tekst foran

Frontplaten er nå på nederlandsk, men bare for å konvertere til et hvilket som helst språk.

NeoPixels-lysdiodene byttes i rekkefølge her fra 0-167. Nummereringen går fra den første raden øverst til venstre til høyre og deretter til den andre raden fra høyre til venstre osv. Justering kan gjøres i henhold til dine egne behov. Antall NeoPixels bestemmes av antall tegn. Mindre eller flere Neopixels kan justeres på følgende linje

#define NUMPIXELS 168 // Hvor mange NeoPixels er festet til Arduino?

168 er enn et annet tall. Nummerering starter på 0. Du kan lage hvilken som helst tekst. Hvis du endrer teksten, må du også justere de tilsvarende ordene. Nummereringen forblir den samme.

Som et eksempel, DRIE of the minutes, bestemmes i koden

void zetmDrie () {

Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-drie

}

Hvis du vil lage ordet Arduino, går det slik:

void zetArduino () {

Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;

Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; // Word-arduino

}

Så du kan lage ord mellom.

For klokkeord er det nyttig hvis de danner et sammenhengende ord, men det er ikke absolutt nødvendig. De ubrukte bokstavene trenger ikke Neonpixels. Jeg har dem alle fylt for bruk av fremtidige muligheter enn at tiden blir vist.

Hvis du endrer utgangspunktet eller endrer rekkefølgen, bør nummereringen endres tilsvarende.

Trinn 4: Full Rainbow -effekt

Full regnbueeffekt
Full regnbueeffekt

Klokken er nå så programmert at det telles hvor mange ganger i sekundet hvor mange neopiksler det er slått på.

Det totale spekteret handler om antall delte og deretter litt forskjøvet. Som et resultat har hver Neopixel en annen farge som endres kontinuerlig. Neopixel nr. 1 og nr. 167 følger hverandre på noen farger.

Hvis du foretrekker mindre forskjellige farger samtidig, er dette enkelt å justere. Fargen skifter fremdeles over hele spekteret, men med en mindre del av den. Neopixel nr. 1 og nr. 167 følger ikke lenger hverandre som noen farger innebærer.

Lysstyrken kan stilles inn på følgende linje, pixels.setBrightness (150);

Et mindre tall er mindre og et større antall mer lysstyrke.

Trinn 5: De forskjellige komponentene

De forskjellige komponentene
De forskjellige komponentene
De forskjellige komponentene
De forskjellige komponentene
De forskjellige komponentene
De forskjellige komponentene

Følgende komponenter brukte jeg

Arduino Pro Mini ATMEGA328 5V/16MHz

Klokkemodul DS3231

168 stykker Neopixels led's WS2812 LED Chip & Heatsink 5V 5050 RGB WS2811 IC innebygd

Folie brev sjablong

DCF77 -mottaker

Trinn 6: Kode for klokken

Her er koden. Lagt til en lysstyrkekontroll og slå av når ingen er til stede og om natten.

Lagt til RCWL-0516 Radar Microwave Motion Sensor (søk etter RADAR)

Etter 10 minutter uten bevegelse, går NeoPixels ut.

Om versjon 2.0

Minnebruk var for mye, og det er tomt for advarsler om minne i kompilatoren. Det er derfor jeg har endret koden fullstendig, men operasjonen har forblitt den samme og en IR -mottaker er lagt til.

Det er et stykke kode for å gi EEPROM data. Kjør dette en gang ved midlertidig å fjerne / * og * /. Søk etter => kjør dette en gang for å gi EEPROM data

I begynnelsen av tomridsløyfen er kode for å lese koden fra din egen fjernkontroll. Du kan kjøre dette ved å midlertidig fjerne / * og * /, ikke glem å sette dem tilbake etterpå. Du kan også definere dine egne knapper. Koden som leses må skrives inn => Definer dine egne knapper her

Samsungs fjernkontroll fungerer bedre enn den (veldig billige) enkle.

Trinn 7: Maskinvarebeskrivelsen

Maskinvarebeskrivelsen
Maskinvarebeskrivelsen
Maskinvarebeskrivelsen
Maskinvarebeskrivelsen
Maskinvarebeskrivelsen
Maskinvarebeskrivelsen

Det er forskjellige versjoner av Arduino Pro Mini. Vær oppmerksom på at tilkoblingene kan variere.

Lagt til en RCWL-0516 mikrobølge bevegelsessensor.

Så lenge det er bevegelse i nærheten av klokken, forblir NeoPixel på

og så snart det ikke er mer bevegelse, går NeoPixel av etter noen minutter.

I versjon 2.0 får DCF77 -mottakeren strøm via pinne 13. Denne pinnen defineres som utgang og settes høyt når DCF77 -rutinen adresseres. DCF77 -mottakeren bruker 0,28 mA og er bare nødvendig i noen få minutter per dag.

Slå av lagrer

5 volt * 0,28 mA / 1000 * 24 timer * 365 dager * 1 / 0,85 effektiv strømforsyning = 14,4 watt i året.

Dette virker ikke så mye, men hver bit hjelper.

Trinn 8: LDR for lysstyrkekontroll av neopikselene

LDR for Brightness Control of Neopixels
LDR for Brightness Control of Neopixels
LDR for Brightness Control of Neopixels
LDR for Brightness Control of Neopixels

Lagt til en LDR for lysstyrkekontroll av neopikslene.

Jeg har limt LDR inn i rommet til neopixel 103. Denne brukes ikke i tidsvisningen og påvirker derfor ikke reguleringen. Papiret demper hendelsen, men det er ikke noe problem.

Spenningsdeleren til LDR og 20 kohm motstand går til A0 på Arduino Pro Mini. Spenningen er en indikator på lysintensiteten og derfor også en indikator på lysmengden som neopikslene må gi.

Formelen jeg bruker gir meg god lysstyring, den kan justeres avhengig av omstendighetene. Avhengig av lysmengden kan spenningen variere mellom 0 og 5 volt som konverteres til 0 til 1024 tellinger som er i "LDRValue".

Hvis den nye måleverdien er større enn den siste beregnede verdien, økes intensiteten med 1, hvis den er lavere enn redusert med 1 og hvis den er lik, blir ingenting gjort. For å få verdien til å fortsette sakte, slik at det ikke er noen blinkende effekt, økes eller reduseres bare 1, og fordi beregningen er i sløyfen, blir den bare beregnet på nytt etter å ha krysset sløyfen 25 ganger.

Intensiteten er teoretisk minimum 20 og maks 1024/7 + 45 = 191. Maksimumsverdien som jeg målte var 902, som utgjør en intensitet på 173. Dette passer godt med de 150 som jeg har angitt som standardverdi. (se piksler. setBrightness (150))

I versjon 2.0 kan du stille inn kontrollen via fjernkontrollen. Følgende parametere er lagt til: Brightness_min som minimum og Brightness_max som maksimal innstilling og Brightness_Offset som innstillingsparameter. Brightness_min og _max er verdiene som kan avhenge av din egen situasjon. Brightness_Offset er en verdi som kan angis med fjernkontrollen og som kan innstilles mer eller mindre lysstyrke.

Det er også et dødt bånd på 3 mellom målt LDRValue og beregnede BerLDRValue -verdier.

Bruk utskriftsuttalelsene i tomrummet BrightnessControl for å kontrollere lysstyrkeinnstillingen.

Trinn 9: Redusere WS2812B strømforbruk

Redusere WS2812B strømforbruk
Redusere WS2812B strømforbruk

Driverne på WS2812B adresserbare neopiksler trekker strøm selv når neopikslene er slått av, satt til farge 0 (ingen neopiksler -elementer lyser).

Når alle 169 neopiksler er ute, måler jeg 69 mA til neopikslene. Forutsatt at klokken er slått av 12 timer i døgnet, sparer den totale avstengningen deretter: 5 (Volt strømforsyning) * 69/1000 (Miliampere / 1000 = Ampere) * 12 (Antall timer per dag) * 365 (Antall dager i en år) = 1511 Wattimer. Så på årsbasis 1,5 Kwh. Jeg er enig, det er ikke mye i seg selv, men mange små gjør en stor.

Kretsen er enkel. Pluss av strømforsyningen byttes av en P-kanal MosFet. Radarsensoren avgjør om neopikslene er på eller av. Jeg har satt to MosFet -parrelel for å holde ON -motstanden så lav som mulig på grunn av tap av MosFets. Ved normal bruk måler jeg 4, 5 mili volt over MosFets. Porten styres av utgang 4 fra Arduino via en 470 Kohm -motstand. Hvis utgangen går til lav (0) digitalt, er neopikslene på og på høy (1) er de slått av.

Trinn 10: Smilefjes på Word Clock

Smilefjes på ordklokken
Smilefjes på ordklokken
Smilefjes på ordklokken
Smilefjes på ordklokken

En smiley på ordklokken.

Noen ganger kommer det en smilefjes på klokken, men det gjør deg glad.

Smilefjes utløses av radarsensoren. Antall ganger bevegelse (justerbar) er et mål på smilens utseende. % -Tegnet indikerer at bevegelse er oppdaget. For hver tiende (justerbare) bevegelse kommer Smiley med et Winky Face, og etter tre ganger kommer et Winky Face fjerde gang et Smiley Face stikker tungen ut.

The Smiley er en liten endring i koden.

Trinn 11: Hvilke biblioteker som brukes

Hvilke biblioteker som brukes.

Jeg bruker dem i Windows 7 med Arduino IDE 1.6, og de har også blitt testet i Windows 10 med Adruino IDE 1.8.8

RTClib-master

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-master

Ken Shirriff's IRremote Library

Fordi det alltid er forvirring om biblioteket som brukes, legger jeg til det jeg bruker.

IRremote -biblioteket bruker mye minne. I IRremote.h er det angitt at du kan deaktivere ubrukt protokoll

// Hver protokoll du inkluderer koster minne og, under dekoding, koster tid // Deaktiver (sett til 0) alle protokollene du ikke trenger/ønsker!

Jeg har alt deaktivert bortsett fra NEC- og Samsung -protokollen. Dette gir en minnebesparelse på 10%. For øyeblikket er det ikke lenger et problem med mengden minne, så for øyeblikket er det ikke nødvendig å deaktivere.

Trinn 12: Enkel IR -fjernkontroll

Enkel IR -fjernkontroll
Enkel IR -fjernkontroll
Enkel IR -fjernkontroll
Enkel IR -fjernkontroll
Enkel IR -fjernkontroll
Enkel IR -fjernkontroll

Forsamlingen

Som du kan se på bildene, har hullet til LED 132 vist seg å være litt for stort. Jeg utnyttet dette godt og la til IR -mottakeren. Koble datapinnen til IR -mottakeren VS1838 til pinne 7 på Arduino. Koble til pluss og minus strømforsyning. IR -mottakeren bruker 0,21 mA og kan også kobles til pluss strømforsyning etter FET -bryteren. Dette resulterer i en besparelse, hvis klokken er på 50% av tiden, på 5 volt * 0,21 mA / 1000 * 12 timer * 365 dager * 1 / 0,85 effektiv strømforsyning = 5,4 watt per år. Dette virker ikke så mye, men hver bit hjelper.

Driften er som følger

Trykk på hvilken som helst tast på IR -fjernkontrollen og deretter på OK -tasten. Første gang du trykker vil du ende opp i IR -behandlingen, og andre gang vil du oppdage om det var en berettiget forespørsel. Den andre gangen OK må følge raskt det første tastetrykket, for ellers går det tilbake igjen. Jeg konstruerte denne konstruksjonen slik at jeg knapt fikk den første koden riktig avkodet og derfor ikke havnet i IR -håndteringen.

En gang i IR -håndteringen tennes en rekke lysdioder for informasjon, for forklaring, les videre og se det første bildet.

Beskrivelsen er for den enkle fjernkontrollen, men du kan bruke hvilken som helst fjernkontroll og definere dine egne nøkler. Jeg brukte også en Samsung fjernkontroll.

De fire første tastene tilsvarer de fire øverste radene med lysdioder. Fire lysdioder svinger til venstre eller høyre, avhengig av innstillingen. Når tastene 1 til 4 trykkes, reverseres tilstanden og lagres i minnet.

1 fast farge eller regnbueeffekt

2 sekunders blits av eller andre blits på

3 smiley av smiley på

4 DCF77 av eller DCF77 på

Tastens nummer vises på de følgende tastene

5 smiley -teller

6 regnbuespektrumbredde

7 fikse rød innstilling

8 fikser grønn innstilling

9 fikser blå innstilling

Rad 6, 7 og 8 på lysdiodene tilsvarer nå den innstilte verdien, rad 6 angir enhetene, rad 7 tiere og rad 8 hundre. Hver rad starter med verdien null. Så den første ledningen i rekken er 0 den andre er 1 osv.

0 tidsinnstilling

/\ lysstyrkeinnstilling

Når du trykker på 0 -knappen, lyser de "ti" lysdiodene for å indikere at du vil stille klokken, og når du trykker 0 en gang til, vises den innstilte tiden på displayet.

Tiden kan nå stilles inn og vises i displayet.

Still inn riktig tid, og hvis minuttet er det samme på en referanseklokke, trykker du på OK -knappen.

Tiden justeres.

Hvis du ikke bruker minutter eller timer -knappen, blir det ingen tidsendring. Hvis du trykker på dem, settes tiden umiddelbart.

Verdien for tastene 5 til 9 kan endres med tastene

høyre er pluss 1

venstre er minus 1

fremover er pluss 10

omvendt er minus 10.

og for tidsinnstillingen

høyre er pluss 1 minutt

venstre er minus 1 minutt

fremover er pluss 1 time

revers er minus 1 time

Noen ganger skjer det at tastetrykket ikke gjenkjennes eller utføres to ganger. Så vær oppmerksom hvis innstillingen går bra, ellers prøv eller korriger igjen. Samsungs fjernkontroll som jeg også testet fungerte mange ganger bedre enn den (veldig billige) enkle fjernkontrollen.

Når du angir fargen, ser du endringen direkte på hele skjermen. For et nettsted med en oversikt over farger, se https://www.helderester.nl/kleurentabel.html. Du kan selvsagt angi hvilken som helst verdi.

Hvis regnbuespektrumbredden har en verdi på 0, er spekteret veldig smalt, og displayet har en farge som endres konstant.

Ulempen med å stille tiden på denne måten er at du ikke kan beregne en sommer / vinter overgang fordi vi har datoen feil. Det spiller ingen rolle for selve klokken fordi vi ikke bruker den nå.

Trinn 13: Hva følger med?

Hvilke fremskritt?
Hvilke fremskritt?

Det som følger, lyder hvis det ledige minnet fortsatt er tilstrekkelig.

Jeg har allerede høyttalerkassene. De er fra en gammel bærbar PC.

Anbefalt: