Satura rādītājs:
- 1. darbība. Par pulksteni
- 2. darbība. Kas jums būs nepieciešams
- 3. darbība: elektroinstalācija
- 4. darbība: displejs
- 5. darbība: skices iestatīšana
- 6. darbība. Noslēguma piezīmes
- 7. darbība: citas saites
Video: Vienkāršs vasaras laiks: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Stāsts
Šis projekts man sākās kā izaicinājums iemācīties programmēt (kodēt) ar Arduino Uno un vienu 1602A LCD displeju, vispirms es vēlējos panākt Arduino precizitāti. Šis ir projekts, lai izveidotu pulksteni, neizmantojot RTC moduli (reālā laika pulksteņa moduli), un turpmāk neizmantotu nekādu kavēšanos (); komandas, jo kavēšanās (); komanda aptur kodu uz noteiktu laiku. Strādājot ar pamata laika uzskaites kodu, es domāju, ka tas varētu būt nedaudz ikdienišķs, tāpēc es nolēmu pievienot vasaras laika funkciju kā jaunu papildinājumu, lai papildinātu lietas un, iespējams, radītu nedaudz lielāku interesi par šo projektu. Sākumā ideja bija tīri jauna, bet, jo vairāk es ar to strādāju un vēroju fizisko pulksteni, kas darbojas uz mana galda, jo praktiskāka šī ideja kļūst. Pievienojot RTC moduli un pielāgojot kodu, šis pulkstenis būtu precīzs gadiem ilgi un par ļoti zemām izmaksām ražotājiem un sabiedrībai, kas iegādājas šādu pulksteni.
Vasaras laiks vai (DST) pastāv jau vairāk nekā 100 gadus (Google, tam ir diezgan krāsaina vēsture). Es nevēlos iesaistīties tās politikā, bet tas ir rupjš un sāpīgs uzdevums, kas nepadara vienkāršu cilvēku (jūs un es) dzīvi vieglu. Lielākoties mēs baudām papildu dienasgaismas stundu, bet veids, kā tas tiek pielietots, ir brutāls. Ir pienācis laiks būtiski uzlabot ļoti senu ideju.
Šo piemēru ir viegli sadzīvot ar digitālo laikmetu un tehnoloģiju sasniegumiem, kas viegli piemērojami visu veidu digitālajiem pulksteņiem, taču tas varētu palīdzēt zaudēt analogo pulksteni. Tā vietā, lai 1 stundu pārietu no standarta laika uz DST laiku, tad uz DST laiku līdz standarta laikam, šis pulkstenis ir balstīts uz pakāpenisku laika progresu no ziemas saulgriežiem līdz vasaras saulgriežiem, pēc tam gadu pēc gada atgriežoties pie standarta laika nākamajā ziemas saulgriežos. Šī pāreja notiek 180 dienas no katra 6 mēnešu perioda, korekcija ir 20 sekundes dienā 360 dienu laikā, bet atlikušās 5 vai 6 dienas tiek pievienotas saulgriežu ilgumam. Mans piemērs šeit palielina 1 minūti reizi trijās dienās 180 dienu ciklā. Katra gada 21. jūnijā vai aptuveni 21. jūnijā pulkstenis ir par 1 stundu uz priekšu, un katra gada 21. decembrī vai aptuveni 21. decembrī pulkstenis ir pārslīdējis atpakaļ uz standarta laiku. Lēciena gads ir viegli uzskaitāms, it īpaši, ja tiek izmantota RTC. Dienvidu puslode ir viegli pielāgojama arī šim pulkstenim, slaidu skala ir vienkārši 6 mēnešus ārpus fāzes no ziemeļu puslodes.
Pasaulē ir trīs vietas, kurās DST būtu diezgan daudz, ja vien, ekvatoriālais reģions un stabi. Es domāju, ka dienasgaisma pie ekvatora īpaši nemainās, es nezinu, vai kāds no tropiskajiem apgabaliem pat izmanto DST un stabi ir atkal cits stāsts, tikai “KAS” laiks pie poliem vienalga?
1. darbība. Par pulksteni
Mana izveidotā pulksteņa pamatā ir standarta laiks, kas nekad neatšķiras no starptautiski pieņemtā pasaules pulksteņa, tas tiek parādīts 1602 LCD pirmajā rindā. Otrā rinda ir tāda pati laika skala, taču tā parāda minūšu nobīdi no viena saulgriežu uz nākamo. No ziemas saulgriežiem līdz vasaras saulgriežiem kompensācija palielinās par vienu minūti ik pēc trim dienām līdz maksimāli sešdesmit minūtēm. No vasaras saulgriežiem līdz ziemas saulgriežiem kompensācija samazinās par vienu minūti ik pēc trim dienām, līdz standarta laiks un DST laiks ir vienādi.
Šajā piemērā esmu izmantojis militāro laiku (24 stundu pulkstenis) un standarta laiku (12 stundu pulkstenis) AM un PM, lai palīdzētu tiem cilvēkiem, kuri nav pazīstami ar 24 stundu laika skalu, kā arī deva manai istabai parādīt dienas numuru komplekts no. Kodu var mainīt, lai parādītu 12 stundu pulksteni. Esmu pievienojis trīs spiedpogas, kas savienotas ar digitālajām tapām 2, 3 un 4, lai pielāgotu laiku. Šīs pogas palielinās tikai sekundes, minūtes vai stundas. Pogas nav obligātas, pulkstenis joprojām darbosies labi, ja pogas neievada un nav jāmaina kods. Es ieteiktu vismaz izmantot pogu, lai pielāgotu sekundes, un, ja nevar sasniegt pilnīgu precizitāti, turiet pulksteni lēnajā pusē, poga paātrina laiku 1 sekundi sekundē.
Ja sākat pulksteni no Arduino IDE, skices ielāde un palaišana prasīs apmēram 5,5 līdz 6 sekundes, ja skice ir ielādēta Arduino, tad pievienojiet to sienas kārpu vai barošanas avotam, tas prasīs apmēram 2,5 līdz 3 sekundes, lai sāktu un palaistu.
Kad pulkstenis beidzot ir gatavs darbam, ir jāveic manuāla iestatīšana.
Šis pulkstenis neizmanto RTC moduli un neizmanto devu "delay ();" komandas.
Ja jums patīk izmantot RTC ar Arduino, šo koncepciju joprojām var izmantot. RTC sniegs jums visu informāciju, kas nepieciešama EDSC laika pievienošanai. Kods var būt diezgan atšķirīgs ar RTC moduli, es neesmu to izpētījis. Ja jūs to darāt, jūs esat diezgan patstāvīgs, taču tas ir lielisks veids, kā izmantot savas smadzenes.
2. darbība. Kas jums būs nepieciešams
IEPIRKUMU SARAKSTS
1 Arduino Uno vai Mega2569 (I2C tapas ir A4 un A5 uz UNO un 20 un 21 uz 2560 mega)
Gandrīz jebkuram citam Arduino vajadzētu darboties, izmantotās tapas var būt atšķirīgas. Šajā sakarā jebkura kontrollera plate darbosies. Jums būs jāpārraksta šīs plāksnes vai ražotāja kods.
1 1602 LCD displejs (pēc jūsu izvēles)
Es izmantoju I2C mugursomu ar LCD, man šķiet, ka to ir vieglāk un ātrāk iestatīt.
Jumper vadi
IZVĒLES PIEGĀDES
1 vidēja izmēra maizes dēlis
1-3 īslaicīgas kontakta spiedpogas
1-3 10 K omi rezistori
Šī pamācība ir gara, tāpēc es neiedziļināšos stiprinājumā vai skapī, ko esmu izmantojis pulksteņa parādīšanai. Ja jums patīk šis projekts un vēlaties izveidot pastāvīgu versiju, izveidojiet to pēc savas patikas. Šis dizains man ir ideāls, jo manā atkritumu kastē bija viss nepieciešamais, un man patīk tā izskats.
PIEZĪMES:
Lai izvairītos no strāvas padeves pārtraukumu kritiena, manu pēdējo pulksteni darbina ārā esošs saules panelis. Saules panelis saglabā 12 voltu akumulatoru ar regulatoru, lai novērstu pārmērīgu uzlādi. Šis akumulators ir pievienots Arduino, izmantojot barošanas ligzdu blakus USB portam. Es turpinu pievienot USB portu tīklam, lai samazinātu akumulatora izlādi. Abus barošanas avotus var izmantot vienlaikus, nesabojājot Arduino. 12 voltu akumulatoru var uzlādēt līdz 14,5 voltiem, kas ir pārāk augsts Arduino, tāpēc es izmantoju buks pārveidotāju, lai samazinātu barošanas spriegumu no akumulatora līdz diapazonam no 9 līdz 12 voltiem. 12 voltu akumulators, ko es uzlādēju, ilgs 3 vai 4 dienas, ja dienas būs apmākušās. Mans izmantotais regulators pārtrauks Arduino strāvu, ja akumulatora spriegums samazināsies līdz 11 voltiem. Akumulators, kas man ir, nāk no avārijas gaismas sistēmas komerciālām ēkām, tā ir aptuveni ceturtā daļa mazas automašīnas akumulatora izmēra. Ja plānojat izmantot automašīnas akumulatoru, noteikti glabājiet to labi vēdināmā vietā (ārpusē), automašīnas akumulatori, uzlādējoties un izlādējoties, izdala ūdeņradi un skābekļa gāzi, tā ir sprādzienbīstama kombinācija.
BRĪDINĀJUMS
UZGLABĀJIET AKUMULATORU LABI
VENTILĒTA ZONA, ĀRĀ
3. darbība: elektroinstalācija
Es esmu nodrošinājis shēmu visiem savienojumiem šajā projektā, ja izmantojat maizes dēli, jums būs nepieciešama vidēja izmēra tāfele, slēdžiem būs nepieciešama telpa, lai tos izkliedētu, lai ķēde nebūtu mulsinoša.
1602 LCD displejam vienkāršības labad ir I2C mugursoma, ja izmantojat SPI savienojumus, jums būs jāmeklē, kā to izmantot, un jāmaina kods skices sākumā. Es nekad neesmu izmantojis SPI savienojumus, tāpēc 2., 3. un 4. tapas var nebūt pieejamas trim spiedpogām.
Trīs spiedpogas tiek izmantotas, lai pielāgotu pulksteņa laiku. Viņi tikai paātrina laiku (AHEAD). Pēdējās korekcijās saglabājiet pulksteni kodā lēnajā pusē (apmēram 1 līdz 2 sekundes dienā vai vairākas dienas), tādējādi vajadzības gadījumā varat paātrināt laiku. Katra poga paātrina laiku par vienu soli sekundē, apakšējā poga par 2 sekundēm sekundē, vidējā poga par 1 minūti sekundē un augšējā poga par 1 stundu sekundē. Diezgan augstas precizitātes pakāpei vajadzētu būt iespējamai, tāpēc jums to nevajadzēs ļoti bieži pielāgot.
Ja jūs pielāgojat sekundes, minūtes vai stundas (piemēram, ja minūtes ir pavirzījušās uz priekšu 58, 59, 00), stunda tiks pārvietota uz nākamo stundu.
Šīs trīs pogas ir pulksteņa pēdējā brīža papildinājums, tās darbojas labi, taču var būt arī labāks veids. Vienkārši atcerieties, ka, ja jūs sajaucaties ar šo koda daļu, "delay ();" komandu nevar izmantot. Es izmantoju šo metodi, jo man nav jāuztraucas par slēdžu atlēcienu un dīvainiem lēcieniem laika gaitā.
4. darbība: displejs
Esmu ievietojis daudz informācijas par 1602 LCD displeju, kas ir jāpaskaidro:
1. rinda vai nulles rinda “0”, runājot ar kodu, parāda standarta laiku. Kreisajā pusē ir “STD”, tas nozīmē “STandarD” laiks.
Tālāk pirmajā rindā vidū ir jūsu vietējais standarta laiks. Nesāciet ar vasaras laiku, pulkstenis to parādīs otrajā rindā.
Šī laika skala ir 12 stundu pulkstenis, tāpēc labajā pusē ir “AM” vai “PM”, kas norāda rītu vai pēc pusdienlaika.
2. rinda vai pirmā rinda “1”, runājot ar kodu, parāda vasaras laiku, kas mainās atkarībā no gada dienas. “DST” kreisajā pusē nozīmē “vasaras laiks”
Otrās rindas vidū ir jūsu vietējais militārais laiks, kas ir 24 stundu pulkstenis. Jūs dzirdēsiet, piemēram, to sauc par "ak seši simti stundu".
Labajā pusē ir gada diena, kas minēta ziemas saulgriežos, ziemeļu puslodē 21. decembris (aptuveni) ir nulles diena “0”, bet dienvidu puslodē 21. jūnijs (aptuveni) ir nulles diena “0”.
Pirmoreiz iestatot pulksteni, esmu sniedzis divus.pdf failus. Izvēlieties failu, kas attiecas uz puslodi, kurā dzīvojat.
Trīs pogas labajā pusē palielina sekundes, minūtes un stundas no apakšas uz augšu.
5. darbība: skices iestatīšana
Sākotnējai palaišanai ir jāiestata vairākas koda rindas. Dažas no šīm rindām ir jāmaina katru reizi, kad atvienojat pulksteni un maināt skices mainīgo lielumus. Ja palaižat IDE pulksteni, ielāde un palaišana prasīs apmēram 6 sekundes. Ja ielādējat skici no IDE, atvienojiet pulksteni un restartējiet to no sienas kārpas vai barošanas avota, skice tiks sākta aptuveni 2,5 sekundēs.
11. rinda LiquidCrystal_I2C LCD (0x27, 2, 1, 0, 4, 5, 6, 7);
Šī līnija adresē LCD displeju un nosaka pareizo I2C aizmugures komplekta adresi. 0x27 ir adrese jebkurai iegādātajai mugursomai. Ja ieslēdzat pulksteni, bet netiek parādīti dati, bet tas iedegas, LCD ekrānā, iespējams, ir atšķirīga adrese. Zemāk es ievietošu saiti, lai aprakstītu, kā mainīt LCD mugursomas adresi vai atrast adresi.
Līnijas 24 int minuteSt = 35;
Iestatiet standarta pulksteņa sākuma minūti, parasti iestatiet to 5 minūtes pirms pulksteņa palaišanas, lai būtu iestatīšanas laiks.
Līnijas 25 int stundāSt = 18;
Iestatiet stundu uz STD laiku (24 stundu pulkstenis) sākas. 18:00 būtu 18. stunda.
26. rinda int DST dienās = 339;
Lejupielādējiet un skatiet PDF failu "Viegla DST pulksteņa laika skala" (ziemeļu vai dienvidu puslodē), kurā dzīvojat, atrodiet datumu un ievietojiet šajā rindā dienu #. (Kreisā kolonna). Piemērs (24. novembris ir 339. diena ziemeļu puslodē un #156. diena dienvidu puslodē)
27. rinda int DSTyear = 2019;
Ievadiet pašreizējo gadu.
92. rindiņa, ja ((masterTime - previousMasterTimeSt> = 1000) && (microTime - previousMicroTimeSt> = 500)) {
"PreviousMasterTimeSt" ir jāsalīdzina ar milisekundēm, tāpēc šis '1000' var būt jāmaina uz 999 atkarībā no Arduino plates iekšējā pulksteņa un pēc tam jāpielāgo iepriekšējaisMicroTime, lai precīzi noregulētu pulksteni. Iekšējais pulkstenis, lai arī 16MH, var mainīties no vienas plates uz otru.
"PreviousMicroTimeSt" precizē iekšējo pulksteni, lai palīdzētu atskaitīt precīzu 1 sekundi. Ja pulkstenis ir pārāk ātrs, palieliniet mikrosekundes un, ja pulkstenis ir pārāk lēns, samaziniet mikrosekundes un, ja nepieciešams, samaziniet milisekundes līdz 999 un pēc tam sāciet mikrosekundes ar aptuveni 999, 990 vai palieliniet pulksteņa ātrumu.
Katrai Arduino plāksnei ir nedaudz atšķirīgs ātrums, tāpēc šie skaitļi mainīsies ar katru izmantoto dēli. Daļa koda vēl nav pārbaudīta, tā ir 248. rinda, lai ņemtu vērā katru lēciena gadu. Tuvāko nedēļu laikā es to pārbaudīšu un, ja nepieciešams, ievietošu visas izmaiņas.
6. darbība. Noslēguma piezīmes
Šo projektu ir viegli izveidot, taču koncepcija un nepieciešamie pielāgojumi kodā var būt uzdevums, nesteidzieties un pārdomājiet. Pulkstenis nebeidzas līdz 2037. gada beigām. Es cieši uzraudzīšu savu e -pastu uz jautājumiem, jo esmu pārliecināts, ka tādi būs, es neesmu literārs ģēnijs, tāpēc daži mani apraksti var būt nedaudz dubļaini.
Ir iekļauti divi.pdf faili, lejupielādējiet to puslodes failu, kurā dzīvojat, šis fails sniegs jums nepieciešamo informāciju, lai precīzi iedarbinātu pulksteni.
Izmantojot skicē manipulēto informāciju, būtu viegli parādīt ne tikai standarta laiku un DST laiku, bet arī dienu un datumu 2004A LCD. Ja jums patīk šī projekta izaicinājumi, mēģiniet pievienot 2004A LCD displeju, pēc tam pievienojiet kodu, lai parādītu papildu informāciju, vai, ja tiek izrādīta pietiekama interese, es darīšu citu šī projekta variantu, ieskaitot šo papildu informāciju.
Esmu mēģinājis visaptveroši iesaistīties šajā projektā, bet atradu trīs attiecīgās pasaules jomas. Ziemeļpols, Dienvidpols un Ekvators.
Vai ziemeļu vai dienvidu polos ir nepieciešams vai pat iespējams DST?
Cik ir ziemeļu vai dienvidu polā?
Kādā virzienā jūs dotos, lai pamestu Ziemeļpolu vai Dienvidpolu?
Kādā virzienā no Dienvidpola jūs dotos, lai sasniegtu Austrāliju, Ziemeļameriku, Eiropu vai Āziju?
Kurā laika joslā dzīvo Ziemassvētku vecītis?
Vai viņam vajag DST?
Cik ir laiks Ziemeļpolā?
Kādā virzienā Ziemassvētku vecītis dodas, lai piegādātu visas savas dāvanas?
Kurā platuma grādos DST ir efektīva?
Tagad par ekvatoru;
Vai šo pulksteni var izmantot ekvatorā?
Vai viņi izmantotu ziemeļu vai dienvidu puslodes skalu?
Kādi ir ziemas saulgriežu un vasaras saulgriežu datumi?
Kurā platuma grādos DST ir efektīva?
Vai pingvīniem ir vajadzīgs DST?
Vai jūs domājat, ka esmu dīvains, domājot par šiem jautājumiem?
Priecīgu būvniecību visiem!
rieksts
7. darbība: citas saites
Šī ir saite, lai noteiktu vai mainītu adresi I2C mugursomā:
www.instructables.com/id/1602-2004-LCD-Adapter-Addressing/
PiotrS ir uzrakstījis lielisku pamācību I2C aparatūras adresēm
playground.arduino.cc/Main/I2cScanner
Šī saite skenēs jūsu I2C ierīci un atgriezīs adresi
Ieteicams:
Vasaras ventilatora dzesēšanas beisbola cepure: 6 soļi
Vasaras ventilatoru dzesējošā beisbola cepure: Kādu dienu, rakājoties pa savu drēbju skapi, es ieraudzīju veco sarkano beisbola cepuri, kuru esmu nopircis pagājušajā gadā. Pēkšņi man ienāca prātā ideja, es varētu pārveidot šo veco vāciņu par vēsu produktu, kas nosaukts kā ventilatora cepure, un tas ir ļoti īpašs jauninājumu produkts
Vasaras projekts 2020: 8 soļi
Vasaras projekts 2020: 2020. gada vasaras projektam es izveidoju divus robotu automobiļus ar vienādu šasiju. Vienam robotu automobilim vajadzēja izmantot ultraskaņas sensoru, lai noteiktu priekšā esošos objektus un pēc tam automātiski mainītu virzienu. Otrai automašīnai vajadzēja
HackerBox 0033: Vasaras rotaļlietas: 8 soļi
HackerBox 0033: vasaras rotaļlietas: šomēnes HackerBox Hackers pēta MicroPython uz PyBoard un samontē 2018. gada HackerBoxes konferences nozīmīšu komplektu. Šajā pamācībā ir informācija darbam ar HackerBox #0033, kuru var iegādāties šeit, kamēr ir palikuši krājumi
Vasaras Igloo: 3 soļi
Vasaras Igloo: tūlītēja gaisa slēpta vasaras slēptuve. Bērniem. Tas ir vienkārši, bet baumas par vasaras karstumu man atgādināja šo mazo triku, ko es darīju bērnībā, un es jutos kā to publicēt. Tas bija lieliski piemērots, lai atvēsinātos un izlasītu Tintin vai
Iedegiet ziedu vainagu galvas saites vasaras mūzikas festivāliem, kāzām, īpašiem gadījumiem: 8 soļi (ar attēliem)
Iedegiet ziedu vainagu galvas saites vasaras mūzikas festivāliem, kāzām, īpašiem gadījumiem: izgaismojiet nakti ar skaistu ziedu LED galvas saiti! Lieliski piemērots visām kāzām, mūzikas festivāliem, izlaidumiem, kostīmiem un īpašiem gadījumiem! Komplekti ar visu nepieciešamo, lai izveidotu savu iedegta galvas saite tagad ir pieejama valkājamo darbnīcu veikalā