INHOUDSOPGAWE:

Aftree -horlosie / tel op / Dn -klok: 4 stappe (met foto's)
Aftree -horlosie / tel op / Dn -klok: 4 stappe (met foto's)

Video: Aftree -horlosie / tel op / Dn -klok: 4 stappe (met foto's)

Video: Aftree -horlosie / tel op / Dn -klok: 4 stappe (met foto's)
Video: Backstreet Boys - I Want It That Way (Official HD Video) 2024, November
Anonim
Aftree -horlosie / tel op / Dn -klok
Aftree -horlosie / tel op / Dn -klok

Ek het 'n paar van hierdie 8x8 LED dot-matrix-skerms in die laai gehad en het gedink wat ek daarmee moet doen. Geïnspireer deur ander instruksies, het ek die idee gekry om 'n afteller/opskerm te bou om af te tel tot 'n toekomstige datum/tyd, en as die teikentyd verby is, kan u dit tel. Ek het dit nou my aftree -horlosie op die rak gemaak.

Die idee om dit in 'n bottel te gooi, was meer 'n ongeluk terwyl jy aan 'n omhulsel dink. Ander gooi skepe in 'n bottel, hoekom nie 'n horlosie nie?

Ek wou ook dat die horlosie die somertyd laat gehoorsaam en natuurlik die instellings en tyd onthou wanneer dit ontkoppel word. Ek skakel die klok via USB aan, wat dit herprogrammeerbaar maak as u iets anders wil doen of net funksies by die kode wil voeg. Die kode is redelik eenvoudig en kan ook baie optimalisering gebruik. Ek moet nie baie let op die RAM -verbruik nie. As ek die tyd en motivering kry, kom ek terug.

Voorrade

1. Arduino Nano

2. RTC (ek gebruik die gewone DS3231 wat ook 'n EEPROM het)

3. 12x 8x8 dot matriksmodule. (Ek het vierkante modules gehad wat makliker in lyn is)

4. LDR om die helderheid van die skerm aan te pas

5. Weerstand 10 kOhm

6. Kondensator 5x 100 uF onderdruk spykers van die skerm

7. Om die kontras van die 8x8 modules te verhoog, gebruik ek die donker getinte "Window Film". Die skerm vertoon die LED's as wit kolletjies as dit nie brand nie. Die vensterfilm maak 'n blink swart voorkoms.

Stap 1: Verbind die komponente

Koppel die komponente aan
Koppel die komponente aan
Koppel die komponente aan
Koppel die komponente aan

Ek het drie van die vier -skerms gebruik om die skerm saam te stel. Om 'n datum met skuinsstrepe en tyd met dubbele punte aan te toon, benodig ons ruimte vir 8 karakters. Deur die tipiese 5x7 -lettertipe te gebruik, benodig ons ses 8x8 blokke per ry. Ek het een van die vierblokke in twee gesny en dit as twee rye by ses blokke gerangskik soos in die broodbordskema getoon.

Stap 2: 3D -gedrukte onderdele

3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele
3D -gedrukte onderdele

Om die twee rye van die skerm vas te hou en in die bottel te plaas, het ek ringe vir die vertoonraamwerk afgedruk. Ek het die lêers wat ek hieronder gebruik het, bygevoeg. Om dit sonder ondersteuning te kan druk, is dit in dele verdeel. Die skermkiekie wys die twee ringe wat aan die skerm vasgemaak is. Die deksel van die bottelhals bevat die drie knoppies om tussen die vertoonmodusse te skakel en die huidige tyd en teikentyd in te stel. Die deksel van die bottelhals het ek in TPU gedruk, sodat ek die USB -kabel in die omslag kan skuif sonder om die verbindings af te sny en dit met 'n paar draaddraad vas te maak. Ek het vergeet om te noem dat ek 'n 1,5 L wynbottel gebruik het wat ek heel onder gesny het. Alle dele wat gedruk moet word, pas op 'n drukkerbed van 20x20 cm (8x8 in).

Stap 3: Die kode

Die Arduino -kode gebruik 'n paar biblioteke wat gereeld gebruik word.

MD_MAX72xx

SPI

Draad

RTClib

Tydsone

Tydslib

Daar is 'n paar reëls in die INO -lêer wat moontlik verander moet word:

Reël 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- hang af van die 8x8-module en die oriëntasie daarvan

in plaas van FC16_HW kan dit een van:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Die kode gebruik die instellings vir Amerikaanse sentrale tyd en moet vir ander tydsones aangepas word:

Reël 53/54:

TimeChangeRule myDST = {"CDT", Second, Sun, Mar, 2, -300}; // Daglig UTC -5TimeChangeRule mySTD = {"CST", Eerste, Son, 2 November, -360}; // Standaard tyd UTC -6

Dit is maklik om aan te pas. Die naam CST/CDT is slegs 'n verwysing. Ek vertoon nie die afkorting van drie letters nie, dus dit maak nie saak nie. Die volgende parameters verwys na watter dag in die maand die oorskakeling plaasvind. Die aanpassing is in minute, dus sal plekke met +/- 30 minute aanpassings ook werk.

Die RTC werk intern op UTC-tyd sodat die tydsone-biblioteek werk soos bedoel. U wonder miskien waarom die kode na die ouer DS1307 -skyf verwys, in teenstelling met die klokskyfie wat ek gebruik het, maar dit maak nie saak nie. Die biblioteek werk goed met beide skyfies. Die DS1307 het die neiging om meer af te dryf as die DS3132. die DS3132 is die voorkeurklok. Vir diegene wat internettyd wil byvoeg, doen 'n ESP8266 die taak redelik maklik. Dit kan die RTC verouderd maak. As u hierdie veranderinge aanbring, gebruik die Arduino EEPROM om die teikentyd te stoor; ek het die RTC EEPROM gebruik om dit te doen.

Stap 4: Bediening en instellings

Bediening en instellings
Bediening en instellings
Bediening en instellings
Bediening en instellings
Bediening en instellings
Bediening en instellings

Daar is drie knoppies

1. Spyskaart / instellings

2. Op

3. Af

Met die menu -knoppie kan u deur die drie skermtipes ry: Huidige tyd, Doeltyd, Delta -tyd. Die deltatyd wys die aantal dae, HH/MM/SS tussen die huidige tyd en die teikentyd. Dit sal t- en aftel as die teiken in die toekoms is of t+ en tel as die teiken in die verlede is.

Om die huidige of teikentyd aan te pas, kies die huidige tyd of teikentydweergawe. Om die tyd te verander, hou die menu -knoppie vir 2 sekondes ingedruk en laat dit los, wat u in die instellingsmodus sal bring. Die aangrensende "/" of ":" verander in "" om aan te dui watter syfer u aanpas. Gebruik die op/af knoppies om die individuele hh/mm/ss en mm/dd/yy aan te pas. Ek het nie 'n instelling bygevoeg om tussen mm/dd/jj en dd/mm/jj te wissel nie; dit moet verander word in die kode, of miskien is iemand bereid om hierdie funksie by te voeg.

U sal opmerk dat as u die minute meer as 59 of laer as 00 stap, die uurweergawe ook sal aanpas. dieselfde geld vir sekondes, ure en dae wat die volgende hoër waarde verander as u onder 0 of bo die maksimum vir hierdie syfer kruis. Ek het dit gedoen om die verskillende perke van individuele maande te vermy en as Februarie 29 dae in 'n skrikkeljaar nodig is. Die aanpassing van die tyd vind eintlik plaas in die tydperk, sekondes sedert 1-Jan-1970.

Ek het 'n eenvoudige video bygevoeg om die telling te wys. Ek wou dit soos 'n draaiwiel vertoon. As u die duur van die verandering wil aanpas, bied reël 69 in die INO u 'n paar opsies om die verandering te bespoedig of te vertraag. 120 ms laat die syfers stadig genoeg rol, aangesien dit 'n deurlopende wiel sal wees.

Ek hoop dat u hierdie instruksies geniet het.

Patrick Geschwindner

Aanbeveel: