Taula de continguts:

Rellotge d’estiu fàcil: 7 passos
Rellotge d’estiu fàcil: 7 passos

Vídeo: Rellotge d’estiu fàcil: 7 passos

Vídeo: Rellotge d’estiu fàcil: 7 passos
Vídeo: ПРИГОТОВИЛ ОГРОМНЫХ КАРАСЕЙ В СМЕТАНЕ. РЕЦЕПТ. ГОТОВИТ Липован. ENG SUB. 2024, Juliol
Anonim
Rellotge d’estiu fàcil
Rellotge d’estiu fàcil
Rellotge d'estiu fàcil
Rellotge d'estiu fàcil

Història

Aquest projecte va començar com un repte per a mi aprendre a programar (codificar) amb l’Arduino Uno i una sola pantalla LCD 1602A. Primer volia portar l’Arduino als seus límits per a la precisió. Es tracta d'un projecte per construir un rellotge sense l'ús d'un mòdul RTC (mòdul de rellotge en temps real) i, a més, no utilitzar cap retard (); ordres perquè el delay (); L'ordre atura el codi durant un període de temps determinat. A mesura que treballava el codi bàsic de manteniment del temps, vaig pensar que això podria ser una mica mundà, així que vaig decidir afegir una funció d’horari d’estiu com a novetat per afavorir les coses i, possiblement, crear una mica més d’interès per aquest projecte. Al principi la idea era purament nova, però com més treballo amb ella i veig el rellotge físic que tinc corrent a la taula, més pràctica es fa la idea. Si afegiu un mòdul RTC i ajusteu el codi, aquest rellotge seria precís durant els propers anys i a un cost molt baix per als fabricants i el públic que el comprés.

L’horari d’estiu o (DST) existeix des de fa més de 100 anys (Google it, té una història força acolorida). No vull entrar en la política, però és un exercici cru i dolorós que no facilita la vida de la gent comuna (tu i jo). En la seva majoria gaudim de l’hora extra de llum del dia, però la manera d’aplicar-la és brutal. És hora d’actualitzar una idea molt antiga.

Aquest exemple és fàcil de viure amb i amb l'era digital i els avenços tecnològics fàcilment aplicables a totes les formes de rellotges digitals, però podria ajudar a la desaparició del rellotge analògic. En lloc d'un salt d'una hora des de l'hora estàndard a l'hora d'estiu i després a l'hora d'estiu a l'hora estàndard, aquest rellotge es basa en la progressió gradual del temps des del solstici d'hivern fins al solstici d'estiu i després torna a l'hora estàndard del pròxim solstici d'hivern any rere any. Aquesta transició té lloc durant 180 dies de cada període de 6 mesos; l'ajust és de 20 segons al dia durant 360 dies, amb els 5 o 6 dies restants afegits a la durada dels solsticis. El meu exemple aquí augmenta 1 minut cada tres dies dins del cicle de 180 dies. El 21 de juny aproximadament de cada any, el rellotge té una hora completa d’antelació i, aproximadament, el 21 de desembre de cada any, el rellotge ha tornat a l’hora estàndard. L’any bisest es compta fàcilment, sobretot si s’utilitza un RTC. L’hemisferi sud també s’adapta fàcilment a aquest rellotge, l’escala de la diapositiva està simplement desfasada a 6 mesos de l’hemisferi nord.

Hi ha tres llocs al món que serien pràcticament DST, tret que la regió equatorial i els pols. No crec que la llum del dia canviï gaire a l'equador, no sé si alguna de les zones tropicals fa servir fins i tot DST i els pols tornen a ser una història diferent, només "QUINA hora" és als pols?

Pas 1: Quant al rellotge

Quant al rellotge
Quant al rellotge
Quant al rellotge
Quant al rellotge

El rellotge que he creat es basa en una hora estàndard que mai no varia del rellotge mundial acceptat internacionalment, es mostra a la primera línia de la pantalla LCD 1602. La segona línia és la mateixa escala de temps, però mostra el desplaçament de minuts d’un solstici a l’altre. Del solstici d’hivern al solstici d’estiu, la compensació augmenta un minut cada tres dies fins a un màxim de seixanta minuts. Del solstici d’estiu al solstici d’hivern, el desplaçament disminueix un minut cada tres dies fins que l’hora estàndard i l’hora d’horabaixa són iguals.

Per a aquest exemple, he utilitzat l'hora militar (rellotge de 24 hores) i l'hora estàndard (rellotge de 12 hores) AM i PM per ajudar aquelles persones que no estiguin familiaritzades amb l'escala horària de 24 hores. establert a partir de. El codi es pot canviar per mostrar el rellotge de 12 hores. He afegit tres polsadors connectats als pins digitals 2, 3 i 4 per ajustar el temps. Aquests botons només augmentaran segons, minuts o hores. Els botons són opcionals, el rellotge funcionarà bé si no hi connecteu els botons i no cal que modifiqueu el codi. Recomanaria almenys fer servir un botó per ajustar els segons i, si no es pot aconseguir una precisió completa, mantingueu el rellotge en el costat lent, el botó avança el temps 1 segon per segon.

Si inicieu el rellotge des de l’IDE Arduino, l’esbós es carregarà i arrencarà uns 5,5 a 6 segons, si teniu l’esbós carregat a l’Arduino, connecteu-lo a una berruga de paret o a una font d’alimentació que trigarà uns 2,5 a 3 segons per arrencar i executar.

Es necessita una configuració manual quan finalment prepareu el rellotge per al funcionament.

Aquest rellotge no utilitza cap mòdul RTC ni dosifica que utilitzi "delay ();" ordres.

Si us agrada utilitzar el RTC amb l'Arduino, aquest concepte encara es pot utilitzar. El RTC us proporcionarà tota la informació que necessiteu per afegir el temps EDSC. El codi pot ser molt diferent amb un mòdul RTC, no ho he analitzat. Ets pràcticament sol, si ho fas, però és una bona manera d’exercitar el teu cervell.

Pas 2: què necessiteu

El que necessitareu
El que necessitareu
El que necessitareu
El que necessitareu
El que necessitareu
El que necessitareu

LLISTA DE LA COMPRA

1 Arduino Uno o Mega2569 (els pins I2C són A4 i A5 a la UNO i 20 i 21 al 2560 Mega)

Gairebé qualsevol altre Arduino hauria de funcionar, els pins utilitzats poden ser diferents. En aquest cas, qualsevol placa de controlador funcionarà. Haureu de reescriure el codi per a aquest tauler o fabricant.

1 pantalla LCD 1602 (color que trieu)

Faig servir una motxilla I2C amb la pantalla LCD, em resulta més fàcil i ràpid de configurar.

Filferros de pont

SUBMINISTRAMENTS OPCIONALS

1 tauleta de pa de mida mitjana

1-3 botons de contacte momentanis

1-3 resistències de 10 K ohm

Aquesta instrucció és llarga, de manera que no vaig al muntatge ni a l'armari que he utilitzat per mostrar el rellotge. Si t'agrada aquest projecte i vols fer una versió permanent, dissenya'l al teu gust. Aquest disseny és perfecte per a mi perquè tenia tot el que necessitava a la caixa brossa i m'agrada el seu aspecte.

NOTES:

Per evitar les caigudes de llum a causa de les caigudes de corrent, el meu darrer rellotge s’alimenta d’un panell solar que tinc a l’exterior. El panell solar manté una bateria de 12 volts carregada amb un regulador per evitar una sobrecàrrega. Aquesta bateria està connectada a l'Arduino mitjançant la presa d'alimentació situada al costat del port USB. Mantinc el port USB connectat a la xarxa per reduir el consum de la bateria. Les dues fonts d’energia es poden utilitzar al mateix temps sense danyar l’Arduino. Es pot carregar una bateria de 12 volts fins a 14,5 volts, que és massa alta per a l’Arduino, de manera que faig servir un convertidor per reduir la tensió d’alimentació de la bateria a un rang de 9 a 12 volts. La bateria de 12 volts que mantinc carregada durarà 3 o 4 dies si els dies estan ennuvolats. El regulador que faig servir tallarà energia a l’Arduino si la tensió de la bateria baixa a 11 volts. La bateria que tinc prové del sistema d’il·luminació d’emergència per a edificis comercials, té una quarta part de la mida d’una bateria de cotxe petita. Si teniu intenció d’utilitzar una bateria de cotxe, assegureu-vos de conservar-la en una zona ben ventilada (a l’exterior), ja que les bateries de cotxes desprenen hidrogen i oxigen a mesura que es carreguen i descarreguen, és una combinació explosiva.

AVÍS

CONSERVEU LA BATERIA EN UN BÉ

ZONA VENTILADA, FORA

Pas 3: cablejat

Cablejat
Cablejat

He proporcionat un esquema per a totes les connexions d’aquest projecte, si utilitzeu una placa de suport necessitareu una placa de mida mitjana, els commutadors necessitaran espai per distribuir-se de manera que el circuit no sigui confús.

La pantalla LCD 1602 té un motxilla I2C per simplificar, si utilitzeu connexions SPI, haureu de buscar com utilitzar-lo i alterar el codi a prop del començament de l’esbós. Mai he utilitzat les connexions SPI, de manera que els pins 2, 3 i 4 poden no estar disponibles per als tres botons.

Els tres polsadors s’utilitzen per ajustar l’hora del rellotge. Només avancen el temps (AVANT). Als ajustos finals, mantingueu el rellotge al codi al costat lent (aproximadament 1 a 2 segons per dia o diversos dies) d'aquesta manera podeu avançar el temps si cal. Cada botó avança el temps un increment per segon, el botó inferior 2 segons per segon, el botó central 1 minut per segon i el botó superior 1 hora per segon. S'hauria de fer un grau de precisió bastant elevat, de manera que no caldrà ajustar-lo molt sovint.

Si esteu ajustant segons, minuts o hores (per exemple, si els minuts són avançats 58, 59, 00), l’hora avançarà a la següent.

Aquests tres botons són una addició d’última hora al rellotge, funcionen bé, però pot ser que hi hagi una manera millor. Només recordeu que si us enganxeu amb aquesta part del codi, el "delay ();" no es pot utilitzar l'ordre. He utilitzat aquest mètode perquè no em necessito preocupar-me per rebots de commutació i salts estranys en el temps.

Pas 4: què mostra la pantalla

Què mostra la pantalla
Què mostra la pantalla

He posat molta informació a la pantalla LCD 1602 que necessita alguna explicació:

La línia 1 O la línia zero '0' quan es parla en codi, mostra l'hora estàndard. A l'esquerra hi ha "STD", que significa temps "STandarD".

A continuació, a la primera línia del centre, es mostra l’hora estàndard local. No comenceu amb l'hora d'estiu, el rellotge el mostrarà a la segona línia.

Aquesta escala de temps és un rellotge de 12 hores, de manera que al costat dret hi ha "AM o" PM "per indicar el matí o després del migdia.

La línia 2 O la línia 1 '1' quan es parla en codi, mostra l'hora d'estiu que varia segons el dia de l'any. El "DST" a l'esquerra significa "Horari d'estiu"

Al centre de la segona línia hi ha la vostra hora militar local, que és un rellotge de 24 hores. Sentireu que es refereix com "oh sis-centes hores", per exemple.

A la part dreta hi ha el dia de l'any, tal com es fa referència des del solstici d'hivern, a l'hemisferi nord el 21 de desembre (aproximadament) és el dia zero '0' i a l'hemisferi sud el 21 de juny (aproximadament) és el dia zero '0'.

He proporcionat dos fitxers.pdf com a referència en configurar el rellotge per primera vegada. Trieu el fitxer que fa referència a l’hemisferi en què viviu.

Els tres botons de la dreta augmenten segons, minuts i hores de baix a dalt.

Pas 5: configuració de l'esbós

Configuració de l'esbós
Configuració de l'esbós

Hi ha diverses línies de codi que cal configurar per a l’inici inicial. Algunes d’aquestes línies han de ser modificades cada vegada que desconnecteu el rellotge i canvieu els valors de les variables de l’esbós. Si inicieu el rellotge de l'IDE, trigareu uns 6 segons a carregar-se i arrencar. Si carregueu l'esbós de l'IDE, desconnecteu el rellotge i reinicieu-lo d'una berruga de paret o font d'alimentació, l'esbós s'engegarà en uns 2,5 segons.

Línia 11 LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Aquesta línia s'adreça a la pantalla LCD i estableix l'adreça adequada del motxilla I2C. 0x27 és l'adreça de qualsevol motxilla que he comprat. Si enceneu el rellotge però no apareixen dades, però il·lumina, l’adreça probablement sigui diferent a la vostra pantalla LCD. A continuació, posaré un enllaç per obtenir una descripció de com canviar l’adreça del vostre paquet LCD o trobar-ne l’adreça.

Línies 24 int minutSt = 35;

Establiu el minut d’inici del rellotge estàndard, normalment configureu-lo 5 minuts abans d’iniciar el rellotge per permetre el temps de configuració.

Línies 25 hora intSt = 18;

Estableix l'hora a l'hora STD (rellotge de 24 hores) que comença a les 18:00 a les 18 hores.

Línia 26 int DSTdays = 339;

Baixeu-vos i consulteu el fitxer pdf "Easy DST Clock Time Scale" (hemisferi nord o sud) en què viviu, cerqueu la data i inseriu el número # en aquesta línia. (Columna esquerra). Exemple (el 24 de novembre és el dia 339 a l’hemisferi nord i el dia 156 a l’hemisferi sud)

Línia 27 int DSTyear = 2019;

Introduïu l'any en curs.

Línia 92 if ((masterTime - previousMasterTimeSt> = 1000) && (microTime - previousMicroTimeSt> = 500)) {

Cal comparar el "previousMasterTimeSt" amb el nombre de mil·lisegons, de manera que és possible que aquest '1000' hagi de canviar a 999 depenent del rellotge intern de la placa Arduino i, a continuació, ajusteu l'anteriorMicroTime per afinar el rellotge. El rellotge intern encara que 16MH té variacions d’una placa a la següent.

El "previousMicroTimeSt" afina bé el rellotge intern per ajudar a comptar amb precisió 1 segon. Si el rellotge és massa ràpid, augmenteu els microsegons i si el rellotge és massa lent, reduïu-ne els microsegons i, si cal, deixeu els milisegons a 999 i inicieu els microsegons a uns 999, 990 o augmenteu la velocitat del rellotge.

Cada placa Arduino té una velocitat lleugerament diferent, per tant, aquests números canviaran amb cada placa que utilitzeu. Una part del codi encara no s’ha provat, es tracta de la línia 248 per tenir en compte cada any bixest. En les properes setmanes el provaré i publicaré qualsevol canvi si cal.

Pas 6: notes finals

Notes finals
Notes finals

Aquest projecte és fàcil de construir, però el concepte i els ajustos necessaris al codi poden ser una tasca, preneu-vos el temps i penseu-ho bé, el rellotge no caduca fins a finals de 2037. Vaig a vigilar de prop el meu correu electrònic per a preguntes, ja que estic segur que n’hi haurà, no sóc un geni literari, de manera que algunes de les meves descripcions poden estar una mica enfangades.

Hi ha dos fitxers.pdf inclosos, descarregueu-lo per a l’hemisferi on viviu; aquest fitxer us proporcionarà la informació necessària per iniciar el rellotge amb precisió.

Amb la informació manipulada a l’esbós, seria fàcil mostrar no només l’hora estàndard i l’hora d’horari d’estada però també el dia i la data en un LCD 2004A. Si us agraden els reptes que proporciona aquest projecte, intenteu connectar una pantalla LCD 2004A, afegiu codi per mostrar la informació addicional o si es mostra prou interès, faré una altra variació d’aquest projecte, inclosa aquesta informació addicional.

He intentat fer-ho tot inclús en aquest projecte, però he trobat tres zones del món en qüestió. El pol nord, el pol sud i l’equador.

És necessària o fins i tot possible la DST als pols nord o sud?

Quina hora és al pol nord o sud?

Quina direcció recorreríeu per deixar el pol nord o el pol sud?

Des del pol sud, en quina direcció es dirigiria per arribar a Austraília, Amèrica del Nord, Europa o Àsia?

En quin fus horari viu el Pare Noel?

Necessita DST?

Quina hora és de totes maneres al pol nord?

Quina direcció fa el Pare Noel per lliurar tots els seus regals?

A quina latitud és efectiva l’horari d’estada?

Ara per a l’equador;

Es pot fer servir aquest rellotge a l’equador?

Utilitzarien l’escala de l’hemisferi nord o sud?

Quines són les dates del solstici d’hivern i del solstici d’estiu?

A quina latitud és efectiva l’horari d’estada?

Els pingüins necessiten DST?

Creieu que sóc estrany per pensar en aquestes preguntes?

Feliç construint tothom!

philmnut

Pas 7: Altres enllaços

Aquest és un enllaç per determinar o canviar l'adreça de la motxilla I2C:

www.instructables.com/id/1602-2004-LCD-Adapter-Addressing/

PiotrS ha escrit una instrucció excel·lent per a adreces de maquinari I2C

playground.arduino.cc/Main/I2cScanner

Aquest enllaç escanejarà el dispositiu I2C i retornarà l'adreça

Recomanat: