Përmbajtje:

Orë e lehtë e kursimit të ditës: 7 hapa
Orë e lehtë e kursimit të ditës: 7 hapa

Video: Orë e lehtë e kursimit të ditës: 7 hapa

Video: Orë e lehtë e kursimit të ditës: 7 hapa
Video: 2 mënyrat për të mbajtur mend çdo gjë 2024, Nëntor
Anonim
Orë e lehtë e kursimit të ditës
Orë e lehtë e kursimit të ditës
Orë e lehtë e kursimit të ditës
Orë e lehtë e kursimit të ditës

Histori

Ky projekt filloi si sfidë për mua të mësoja programim (kodim) me Arduino Uno dhe një ekran të vetëm LCD 1602A, fillimisht doja ta shtyja Arduino -n në kufijtë e tij për saktësi. Ky është një projekt për të ndërtuar një orë pa përdorimin e një moduli RTC (modul i orës në kohë reale) dhe për të mos përdorur më tej asnjë vonesë (); komandon sepse vonesa (); komanda ndalon kodin për një kohë të caktuar. Ndërsa punoja me kodin bazë të mbajtjes së kohës, mendova se kjo mund të jetë pak e zakonshme, kështu që vendosa të shtoj një veçori të kohës së kursimit të ditës si një shtesë e re për të erëzuar gjërat dhe ndoshta të krijoj pak më shumë interes për këtë projekt. Në fillim ideja ishte thjesht roman por sa më shumë që punoj me të dhe shikoj orën fizike që kam duke vrapuar në tryezën time aq më praktike bëhet ideja. Duke shtuar një modul RTC dhe duke rregulluar kodin kjo orë do të ishte e saktë për vitet në vazhdim dhe me kosto shumë të ulët për prodhuesit dhe publikun që blejnë një orë të tillë.

Koha e Kursimeve të Ditës ose (DST) ka rreth 100 vjet (Google kërko, ka një histori mjaft të gjallë). Unë nuk dua të futem në politikën e tij, por është një ushtrim i vrazhdë dhe i dhimbshëm që nuk e bën jetën të lehtë për njerëzit e thjeshtë (ju dhe unë). Në pjesën më të madhe ne gëzojmë orën shtesë të dritës së ditës, por mënyra se si aplikohet është brutale. It'sshtë koha për një azhurnim të madh në një ide shumë të vjetër.

Ky shembull është i lehtë për të jetuar me dhe me epokën dixhitale dhe përparimet në teknologji zbatohen lehtësisht në të gjitha format e orëve dixhitale, por mund të ndihmojnë në shkatërrimin e orës analoge. Në vend që të kaloni 1 orë nga koha standarde në kohën DST atëherë koha DST në kohën standarde kjo orë bazohet në përparimin gradual të kohës nga solstici i dimrit në solsticin e verës dhe pastaj kthehet në kohën standarde në solsticin e ardhshëm dimëror vit pas viti. Ky kalim ndodh për 180 ditë nga çdo 6 muaj, rregullimi është 20 sekonda në ditë për 360 ditë me 5 ose 6 ditët e mbetura të shtuara në gjatësinë e solsticave. Shembulli im këtu rritet 1 minutë një herë në tre ditë brenda ciklit 180 ditor. Në ose rreth 21 qershor të çdo viti, ora është 1 orë e plotë përpara dhe në ose rreth 21 dhjetor të çdo viti ora kthehet në kohën standarde. Viti i brishtë llogaritet lehtësisht veçanërisht nëse përdoret një RTC. Hemisfera Jugore përshtatet lehtësisht edhe me këtë orë, shkalla e rrëshqitjes është thjesht 6 muaj jashtë fazës nga hemisfera veriore.

Ekzistojnë tre vende në botë që DST do të ishte shumë më tepër nëse, rajoni ekuatorial dhe polet. Unë nuk mendoj se drita e ditës ndryshon shumë në ekuator, nuk e di nëse ndonjë nga zonat tropikale madje përdor DST dhe polet janë një histori tjetër përsëri, thjesht 'Cila është koha në pole gjithsesi?

Hapi 1: Rreth Orës

Rreth Ores
Rreth Ores
Rreth Ores
Rreth Ores

Ora që kam krijuar bazohet në kohën standarde e cila nuk ndryshon kurrë nga ora botërore e pranuar ndërkombëtarisht, kjo shfaqet në rreshtin e parë të LCD 1602. Linja e dytë është e njëjta shkallë kohore, por tregon minutat e pakufizuara nga një solstic në tjetrin. Nga solstici i dimrit në solsticin e verës, kompensimi rritet një minutë çdo tre ditë deri në një maksimum prej gjashtëdhjetë minutash. Nga solstici i verës në solsticin e dimrit, kompleti i jashtëm zvogëlohet një minutë çdo tre ditë derisa koha standarde dhe koha e DST të jenë të njëjta.

Për këtë shembull, unë kam përdorur kohën ushtarake (orën 24 orë) dhe kohën standarde (orën 12 orë) AM dhe PM për të ndihmuar ata njerëz që nuk janë të njohur me shkallën e orës 24 orë, gjithashtu më dha dhomën time për të shfaqur numrin e ditës DST vendosur nga Kodi mund të ndryshohet për të shfaqur orën 12 -orëshe. Kam shtuar tre butona shtypi të lidhur me kunjat dixhitale 2, 3 dhe 4 për të rregulluar kohën. Këto butona do të rrisin vetëm sekonda, minuta ose orë. Butonat janë opsionale, ora do të funksionojë mirë nëse nuk i lidhni butonat dhe nuk keni nevojë të ndryshoni kodin. Unë do të rekomandoja të paktën të përdorni një buton për të rregulluar sekondat dhe nëse saktësia e plotë nuk mund të arrihet mbajeni orën në anën e ngadaltë, butoni përparon kohën 1 sekondë në sekondë.

Nëse e filloni orën nga Arduino IDE do të duhen rreth 5.5 deri në 6 sekonda që skica të ngarkohet dhe të fillojë, nëse e keni skicën e ngarkuar në Arduino atëherë lidheni atë në një lyth muri ose furnizim me energji elektrike do të zgjasë rreth 2.5 deri në 3 sekonda për të nisur dhe drejtuar.

Someshtë e nevojshme një konfigurim manual kur më në fund të bëni orën gati për funksionim.

Kjo orë nuk përdor një modul RTC as nuk përdor dozë "vonesë ();" komandat.

Nëse ju pëlqen të përdorni RTC me Arduino, ky koncept mund të përdoret akoma. RTC do t'ju japë të gjithë informacionin që ju nevojitet për të shtuar kohën EDSC. Kodi mund të jetë krejtësisht i ndryshëm me një modul RTC, nuk e kam shqyrtuar atë. Ju jeni shumë vetë nëse e bëni, por është një mënyrë e shkëlqyeshme për të ushtruar trurin tuaj.

Hapi 2: Çfarë ju nevojitet

Ajo që do t'ju duhet
Ajo që do t'ju duhet
Ajo që do t'ju duhet
Ajo që do t'ju duhet
Ajo që do t'ju duhet
Ajo që do t'ju duhet

LISTË PAZAR

1 Arduino Uno ose Mega2569 (kunjat I2C janë A4 dhe A5 në UNO dhe 20 dhe 21 në 2560 Mega)

Pothuajse çdo Arduino tjetër duhet të funksionojë, kunjat e përdorura mund të jenë të ndryshme. Për atë çështje, çdo bord kontrollues do të funksionojë. Ju do të duhet të rishkruani kodin për atë bord ose prodhues.

1 ekran LCD 1602 (ngjyra e zgjedhjes suaj)

Unë përdor një paketë të pasme I2C me LCD, e kam më të lehtë dhe më të shpejtë për tu konfiguruar.

Telat e kërcyesit

FURNIZIMET OPSIONALE

1 dërrasë buke me madhësi të mesme

Butonat 1-3 të kontaktit të çastit

Rezistenca 1-3 10 K ohm

Ky udhëzues është i gjatë, kështu që nuk po hyj në montim ose kabinet që kam përdorur për të shfaqur orën. Nëse ju pëlqen ky projekt dhe doni të bëni një version të përhershëm, dizajnojeni atë sipas dëshirës tuaj. Ky dizajn është i përsosur për mua sepse kisha gjithçka që më duhej në kutinë time të hedhurinave dhe më pëlqen pamja e tij.

SHENIMET:

Për të shmangur rënien e gropave të ndërprerjeve të energjisë, ora ime e fundit mundësohet nga një panel diellor që kam jashtë. Paneli diellor mban një bateri 12 volt të ngarkuar me një rregullator në të për të parandaluar ngarkimin e tepërt. Kjo bateri është e lidhur me Arduino përmes prizës së energjisë pranë portës USB. Unë e mbaj portën USB të lidhur me rrjetin për të zvogëluar tërheqjen e baterisë. Të dy burimet e energjisë mund të përdoren në të njëjtën kohë pa dëmtuar Arduino. Një bateri 12 volt mund të ngarkohet deri në 14.5 volt, e cila është shumë e lartë për Arduino, kështu që unë përdor një konvertues për të zvogëluar tensionin e furnizimit nga bateria në një interval prej 9 deri në 12 volt. Bateria 12 volt që mbaj të ngarkuar do të zgjasë 3 ose 4 ditë nëse ditët janë me re. Rregullatori që përdor do të ndërpresë fuqinë në Arduino nëse tensioni i baterisë bie në 11 volt. Bateria që kam vjen nga sistemi i dritave emergjente për ndërtesat komerciale, është rreth një e katërta e madhësisë së një baterie të vogël makine. Nëse keni ndërmend të përdorni një bateri makine sigurohuni ta mbani atë në një zonë të ajrosur mirë (jashtë), bateritë e makinave lëshojnë gaz hidrogjeni dhe oksigjeni ndërsa ngarkohen dhe shkarkohen, ky është një kombinim shpërthyes.

KUJDES

MBAJTENI BATERIN IN N MIR

ZONA E VENTILUAR, JASHT

Hapi 3: Instalimet elektrike

Instalime elektrike
Instalime elektrike

Unë kam dhënë një skemë për të gjitha lidhjet në këtë projekt, nëse përdorni një dërrasë buke do t'ju duhet një tabelë me madhësi të mesme, çelsave do t'u duhet vend për t'u shpërndarë në mënyrë që qarku të mos jetë konfuz.

Ekrani LCD 1602 ka një paketë mbrapa I2C për thjeshtësi, nëse përdorni lidhje SPI do t'ju duhet të shikoni se si ta përdorni dhe të ndryshoni kodin pranë fillimit të skicës. Unë kurrë nuk kam përdorur lidhjet SPI kështu që kunjat 2, 3 dhe 4 mund të mos jenë të disponueshëm për tre butonat e shtypjes.

Tre butonat e shtypjes përdoren për të rregulluar kohën në orë. Ata vetëm avancojnë kohën (PARA). Në rregullimet përfundimtare mbani orën në kod në anën e ngadaltë (rreth 1 deri në 2 sekonda në ditë ose disa ditë) në këtë mënyrë ju mund të avanconi kohën nëse është e nevojshme. Çdo buton përparon kohën një rritje në sekondë, butonin e poshtëm 2 sekonda në sekondë, butonin e mesëm 1 minutë në sekondë dhe butonin e lartë 1 orë në sekondë. Një shkallë mjaft e lartë e saktësisë duhet të jetë e realizueshme kështu që nuk do të keni nevojë ta rregulloni atë shumë herë.

Nëse jeni duke rregulluar sekonda, minuta ose orë (për shembull nëse minutat janë avancuar 58, 59, 00) ora do të përparojë në orën tjetër.

Këto tre butona janë një shtesë e minutës së fundit të orës, ato funksionojnë mirë, por mund të ketë një mënyrë më të mirë. Vetëm mbani mend që nëse ngatërroni me këtë pjesë të kodit "vonesa ();" komanda nuk mund të përdoret. Unë e përdor këtë metodë sepse nuk kam nevojë të shqetësohem për kalimin e kërcimit dhe kërcimet e çuditshme në përparimet e kohës.

Hapi 4: Çfarë tregon Ekrani

Çfarë Tregon Shfaqja
Çfarë Tregon Shfaqja

Unë kam vënë shumë informacion në ekranin LCD 1602 që ka nevojë për një shpjegim:

Linja 1 Ose rreshti zero '0' kur flisni në kod, tregon kohën standarde. Në të majtë është 'STD', kjo qëndron për kohën 'STandarD'.

Tjetra në rreshtin e parë në mes është koha juaj standarde lokale. Mos filloni me kohën e kursimit të ditës, ora do ta shfaqë këtë në rreshtin e dytë.

Kjo shkallë kohore është një orë prej 12 orësh, kështu që në anën e djathtë është 'AM ose' PM 'për të treguar mëngjesin ose pas mesditës.

Linja 2 Ose rreshti një '1' kur flisni me kod, tregon kohën e kursimit të ditës e cila ndryshon sipas ditës së vitit. "DST" në të majtë do të thotë "Koha e Dimrit"

Në mes të vijës së dytë është koha juaj ushtarake lokale e cila është një orë 24 -orëshe. Ju do ta dëgjoni atë të referuar si 'oh gjashtëqind orë' për shembull.

Në anën e djathtë është dita e vitit siç përmendet nga solstici dimëror, në Hemisferën Veriore 21 Dhjetori (afërsisht) është dita zero '0' dhe në Hemisferën Jugore 21 Qershori (afërsisht) është dita zero '0'.

Unë kam dhënë dy skedarë.pdf për referencë kur vendosni për herë të parë orën. Zgjidhni skedarin që i referohet hemisferës në të cilën jetoni.

Tre butonat në të djathtën shtojnë sekonda, minuta dhe orë nga poshtë lart.

Hapi 5: Konfigurimi i skicës

Konfigurimi i skicës
Konfigurimi i skicës

Ekzistojnë disa rreshta të kodit që duhet të krijohen për fillimin fillestar. Disa nga këto rreshta duhet të ndryshohen sa herë që shkëputni orën dhe ndryshoni vlerat e variablave në skicë. Nëse filloni orën për IDE do të duhen rreth 6 sekonda për t'u ngarkuar dhe filluar. Nëse e ngarkoni skicën nga IDE atëherë shkëputeni orën dhe riniseni atë nga një lyth në mur ose furnizim me energji, skica do të fillojë për rreth 2.5 sekonda.

Linja 11 LiquidCrystal_I2C lcd (0x27, 2, 1, 0, 4, 5, 6, 7);

Kjo linjë adreson ekranin LCD dhe vendos adresën e duhur të paketës së pasme të I2C. 0x27 është adresa e çdo pakete të pasme që kam blerë. Nëse e aktivizoni orën, por nuk shfaqen të dhëna, por ndizet, adresa ndoshta është e ndryshme në ekranin tuaj LCD. Unë do të vendos një lidhje më poshtë për një përshkrim se si të ndryshoni adresën e paketës suaj LCD ose të gjeni adresën.

Linjat 24 int minSt = 35;

Vendosni minutën e fillimit për orën standarde, zakonisht vendoseni 5 minuta para se të filloni orën për të lejuar kohën e konfigurimit.

Linjat 25 int orëSt = 18;

Vendosni orën në kohën e SST (ora 24 -orëshe) është duke filluar. 6 pasdite do të jetë ora 18.

Linja 26 int DST ditë = 339;

Shkarkoni dhe referojuni skedarit pdf "Easy DST Clock Time Scale" (Hemisfera Veriore ose Jugore) ku jetoni, kërkoni datën dhe futni Ditën # në këtë linjë. (Kolona e majtë). Shembull (24 nëntori është dita #339 në hemisferën veriore dhe dita #156 në hemisferën jugore)

Linja 27 int DSTyear = 2019;

Shkruani vitin aktual.

Linja 92 nëse ((masterTime - previousMasterTimeSt> = 1000) && (microTime - previousMicroTimeSt> = 500)) {

"PreviousMasterTimeSt" duhet të krahasohet me numrin e milisekonda kështu që ky '1000' mund të ketë nevojë të ndryshojë në 999 në varësi të orës së brendshme të bordit Arduino dhe më pas të rregulloni MikroTime të mëparshëm për të rregulluar mirë orën. Ora e brendshme edhe pse 16MH ka ndryshime nga një tabelë në tjetrën.

"PreviousMicroTimeSt" rregullon mirë orën e brendshme për të ndihmuar në llogaritjen e një sekonde të saktë. Nëse ora është shumë e shpejtë rrisni mikrosekonda dhe nëse ora është shumë e ngadaltë zvogëloni mikrosekondat dhe nëse është e nevojshme ulni milisekondat në 999 dhe pastaj filloni mikrosekondat në rreth 999, 990 ose rrisni shpejtësinë e orës.

Çdo bord Arduino ka një shpejtësi paksa të ndryshme prandaj këta numra do të ndryshojnë me secilën tabelë që përdorni. Një pjesë e kodit nuk është testuar ende, kjo është rreshti 248 për të llogaritur për çdo vit të brishtë. Në javët e ardhshme do ta testoj dhe do të postoj çdo ndryshim nëse është e nevojshme.

Hapi 6: Shënimet përfundimtare

Shënimet përfundimtare
Shënimet përfundimtare

Ky projekt është i lehtë për tu ndërtuar, por koncepti dhe rregullimet e nevojshme në kod mund të jenë një detyrë, merrni kohën tuaj dhe mendojeni mirë, ora nuk skadon deri në fund të vitit 2037. Unë do të mbaj një sy të ngushtë email për pyetje pasi jam i sigurt se do të ketë, nuk jam gjeni letrar kështu që disa nga përshkrimet e mia mund të jenë paksa me baltë.

Janë përfshirë dy skedarë.pdf, shkarkoni skedarin për hemisferën në të cilën jetoni, ky skedar do t'ju japë informacionin e nevojshëm për të filluar orën me saktësi.

Me informacionin e manipuluar në skicë do të ishte e lehtë të shfaqet jo vetëm koha standarde dhe koha DST, por edhe dita dhe data në një LCD 2004A. Nëse ju pëlqejnë sfidat që ofron ky projekt provoni të lidhni një ekran LCD 2004A pastaj shtoni kodin për të shfaqur informacionin shtesë ose nëse tregohet interes i mjaftueshëm do të bëj një variant tjetër të këtij projekti duke përfshirë këtë informacion shtesë.

Unë jam përpjekur të jem gjithëpërfshirës në këtë projekt, por kam gjetur tre zona në botë në fjalë. Poli i Veriut, Poli i Jugut dhe Ekuatori.

A është DST e nevojshme apo edhe e mundur në Polin e Veriut apo të Jugut?

Sa është ora në Polin e Veriut apo të Jugut?

Në cilin drejtim do të udhëtonit për të lënë Polin e Veriut apo atë të Jugut?

Nga Poli i Jugut në cilin drejtim do të udhëtonit për të arritur në Austrailia, Amerikën e Veriut, Evropë apo Azi?

Në cilën zonë kohore jeton Santa?

A ka nevojë për DST?

Sa është ora gjithsesi në Polin e Veriut?

Në cilin drejtim udhëton Santa për të ofruar të gjitha dhuratat e tij?

Në çfarë gjerësie është DST efektive?

Tani për Ekuatorin;

A mund të përdoret kjo orë në Ekuator?

A do të përdorin shkallën e Hemisferës Veriore apo Jugore?

Cilat janë datat për solsticin dimëror dhe solsticin veror?

Në çfarë gjerësie është DST efektive?

A kanë nevojë pinguinët për DST?

A mendoni se jam i çuditshëm kur mendoj për këto pyetje?

Gëzuar ndërtimin e të gjithëve!

lajthi

Hapi 7: Lidhje të tjera

Kjo është një lidhje për të përcaktuar ose ndryshuar adresën në paketën e pasme të I2C:

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

PiotrS ka shkruar një udhëzues të shkëlqyeshëm për adresat e harduerit I2C

playground.arduino.cc/Main/I2cScanner

Kjo lidhje do të skanojë pajisjen tuaj I2C dhe do të kthejë adresën

Recommended: