INHOUDSOPGAWE:
- Voorrade
- Stap 1: Verbind die komponente
- Stap 2: 3D -gedrukte onderdele
- Stap 3: Die kode
- Stap 4: Bediening en instellings
Video: Aftree -horlosie / tel op / Dn -klok: 4 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
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
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
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
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:
Tel van 0 tot 9999 met 8051 met behulp van 7 segmentweergawe: 5 stappe
Tel van 0 tot 9999 Met 8051 met 7 segment -skerms: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 9999 te tel met behulp van vier 7 -segment -skerms deur slegs enkele poort en 4 digitale penne te gebruik
Slim basketbal-arcade-spel met hoepels wat tel tel met Evive- ingebedde platform van Arduino: 13 stappe
Slim basketbal-arkadespel met hoepel tellings met behulp van Evive- Arduino-ingebedde platform: Van al die speletjies wat daar is, is arcadespeletjies die vermaaklikste. Dus, ons het gedink hoekom ons nie self 'n huis tuis maak nie! En hier is ons die mees vermaaklike DIY -speletjie wat u tot nog toe gespeel het - die DIY Arcade Basketball Game! Nie net is die
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
Elke liter tel! Arduino Water Doser "Shield": 7 stappe (met foto's)
Elke liter tel! Arduino Water Doser "Shield": Hi! Met hierdie instruksies kan u 'n gewenste hoeveelheid water doseer. Die stelsel kan in ml en L. werk. Ons sal 'n Arduino UNO, 'n vloeimeter gebruik om die hoeveelheid water te tel, 'n LCD om die status te wys, drukknoppies om die instellings te verander en 'n relais na
Hoe om van 0 tot 99 te tel met behulp van 8051 mikrobeheerder met 7 segmentweergawe: 5 stappe (met foto's)
Hoe om van 0 tot 99 te tel Met behulp van 8051 mikrobeheerder met 7 -segmentweergawe: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 99 te tel met twee 7 -segment -skerms