Indholdsfortegnelse:

Rainbow Word -ur med fuld regnbueeffekt og mere: 13 trin (med billeder)
Rainbow Word -ur med fuld regnbueeffekt og mere: 13 trin (med billeder)

Video: Rainbow Word -ur med fuld regnbueeffekt og mere: 13 trin (med billeder)

Video: Rainbow Word -ur med fuld regnbueeffekt og mere: 13 trin (med billeder)
Video: Chapter 10 - Walden by Henry David Thoreau - Baker Farm 2024, Juli
Anonim
Rainbow Word Clock med en fuld regnbueeffekt og mere
Rainbow Word Clock med en fuld regnbueeffekt og mere

Mål

1) Enkel

2) Ikke dyrt

3) Så energieffektiv som muligt

Rainbow Word Clock med fuld regnbueeffekt.

En smiley på ordet ur.

Enkel IR fjernbetjening

Opdater 03-nov-18 LDR til lysstyrkekontrol af neopixelerne

Opdatering 01-jan-19 Reducering af WS2812B-strømforbrug.

Opdater 15-jan-19 Smiley.

Opdater 23-jan-19 Kode 1.6

Opdater 10-mar-19 biblioteker-links

Opdater 14-apr-19 version 1.7 Valg smiley on/off collor rainbow/fix enz.

Sidste opdatering 01-jun-19 version 2.0 IR fjernbetjening og kode redesign

Trin 1: Uret til uret

Etuiet til uret
Etuiet til uret
Etuiet til uret
Etuiet til uret
Etuiet til uret
Etuiet til uret

Med nogle enkle værktøjer og en smule dygtighed er det ikke svært at lave et bogstavur. Jeg brugte materialerne til rådighed for mig.

Til sagen brugte jeg en ru fyrretræ, hvor jeg savede et par stel. Disse ville lave de fire sider af sagen, som blev limet sammen og forstærket med et lille stykke træ i hjørnerne. Derefter skal træet slibes og males.

Bogstaverne er skåret ud af folie af en printer i spejlskrivning. Folien er på bagsiden af glaspladen og er dækket med et dobbeltlagsmønsterpapir for bedre lysfordeling. Glasset fikseres med silikoneforsegling.

Trin 2: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels
Neopixels

Neopixels lysdioder er anbragt på en træplade. Her borer du først 3 mm huller. Foran er de forstørret til bogstavstørrelse til 3/4 dybde. Derefter øges 3 mm bagpå til 10 mm, dette er på størrelse med en Neopixel. For nogle tegn, blandt andet W, skal hullet justeres lidt.

Jeg brugte krydsfiner, som hurtigt splintrede, MDF kan være bedre.

Med individuelle lysdioder er du ikke bundet til en fast afstand, hvilket er tilfældet med LED -strimler. LED'erne skal være forbundet med hinanden. Du kan gøre dette med alle korte stykker tråd. Men de to min (-) forbindelser er ligesom de to plus (+) forbindelser internt forbundet, så den samme forbindelse.

Du kan spare dig selv for en masse arbejde ved at lodde et stykke ledning til venstre LED og derefter til højre LED. Derefter loddes de mellemliggende.

Dataforbindelsen skal naturligvis med korte stykker, fordi data-out går til data-in.

Trin 3: Justering af fronttekst

Justering af tekst foran
Justering af tekst foran
Justering af tekst foran
Justering af tekst foran
Justering af tekst foran
Justering af tekst foran

Frontpladen er nu på hollandsk, men ganske enkelt at konvertere til ethvert sprog.

NeoPixels-lysdioderne skiftes i rækkefølge her fra 0-167. Nummereringen går fra første række øverst til venstre til højre og derefter til anden række fra højre til venstre osv. Justering kan foretages efter dine egne behov. Antallet af NeoPixels bestemmes af mængden af tegn. Mindre eller flere Neopixels kan justeres i den følgende linje

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

168 er end et andet tal. Nummerering starter ved 0. Du kan lave enhver tekst. Hvis du ændrer teksten, skal du også justere de tilsvarende ord. Nummereringen forbliver den samme.

Som et eksempel bestemmes DRIE af minutterne 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 lave ordet Arduino, går det således:

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 lave ord imellem.

For urord er det nyttigt, hvis de danner et sammenhængende ord, men det er ikke absolut nødvendigt. De ubrugte bogstaver behøver ikke Neonpixels. Jeg har dem alle fyldt til brug af andre fremtidige muligheder end tiden bliver vist.

Hvis du ændrer udgangspunktet eller ændrer rækkefølgen, bør nummereringen ændres i overensstemmelse hermed.

Trin 4: Fuld Rainbow -effekt

Fuld Rainbow -effekt
Fuld Rainbow -effekt

Uret er nu så programmeret, at der tælles antal gange i sekundet, hvor mange neopixels der er tændt.

Det totale spektrum handler om antallet af delte og derefter lidt forskudt. Som følge heraf har hver Neopixel en anden farve, som ændrer sig løbende. Neopixel nr. 1 og nr. 167 følger hinanden på nogle farver.

Hvis du foretrækker mindre forskellige farver på samme tid, er dette let at justere. Farven skifter stadig over hele spektret, men med en mindre del af den. Neopixel nr. 1 og nr. 167 følger ikke længere hinanden, nogle farver indebærer.

Lysstyrken kan indstilles i følgende linje, pixels.setBrightness (150);

Et mindre tal er mindre og et større antal mere lysstyrke.

Trin 5: De forskellige komponenter

De forskellige komponenter
De forskellige komponenter
De forskellige komponenter
De forskellige komponenter
De forskellige komponenter
De forskellige komponenter

Følgende komponenter brugte jeg

Arduino Pro Mini ATMEGA328 5V/16MHz

Urmodul DS3231

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

Folie brev stencil

DCF77 modtager

Trin 6: Kode til uret

Her er koden. Tilføjet en lysstyrkekontrol og slukket, når ingen er til stede og om natten.

Tilføjet RCWL-0516 Radar Microwave Motion Sensor (søg efter RADAR)

Efter 10 minutter uden bevægelse går NeoPixels ud.

Om version 2.0

Hukommelsesforbruget var for meget, og der mangler advarsler om hukommelse i kompilatoren. Derfor har jeg fuldstændig ændret koden, men operationen er forblevet den samme, og der er tilføjet en IR -modtager.

Der er et stykke kode til at forsyne EEPROM med data. Kør dette én gang ved midlertidigt at fjerne / * og * /. Søg efter => kør dette én gang for at give EEPROM data

I begyndelsen af tomrumsløkken er kode til at læse koden fra din egen fjernbetjening. Du kan køre dette ved midlertidigt at fjerne / * og * /, glem ikke at lægge dem tilbage bagefter. Du kan også definere dine egne knapper. Den læste kode skal indtastes i => Definer dine egne knapper her

Samsungs fjernbetjening fungerer bedre end den (meget billige) simple.

Trin 7: Hardwarebeskrivelsen

Hardwarebeskrivelsen
Hardwarebeskrivelsen
Hardwarebeskrivelsen
Hardwarebeskrivelsen
Hardwarebeskrivelsen
Hardwarebeskrivelsen

Der er forskellige versioner af Arduino Pro Mini. Bemærk, forbindelserne kan variere.

Tilføjet en RCWL-0516 mikrobølgebevægelsessensor.

Så længe der er bevægelse i nærheden af uret, forbliver NeoPixel tændt

og så snart der ikke er mere bevægelse, slukker NeoPixel efter et par minutter.

I version 2.0 forsynes DCF77 -modtageren med strøm via pin 13. Denne pin defineres som output og sættes højt, når DCF77 -rutinen adresseres. DCF77 -modtageren bruger 0,28 mA og er kun nødvendig i et par minutter om dagen.

Slukning gemmes

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

Dette virker ikke som meget, men hver bit hjælper.

Trin 8: LDR til lysstyrkekontrol af neopixelerne

LDR til lysstyrkekontrol af neopixelerne
LDR til lysstyrkekontrol af neopixelerne
LDR til lysstyrkekontrol af neopixelerne
LDR til lysstyrkekontrol af neopixelerne

Tilføjet en LDR til lysstyrkekontrol af neopixel.

Jeg har limet LDR ind i rummet på neopixel 103. Denne bruges ikke i tidsvisning og påvirker derfor ikke reguleringen. Papiret dæmper det indfaldende lys, men det er ikke noget problem.

Spændingsdeleren for LDR og 20 kohm modstand går til A0 i Arduino Pro Mini. Spændingen er en indikator for lysintensiteten og derfor også en indikator for mængden af lys, som neopixelerne skal give.

Formlen, jeg bruger, giver mig god lysstyring, den kan justeres afhængigt af omstændighederne. Afhængig af lysmængden kan spændingen variere mellem 0 og 5 volt, som konverteres til 0 til 1024 tællinger, der er i "LDRValue".

Hvis den nye måleværdi er større end den sidst beregnede værdi, øges intensiteten med 1, hvis den er lavere end reduceret med 1, og hvis den er lige, gøres intet. For at få værdien til at fortsætte langsomt, så der ikke er nogen blinkende effekt, øges eller reduceres kun 1, og fordi beregningen er i sløjfen, genberegnes den kun efter at have krydset sløjfen 25 gange.

Intensiteten er teoretisk mindst 20 og maksimalt 1024/7 + 45 = 191. Den maksimale værdi, som jeg målte, var 902, hvilket svarer til en intensitet på 173. Dette passer godt til de 150, som jeg har angivet som standardværdi. (se pixels.setBrightness (150))

I version 2.0 kan du indstille betjeningen via fjernbetjeningen. Følgende parametre er tilføjet: Brightness_min som minimum og Brightness_max som maksimal indstilling og Brightness_Offset som indstillingsparameter. Brightness_min og _max er de værdier, der kan afhænge af din egen situation. Brightness_Offset er en værdi, der kan indstilles med fjernbetjeningen, og som mere eller mindre lysstyrke kan indstilles med.

Der er også et dødbånd på 3 mellem målte LDRValue og beregnede BerLDRValue værdier.

Brug udskriftssætningerne i tomrummet BrightnessControl til at kontrollere lysstyrkeindstillingen.

Trin 9: Reducering af WS2812B -strømforbrug

Reducering af WS2812B -strømforbrug
Reducering af WS2812B -strømforbrug

Driverne på WS2812B adresserbare neopixel tegner strøm, selv når neopixel er slukket, indstillet til farve 0 (ingen neopixelelementer lyser).

Når alle 169 neopixel er ude, måler jeg 69 mA til neopixel. Forudsat at uret er slukket 12 timer om dagen, sparer den totale nedlukning derefter: 5 (Volt strømforsyning) * 69/1000 (Miliampere / 1000 = Ampere) * 12 (Antal timer pr. Dag) * 365 (Antal dage i en år) = 1511 Watt -timer. Så på årsbasis 1,5 Kwh. Jeg er enig, det er ikke meget i sig selv, men mange små gør en stor.

Kredsløbet er enkelt. Plus af strømforsyningen skiftes af en P-kanal MosFet. Radarsensoren bestemmer, om neopixelerne er tændt eller slukket. Jeg har sat to MosFet -parrelel for at holde ON -modstanden så lav som muligt på grund af tab af MosFets. Ved normal brug måler jeg 4, 5 mili volt over MosFets. Porten styres af output 4 fra Arduino via en 470 Kohm -modstand. Hvis output går til lav (0) digitalt, er neopixelerne tændt og ved høj (1) er de slukket.

Trin 10: Smiley på Word Clock

Smiley på orduret
Smiley på orduret
Smiley på orduret
Smiley på orduret

En smiley på ordet ur.

Der vises lejlighedsvis en smiley på uret, men det gør dig glad.

Smiley'en udløses af radarsensoren. Antallet af bevægelser (justerbar) er et mål for Smileys udseende. Tegnene % angiver, at der er registreret bevægelse. For hver tiende (justerbar) bevægelse kommer Smiley'en med et Winky Face og efter tre gange kommer et Winky Face fjerde gang, hvor et Smiley Face stikker tungen ud.

Smiley er en lille ændring i koden.

Trin 11: Hvilke biblioteker bruges

Hvilke biblioteker bruges.

Jeg bruger dem i Windows 7 med Arduino IDE 1.6, og de er også blevet 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 der altid er forvirring om det anvendte bibliotek, tilføjer jeg det, jeg bruger.

IRremote -biblioteket bruger meget hukommelse. I IRremote.h er det angivet, at du kan deaktivere enhver ubrugt protokol

// Hver protokol, du inkluderer, koster hukommelse, og under afkodning koster det tid // Deaktiver (sæt til 0) alle de protokoller, du ikke har brug for/ønsker!

Jeg har alt deaktiveret undtagen NEC- og Samsung -protokollen. Dette giver en hukommelsesbesparelse på 10%. I øjeblikket er der ikke længere et problem med mængden af hukommelse, så deaktivering er foreløbig ikke nødvendig.

Trin 12: Enkel IR -fjernbetjening

Enkel IR fjernbetjening
Enkel IR fjernbetjening
Enkel IR fjernbetjening
Enkel IR fjernbetjening
Enkel IR fjernbetjening
Enkel IR fjernbetjening

Forsamlingen

Som du kan se på billederne, har hullet til LED 132 vist sig at være lidt for stort. Jeg gjorde god brug af dette og tilføjede IR -modtageren til det. Tilslut datapinden på IR -modtageren VS1838 til pin 7 på Arduino. Tilslut endvidere plus og minus strømforsyningen. IR -modtageren bruger 0,21 mA og kan også tilsluttes plusstrømforsyningen efter FET -kontakten. Dette resulterer i en besparelse, hvis uret er på 50% af tiden, på 5 volt * 0,21 mA / 1000 * 12 timer * 365 dage * 1 / 0,85 effektiv strømforsyning = 5,4 watt om året. Dette virker ikke som meget, men hver bit hjælper.

Betjeningen er som følger

Tryk på en vilkårlig tast på IR -fjernbetjeningen og derefter på tasten OK. Første gang du trykker, ender du i IR -behandlingen, og anden gang opdager du, om det var en berettiget anmodning. Anden gang OK skal følge hurtigt det første tastetryk, for ellers går det tilbage igen. Jeg lavede denne konstruktion, så jeg næsten ikke fik den første kode korrekt afkodet og derfor ikke endte i IR -håndteringen.

En gang i IR -håndteringen tændes et antal lysdioder for information, for forklaring læs mere og se det første billede.

Beskrivelsen er til den enkle fjernbetjening, men du kan bruge enhver fjernbetjening og definere dine egne taster. Jeg brugte også en Samsung fjernbetjening.

De fire første taster svarer til de fire øverste rækker af lysdioder. Fire lysdioder drejer til venstre eller højre afhængigt af indstillingen. Når der trykkes på tasterne 1 til 4, vendes tilstanden og gemmes i hukommelsen.

1 fast farve eller regnbueeffekt

2 sekunders flash slukket eller andet flash tændt

3 smiley off smiley on

4 DCF77 slukket eller DCF77 tændt

Tastens nummer vises på følgende taster

5 smiley tæller

6 regnbue spektrum bredde

7 fix rød indstilling

8 fix grøn indstilling

9 fix blå indstilling

Række 6, 7 og 8 af lysdioderne svarer nu til den indstillede værdi, række 6 angiver enhederne, række 7 tierne og række 8 hundrede. Hver række starter med værdien nul. Så den første led i rækken er 0 den anden er 1 osv.

0 tidsindstilling

/\ lysstyrkeindstilling

Når der trykkes på 0 -knappen, lyser de "ti" lysdioder for at angive, at du vil indstille klokkeslættet, og når du trykker på 0 en anden gang, vises den indstillede tid på displayet.

Tiden kan nu indstilles og vises i displayet.

Indstil det korrekte tidspunkt, og tryk derefter på knappen OK, hvis minuttet er det samme på et referenceur.

Tiden justeres.

Hvis du ikke betjener minutter eller timer -knappen, foretages der ingen tidsændringer. Hvis du trykker på dem, indstilles tiden med det samme.

Værdien for tasterne 5 til 9 kan ændres med tasterne

højre er plus 1

venstre er minus 1

fremad er plus 10

omvendt er minus 10.

og for tidsindstillingen

højre er plus 1 minut

venstre er minus 1 minut

fremad er plus 1 time

omvendt er minus 1 time

Det sker nogle gange, at tastetrykket ikke genkendes eller udføres to gange. Så vær opmærksom, hvis indstillingen går godt, ellers prøv eller korriger igen. Samsungs fjernbetjening, som jeg også testede, fungerede mange gange bedre end den (meget billige) enkle fjernbetjening.

Når du indstiller farven, ser du ændringen direkte på hele displayet. For et websted med en farveoversigt kan du se https://www.helderester.nl/kleurentabel.html. Du kan naturligvis indstille enhver værdi.

Hvis regnbuespektrumbredden har en værdi på 0, er spektret meget smalt, og displayet har en farve, der ændrer sig konstant.

Ulempen ved at indstille tiden på denne måde er, at du ikke kan beregne en sommer / vinter overgang, fordi vi har datoen forkert. Det gør ikke noget for selve uret, fordi vi ikke bruger det nu.

Trin 13: Hvilke tiltag?

Hvilke tiltag?
Hvilke tiltag?

Det følgende lyder, hvis den ledige hukommelse stadig er tilstrækkelig.

Jeg har allerede højttalerkasserne. De er fra en gammel bærbar computer.

Anbefalede: