Satura rādītājs:

Pensijas pulkstenis / skaitīšana uz augšu / Dn pulkstenis: 4 soļi (ar attēliem)
Pensijas pulkstenis / skaitīšana uz augšu / Dn pulkstenis: 4 soļi (ar attēliem)

Video: Pensijas pulkstenis / skaitīšana uz augšu / Dn pulkstenis: 4 soļi (ar attēliem)

Video: Pensijas pulkstenis / skaitīšana uz augšu / Dn pulkstenis: 4 soļi (ar attēliem)
Video: KOSPET TANK S1 Review: Rugged Smartwatch with Elegant Style 2024, Novembris
Anonim
Pensijas pulkstenis / saskaitīt / Dn pulkstenis
Pensijas pulkstenis / saskaitīt / Dn pulkstenis

Man atvilktnē bija daži no šiem 8x8 LED punktu matricas displejiem un domāju, ko ar tiem iesākt. Iedvesmojoties no citiem norādījumiem, man radās ideja izveidot atpakaļskaitīšanas/atpakaļskaitīšanas displeju, lai skaitītu atpakaļ līdz nākamajam datumam/laikam un, ja ir pagājis mērķa laiks, skaitīt no tā. Es to tagad izveidoju par savu pensijas pulksteni, kas sēdēja plauktā.

Ideja to ielikt pudelē drīzāk bija nelaimes gadījums, domājot par apvalku. Citi ieliek kuģus pudelē, kāpēc ne pulksteni?

Es arī gribēju likt pulkstenim ievērot vasaras laiku un, protams, atcerēties iestatījumus un laiku, kad tiek atvienots no elektrotīkla. Es baroju pulksteni, izmantojot USB, kas padara to pārprogrammējamu, ja vēlaties kaut ko darīt citādi vai vienkārši pievienot koda funkcijas. Kods ir diezgan vienkāršs un var izmantot arī daudz optimizācijas. Man nav pienācīgi rūpējies par RAM patēriņu, jāatzīst. Ja man būs laiks un motivācija, es pie tā atgriezīšos.

Piegādes

1. Arduino Nano

2. RTC (es izmantoju parasto DS3231, kuram ir arī EEPROM)

3. 12x 8x8 punktu matricas modulis. (Man bija četrkodolu moduļi, kurus ir vieglāk salikt rindā)

4. LDR, lai pielāgotu displeja spilgtumu

5. Rezistors 10 kOhm

6. Kondensators 5x 100 uF slāpēšanas tapas no displeja

7. Lai palielinātu 8x8 moduļu kontrastu, es izmantoju tumši tonētu "Window Film". Displejā gaismas diodes ir redzamas kā balti punkti, ja tās nedeg. Logu plēve padara to par spīdīgi melnu izskatu.

1. darbība: pievienojiet komponentus

Savienojiet komponentus
Savienojiet komponentus
Savienojiet komponentus
Savienojiet komponentus

Displeja salikšanai es izmantoju trīs no četrkodolu displejiem. Lai parādītu datumu ar slīpsvītrām un laiku ar kolu, mums ir nepieciešama vieta 8 rakstzīmēm. Izmantojot tipisko 5x7 fontu, mums ir nepieciešami seši 8x8 bloki katrā rindā. Es pārgriezu vienu no četrvietīgajiem blokiem uz pusēm un sakārtoju tos kā divas rindas pa sešiem blokiem, kā parādīts maizes dēļa shēmā.

2. darbība: 3D drukātās detaļas

3D drukātas detaļas
3D drukātas detaļas
3D drukātas detaļas
3D drukātas detaļas
3D drukātas detaļas
3D drukātas detaļas

Lai noturētu abas displeja rindas un ievietotu tās pudelē, es izdrukāju displeja rāmim apaļus attāluma gredzenus. Es pievienoju failus, kurus izmantoju zemāk. Lai tos varētu izdrukāt bez atbalsta, tie ir sadalīti daļās. Ekrānuzņēmumā ir redzami divi gredzeni, kas pielīmēti pie displeja rāmja. Pudeles kakla vāciņā ir trīs pogas, lai pārslēgtos starp displeja režīmiem un iestatītu pašreizējo laiku un mērķa laiku. Pudeles kakla vāciņš, ko es iespiedu TPU, ļauj iebīdīt USB kabeli vāciņā, nenogriežot savienotājus un sasiet to ar dažiem stieples tinumiem. Aizmirsu pieminēt, ka izmantoju 1,5 L vīna pudeli, kuru sagriezu pašā apakšā. Visas drukājamās detaļas ir uzstādītas uz 20x20 cm (8x8 collu) printera gultas.

3. darbība: kods

Arduino kods izmanto dažas parasti izmantotās bibliotēkas.

MD_MAX72xx

SPI

Vads

RTClib

Laika zona

TimeLib

INO failā ir dažas rindiņas, kuras, iespējams, būs jāmaina:

38. rinda: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- atkarīgs no 8x8 moduļa un tā orientācijas

FC16_HW vietā tas varētu būt viens no:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Kods izmanto ASV centrālā laika iestatījumus, un tas ir jāpielāgo citām laika joslām.

53./54. Rinda:

TimeChangeRule myDST = {"CDT", Second, Sun, Mar, 2, -300}; // Vasaras laiks UTC -5TimeChangeRule mySTD = {"CST", First, Sun, Nov, 2, -360}; // Standarta laiks UTC -6

To ir viegli pielāgot. Nosaukumam CST/CDT ir tikai atsauce. Es nerāda trīs burtu saīsinājumu, tāpēc tam nav nozīmes. Nākamie parametri attiecas uz to, kurā mēneša dienā notiek pārslēgšanās. Pielāgošana notiek minūtēs, tāpēc darbosies arī vietas, kurās tiek izmantoti +/- 30 minūšu pielāgojumi.

RTC darbojas iekšēji UTC-Time, ļaujot laika joslas bibliotēkai darboties, kā paredzēts. Jums var rasties jautājums, kāpēc kods atsaucas uz vecāku DS1307 mikroshēmu pretēji manis izmantotajai pulksteņa mikroshēmai, taču tam nav nozīmes. Bibliotēka darbojas labi ar jebkuru mikroshēmu. DS1307 ir tendence nobīdīties vairāk nekā DS3132. vēlamais pulkstenis ir DS3132. Tiem, kas vēlas pievienot interneta laiku, ESP8266 darīs šo darbu diezgan viegli. Tas var padarīt RTC novecojušu. Ja veicat šīs izmaiņas, izmantojiet Arduino EEPROM, lai saglabātu mērķa laiku, es to izmantoju, izmantojot RTC EEPROM.

4. darbība: darbība un iestatījumi

Darbība un iestatījumi
Darbība un iestatījumi
Darbība un iestatījumi
Darbība un iestatījumi
Darbība un iestatījumi
Darbība un iestatījumi

Ir trīs pogas

1. Izvēlne / iestatījumi

2. Uz augšu

3. Uz leju

Izvēlnes poga ļauj pārvietoties pa trim displeja tipiem: pašreizējais laiks, mērķa laiks, delta laiks. Delta laiks parāda dienu skaitu, HH/MM/SS starp pašreizējo laiku un mērķa laiku. Tas parādīs t- un atpakaļskaitīšanu, ja mērķis ir nākotnē vai t+, un skaitīs augšup, ja mērķis ir pagātnē.

Lai pielāgotu pašreizējo vai mērķa laiku, atlasiet pašreizējā laika vai mērķa laika displeju. Lai mainītu laiku, 2 sekundes turiet nospiestu izvēlnes pogu un atlaidiet to, lai jūs nonāktu iestatīšanas režīmā. Blakus esošais "/" vai ":" pārvērtīsies par "", lai norādītu, kuru ciparu jūs pielāgojat. Izmantojiet augšup/lejup vērstās pogas, lai pielāgotu individuālos hh/mm/ss un mm/dd/yy. Es nepievienoju iestatījumu, lai pārslēgtos starp mm/dd/ggg un dd/mm/gg., Tas ir jāmaina kodā, vai varbūt kāds vēlas pievienot šo funkciju.

Jūs pamanīsit, ka, ja jūs pārsniegsit minūtes virs 59 vai zem 00, tiks pielāgots arī stundu displejs. tas pats attiecas uz sekundēm, stundām un dienām, mainot nākamo augstāko vērtību, ja šķērsojat zem 0 vai virs šī skaitļa maksimālās vērtības. Es to darīju, lai izvairītos no atsevišķu mēnešu ierobežojumu programmēšanas un ja februārim ir vajadzīgas 29 dienas lēciena gadā. Laika pielāgošana faktiski tiek veikta laikmeta laikā, sekundēs kopš 1.-1970. Gada janvāra.

Es pievienoju vienkāršu video, lai parādītu skaitīšanu. Es gribēju tos padarīt kā rotējošus riteņu displejus. Ja vēlaties pielāgot izmaiņu ilgumu, INO 69. rindā ir dažas iespējas, kā paātrināt vai palēnināt izmaiņas. 120 ms liktu cipariem ritināt pietiekami lēni, jo tas būtu nepārtraukti strādājošs ritenis.

Es ceru, ka jums patika šī pamācība.

Patriks Gesvindners

Ieteicams: