INHOUDSOPGAWE:

Rainbow Word Clock met 'n volledige Rainbow -effek en meer: 13 stappe (met foto's)
Rainbow Word Clock met 'n volledige Rainbow -effek en meer: 13 stappe (met foto's)

Video: Rainbow Word Clock met 'n volledige Rainbow -effek en meer: 13 stappe (met foto's)

Video: Rainbow Word Clock met 'n volledige Rainbow -effek en meer: 13 stappe (met foto's)
Video: Wacht tot je Ziet hoe de Mooiste Tweeling ter Wereld er NU Uitziet! 2024, November
Anonim
Rainbow Word Clock met 'n volledige reënboog -effek en meer
Rainbow Word Clock met 'n volledige reënboog -effek en meer

Doelwitte

1) Eenvoudig

2) Nie duur nie

3) So energiedoeltreffend as moontlik

Rainbow Word Clock met 'n volledige reënboog -effek.

'N Smiley op die woordklok.

Eenvoudige IR afstandsbediening

Werk 03-nov-18 LDR op vir die helderheidsbeheer van die neopixels

Opdateer 01-jan-19 Verminder WS2812B-kragverbruik.

Opdateer 15-jan-19 Smiley.

Opdateer 23-jan-19-kode 1.6

Dateer 10-mar-19 biblioteke se skakels op

Opdateer 14-apr-19 weergawe 1.7 Keuse smiley aan/af kraag reënboog/fix enz.

Laaste opdatering 01-jun-19 weergawe 2.0 IR afstandsbediening en herontwerp van kode

Stap 1: Die saak vir die klok

Die saak vir die klok
Die saak vir die klok
Die saak vir die klok
Die saak vir die klok
Die saak vir die klok
Die saak vir die klok

Met 'n paar eenvoudige gereedskap en 'n bietjie vaardigheid, is dit nie moeilik om 'n letterklok te maak nie; ek het die materiaal wat vir my beskikbaar is, gebruik.

In die geval het ek 'n growwe dennebar gebruik waarin ek 'n paar rame gesaag het. Dit sou die vier kante van die kas maak, wat aan mekaar vasgeplak en versterk is met 'n klein stuk hout in die hoeke. Dan moet die hout geskuur en geverf word.

Die letters word deur 'n drukker in spieëlskrif uit foelie gesny. Die foelie is aan die agterkant van die glasplaat en is bedek met 'n dubbellaagse patroonpapier vir beter ligverspreiding. Die glas word vasgemaak met 'n silikoon seëlaar.

Stap 2: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels

Die Neopixels LED's is op 'n houtplaat gerangskik, waarin u eers 3 mm gate boor. Aan die voorkant word hulle vergroot tot lettergrootte tot 3/4 diepte. Daarna word die 3 mm aan die agterkant verhoog tot 10 mm, dit is die grootte van 'n Neopixel. Vir sommige karakters, onder andere die W, moet die gat effens aangepas word.

Ek het laaghout gebruik wat vinnig versplinter het, MDF is miskien beter.

Met individuele LED's is u nie gebonde aan 'n vaste afstand nie, wat die geval is met LED -stroke. Die LED's moet met mekaar verbind word. U kan dit met alle kort stukke draad doen. Maar die twee min (-) verbindings is net soos die twee plus (+) verbindings intern verbind, dus dieselfde verbinding.

U kan baie werk bespaar deur 'n stuk draad aan die linker LED en dan aan die regter LED te soldeer. Soldeer dan die tussenstowwe.

Die dataverbinding moet natuurlik met kort stukke wees, want die data-out gaan na data-in.

Stap 3: Aanpassing van voorste teks

Aanpassing van voorste teks
Aanpassing van voorste teks
Aanpassing van voorste teks
Aanpassing van voorste teks
Aanpassing van voorste teks
Aanpassing van voorste teks

Die voorplaat is nou in Nederlands, maar dit is eenvoudig om te skakel in enige taal.

Die NeoPixels-LEDs word hier opeenvolgend van 0-167 verander. Die nommering gaan van die eerste ry links bo na regs en dan na die tweede ry regs na links, ens. Aanpassing kan gedoen word volgens u eie behoeftes. Die aantal NeoPixels word bepaal deur die hoeveelheid karakters. Minder of meer Neopixels kan in die volgende reël aangepas word

#define NUMPIXELS 168 // Hoeveel NeoPixels is aan die Arduino gekoppel?

168 is meer as 'n ander getal. Nommering begin by 0. U kan enige teks maak. As u die teks verander, moet u ook die ooreenstemmende woorde aanpas. Die nommering bly dieselfde.

As 'n voorbeeld, DRIE van die notule, word in die kode bepaal

void zetmDrie () {

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

}

As u die woord Arduino wil maak, gaan dit soos volg:

leegte 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; // Woord-arduino

}

U kan dus woorde tussenin maak.

Vir klokwoorde is dit nuttig as dit 'n aaneengeslote woord vorm, maar dit is nie absoluut noodsaaklik nie. Die ongebruikte letters het nie Neonpixels nodig nie. Ek het hulle almal gevul vir die gebruik van toekomstige moontlikhede anders as die tyd wat dit vertoon word.

As u die beginpunt verander of die opeenvolgingsvolgorde verander, moet die nommering dienooreenkomstig verander.

Stap 4: Volle reënboog -effek

Volle reënboog -effek
Volle reënboog -effek

Die klok is nou so geprogrammeer dat die aantal kere per sekonde getel word hoeveel neopixels daar aangeskakel is.

Die totale spektrum gaan oor die aantal verdeelde en dan effens verskuif. As gevolg hiervan het elke Neopixel 'n ander kleur wat voortdurend verander. Neopixel nr 1 en nr 167 volg mekaar op 'n sekere kleur.

As u minder verskillende kleure op dieselfde tyd verkies, is dit maklik om aan te pas. Die kleur verander steeds oor die hele spektrum, maar met 'n kleiner deel daarvan. Neopixel nr 1 en nr 167 volg nie meer op mekaar nie.

Die helderheid kan in die volgende reël ingestel word, pixels.setBrightness (150);

'N Kleiner getal is minder en 'n groter getal meer helderheid.

Stap 5: Die verskillende komponente

Die verskillende komponente
Die verskillende komponente
Die verskillende komponente
Die verskillende komponente
Die verskillende komponente
Die verskillende komponente

Die volgende komponente wat ek gebruik het

Arduino Pro Mini ATMEGA328 5V/16MHz

Klokmodule DS3231

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

Foelie letter sjabloon

DCF77 ontvanger

Stap 6: Kode vir die klok

Hier is die kode. Bygevoeg 'n helderheidsbeheer en krag uit as niemand teenwoordig is nie en in die nag.

RCWL-0516 radar mikrogolf bewegingsensor bygevoeg (soek RADAR)

Na 10 minute se beweging, gaan die NeoPixels uit.

Oor weergawe 2.0

Die geheueverbruik was te veel, met geheuewaarskuwings in die samesteller. Daarom het ek die kode heeltemal verander, maar die werking het dieselfde gebly en 'n IR -ontvanger is bygevoeg.

Daar is 'n stukkie kode om die EEPROM van data te voorsien. Run dit een keer deur die / * en * / tydelik te verwyder. Soek vir => voer dit een keer uit om data aan die EEPROM te verskaf

Aan die begin van die leemte -lus is kode om die kode van u eie afstandsbediening af te lees. U kan dit uitvoer deur die / * en * / tydelik te verwyder, moenie vergeet om dit daarna terug te plaas nie. U kan ook u eie knoppies definieer. Die gelees kode moet ingevoer word in => Definieer u eie knoppies hier

Die Samsung -afstandsbediening werk beter as die (baie goedkoop) eenvoudige.

Stap 7: Die hardeware beskrywing

Die hardeware beskrywing
Die hardeware beskrywing
Die hardeware beskrywing
Die hardeware beskrywing
Die hardeware beskrywing
Die hardeware beskrywing

Daar is verskillende weergawes van die Arduino Pro Mini. Let wel, die verbindings kan verskil.

Bygevoeg 'n RCWL-0516 mikrogolfbewegingsensor.

Solank daar beweging in die omgewing van die horlosie is, bly die NeoPixel aan

en sodra daar nie meer beweging is nie, gaan die NeoPixel na 'n paar minute af.

In weergawe 2.0 word die DCF77 -ontvanger voorsien van krag via pen 13. Hierdie pen word gedefinieer as uitset en hoog gestel wanneer die DCF77 -roetine aangespreek word. Die DCF77 -ontvanger gebruik 0,28 mA en is slegs 'n paar minute per dag nodig.

Deur af te skakel, word bespaar

5 Volt * 0,28 mA / 1000 * 24 uur * 365 dae * 1 / 0,85 effektiewe kragtoevoer = 14,4 watt per jaar.

Dit lyk nie veel nie, maar elke bietjie help.

Stap 8: LDR vir die helderheidsbeheer van die neopixels

LDR vir die helderheidsbeheer van die neopixels
LDR vir die helderheidsbeheer van die neopixels
LDR vir die helderheidsbeheer van die neopixels
LDR vir die helderheidsbeheer van die neopixels

Bygevoeg 'n LDR vir die helderheidsbeheer van die neopixels.

Ek het die LDR in die ruimte van neopixel 103 vasgeplak. Hierdie een word nie in die tydskerm gebruik nie en beïnvloed dus nie die regulering nie. Die papier demp die invallende lig, maar dit is geen probleem nie.

Die spanningsverdeler van LDR en 20 kohm weerstand gaan na A0 van die Arduino Pro Mini. Die spanning is 'n aanduiding van die ligintensiteit en dus ook 'n aanduiding van die hoeveelheid lig wat die neopixels moet gee.

Die formule wat ek gebruik, gee my goeie ligbeheer; dit kan aangepas word na gelang van die omstandighede. Afhangende van die lighoeveelheid, kan die spanning wissel tussen 0 en 5 volt wat omgeskakel word na 0 tot 1024 tellings wat in "LDRValue" is.

As die nuwe gemete waarde groter is as die laaste berekende waarde, word die intensiteit met 1 verhoog, as dit laer is as met 1 verminder en as dit gelyk is, word niks gedoen nie. Om die waarde stadig te laat verloop, sodat daar geen knipperende effek is nie, word slegs 1 verhoog of verlaag, en omdat die berekening in die lus is, word dit eers herbereken nadat dit 25 keer deur die lus was.

Die intensiteit is teoreties 'n minimum van 20 en 'n maksimum van 1024/7 + 45 = 191. Die maksimum waarde wat ek gemeet het, was 902, wat neerkom op 'n intensiteit van 173. Dit pas goed by die 150 wat ek as standaardwaarde gestel het. (sien pixels.setBrightness (150))

In weergawe 2.0 kan u die afstandsbediening instel. Die volgende parameters is bygevoeg: Brightness_min as minimum en Brightness_max as maximum setting en Brightness_Offset as setting parameter. Helderheid_min en _max is die waardes wat afhang van u eie situasie. Brightness_Offset is 'n waarde wat met die afstandsbediening gestel kan word en waarmee min of meer helderheid ingestel kan word.

Daar is ook 'n dooie band van 3 tussen gemete LDRValue en berekende BerLDRValue waardes.

Gebruik die drukstate in die leegte BrightnessControl om die helderheidsinstelling na te gaan.

Stap 9: Vermindering van WS2812B -kragverbruik

Vermindering van die WS2812B -kragverbruik
Vermindering van die WS2812B -kragverbruik

Die bestuurders op WS2812B -aanspreekbare neopixels trek stroom, selfs as die neopixels af is, in kleur 0 (geen neopixels -elemente brand nie).

As al 169 neopixels uit is, meet ek 69 mA aan die neopixels. As ons aanvaar dat die klok 12 uur per dag af is, bespaar die totale stilstand dan: 5 (Volt kragtoevoer) * 69/1000 (Miliampere / 1000 = Ampere) * 12 (Aantal ure per dag) * 365 (Aantal dae in 'n jaar) = 1511 Watt -ure. Dus op 'n jaarlikse basis 1,5 Kwh. Ek stem saam, dit is op sigself nie veel nie, maar baie kleintjies maak 'n groot een.

Die kring is eenvoudig. Die pluspunt van die kragtoevoer word deur 'n P-kanaal MosFet aangeskakel. Die radarsensor bepaal of die neopixels aan of af is. Ek het twee MosFet -pakkies geplaas om die ON -weerstand so laag as moontlik te hou weens die verlies van die MosFets. By normale gebruik meet ek 4, 5 mili volt oor die MosFets. Die hek word beheer deur uitset 4 van die Arduino via 'n 470 Kohm -weerstand. As die uitset digitaal laag word (0), is die neopixels aan en hoog (1) af.

Stap 10: Smiley op die woordklok

Smiley op die woordklok
Smiley op die woordklok
Smiley op die woordklok
Smiley op die woordklok

'N Smiley op die woordklok.

Soms verskyn daar 'n smiley op die klok, maar dit maak jou gelukkig.

Die smiley word geaktiveer deur die radarsensor. Die aantal kere wat beweging (verstelbaar) is, is 'n maatstaf vir die voorkoms van die smiley. Die % tekens dui aan dat beweging opgespoor is. Met elke tiende (verstelbare) beweging kom die Smiley met 'n Winky Face en na drie keer 'n Winky Face kom die vierde keer 'n Smiley Face wat tong uitsteek.

Die Smiley is 'n klein verandering in die kode.

Stap 11: Watter biblioteke word gebruik

Watter biblioteke word gebruik.

Ek gebruik dit in Windows 7 met Arduino IDE 1.6 en dit is ook getoets in Windows 10 met Adruino IDE 1.8.8

RTClib-master

Arduino-DS3231-meester

Adafruit_NeoPixel-master

Arduino-DCF77-meester

Ken Shirriff se IRremote-biblioteek

Omdat daar altyd verwarring is oor die biblioteek wat ek gebruik, voeg ek die een by wat ek gebruik.

Die IRremote -biblioteek gebruik baie geheue. In die IRremote.h word aangedui dat u enige ongebruikte protokol kan deaktiveer

// Elke protokol wat u insluit, kos geheue en, tydens die dekodeer, kos tyd // Deaktiveer (stel op 0) al die protokolle wat u nie nodig het nie!

Ek het alles gedeaktiveer behalwe die NEC- en Samsung -protokol. Dit gee 'n geheue besparing van 10%. Op die oomblik is daar nie meer 'n probleem met die hoeveelheid geheue nie, dus is die uitskakeling vir eers nie nodig nie.

Stap 12: Eenvoudige IR -afstandsbediening

Eenvoudige IR afstandsbediening
Eenvoudige IR afstandsbediening
Eenvoudige IR afstandsbediening
Eenvoudige IR afstandsbediening
Eenvoudige IR -afstandsbediening
Eenvoudige IR -afstandsbediening

Die vergadering

Soos u op die foto's kan sien, het die gat vir LED 132 'n bietjie te groot geword. Ek het dit goed gebruik en die IR -ontvanger daarby gevoeg. Koppel die datapen van die IR -ontvanger VS1838 aan pen 7 van die Arduino. Koppel verder die plus en minus kragtoevoer. Die IR -ontvanger gebruik 0,21 mA en kan ook na die FET -skakelaar aan die plus -kragtoevoer gekoppel word. Dit lei tot 'n besparing van 5 volt * 0,21 mA / 1000 * 12 uur * 365 uur * 1 / 0,85 doeltreffendheidseffek = 5,4 watt per jaar, as die klok 50% van die tyd is. Dit lyk nie veel nie, maar elke bietjie help.

Die werking is soos volg

Druk op enige sleutel op die IR -afstandsbediening en dan op die OK -sleutel. Die eerste keer dat u druk, beland u in die IR -verwerking en die tweede keer sal u agterkom of dit 'n geregverdigde versoek was. Die tweede keer dat OK vinnig moet volg, moet u die eerste toets druk, want anders gaan dit weer terug. Ek het hierdie konstruksie so gemaak dat ek amper nie die eerste kode korrek gedekodeer het nie en dus nie in die IR -hantering beland het nie.

Een keer in die IR -hantering, gaan 'n aantal LED's aan vir meer inligting, lees verder en kyk na die eerste beeld.

Die beskrywing is vir die eenvoudige afstandsbediening, maar u kan enige afstandsbediening gebruik en u eie sleutels definieer. Ek het ook 'n Samsung afstandsbediening gebruik.

Die eerste vier sleutels stem ooreen met die boonste vier rye LED's. Vier LED's draai links of regs, afhangende van die instelling. As die sleutels 1 tot 4 ingedruk word, word die toestand omgekeer en in die geheue gestoor.

1 vaste kleur of reënboog effek

2 sekondes flits af of tweede flits aan

3 smiley af smiley aan

4 DCF77 af of DCF77 aan

Die nommer van die sleutel word op die volgende sleutels vertoon

5 smiley toonbank

6 reënboog spektrum breedte

7 maak die rooi instelling reg

8 herstel groen instelling

9 herstel blou instelling

Ry 6, 7 en 8 van die LED's stem nou ooreen met die ingestelde waarde, ry 6 dui die eenhede aan, ry 7 die tiene en ry 8 die honderd. Elke ry begin met die waarde nul. Die eerste led in die ry is dus 0 die tweede is 1, ens.

0 tydsinstelling

/\ helderheid instelling

As die 0 -knoppie ingedruk word, brand die "tien" LED's om aan te dui dat u die tyd wil stel en as u 'n tweede keer op 0 druk, verskyn die ingestelde tyd op die skerm.

Die tyd kan nou ingestel word en word op die skerm vertoon.

Stel die regte tyd in en druk dan op die OK -knoppie as die minuut dieselfde is op 'n verwysingsklok.

Die tyd word aangepas.

As u nie die minute of ure -knoppie gebruik nie, word geen tyd verander nie. As u daarop druk, word die tyd onmiddellik ingestel.

Die waarde vir sleutels 5 tot 9 kan met die sleutels verander word

regs is plus 1

links is minus 1

vorentoe is plus 10

omgekeerde is minus 10.

en vir die tydsbepaling

regs is plus 1 minuut

links is minus 1 minuut

vorentoe is plus 1 uur

omgekeerde is minus 1 uur

Dit gebeur soms dat die toetsdruk nie herken word of twee keer uitgevoer word nie. Let dus op as die instelling goed verloop, anders probeer of herstel dit weer. Die Samsung -afstandsbediening wat ek ook getoets het, werk baie keer beter as die (baie goedkoop) eenvoudige afstandsbediening.

As u die kleur instel, sien u die verandering direk op die hele skerm. Vir 'n webwerf met 'n kleuroorsig, sien https://www.helderester.nl/kleurentabel.html. U kan natuurlik enige waarde stel.

As die reënboogspektrumwydte 'n waarde van 0 het, is die spektrum baie smal en het die skerm een kleur wat voortdurend verander.

Die nadeel om die tyd so in te stel, is dat u nie 'n somer / winter oorgang kan bereken nie, want ons het die datum verkeerd. Dit maak nie saak vir die klok self nie, want ons gebruik dit nie nou nie.

Stap 13: watter gevolge?

Watter gevolge?
Watter gevolge?

Wat hierna volg, klink as die geheue nog voldoende is.

Ek het reeds die luidsprekerkaste. Hulle is van 'n ou skootrekenaar.

Aanbeveel: