Indholdsfortegnelse:

Pensionistur / optælling / Dn -ur: 4 trin (med billeder)
Pensionistur / optælling / Dn -ur: 4 trin (med billeder)

Video: Pensionistur / optælling / Dn -ur: 4 trin (med billeder)

Video: Pensionistur / optælling / Dn -ur: 4 trin (med billeder)
Video: Vi giver en PENSIONIST vores DANKORT! 2024, Juli
Anonim
Pensionistur / Count Up / Dn Ur
Pensionistur / Count Up / Dn Ur

Jeg havde et par af disse 8x8 LED dot-matrix displays i skuffen og tænkte på, hvad jeg skulle gøre med dem. Inspireret af andre instruktører fik jeg ideen om at bygge et nedtællings-/op -display til nedtælling til en fremtidig dato/tid, og hvis måletiden gik, tæl op fra det. Jeg lavede dette nu til mit pensionistur, der sad på hylden.

Ideen om at putte den i en flaske var mere en ulykke, mens jeg tænkte på et kabinet. Andre lægger skibe i en flaske, hvorfor ikke et ur?

Jeg ville også få uret til at adlyde sommertid og selvfølgelig huske indstillingerne og tidspunktet, når det blev taget ud af stikkontakten. Jeg driver uret via USB, hvilket gør det omprogrammerbart, hvis du gerne vil gøre noget andet eller bare tilføje funktioner til koden. Koden er ret enkel og kan også bruge meget optimering. Jeg tog mig ikke godt af RAM -forbruget, jeg må indrømme. Hvis jeg fik tid og motivation, vender jeg tilbage til det.

Forbrugsvarer

1. Arduino Nano

2. RTC (jeg brugte den almindelige DS3231, som også har en EEPROM)

3. 12x 8x8 dot matrixmodul. (Jeg havde quad -modulerne, som er lettere at stille op)

4. LDR for at justere displayets lysstyrke

5. Modstand 10 kOhm

6. Kondensator 5x 100 uF undertrykker pigge fra displayet

7. For at øge kontrasten mellem de 8x8 moduler brugte jeg den mørkfarvede "Window Film". Displayet viser lysdioderne som hvide prikker, hvis de ikke lyser. Vinduesfilmen gør det til et skinnende sort look.

Trin 1: Tilslut komponenterne

Tilslut komponenterne
Tilslut komponenterne
Tilslut komponenterne
Tilslut komponenterne

Jeg brugte tre af quadskærmene til at samle skærmen. For at vise en dato med skråstreger og tid med kolon, har vi brug for plads til 8 tegn. Ved hjælp af den typiske 5x7 skrifttype skal vi bruge seks 8x8 blokke pr. Række. Jeg skar en af quadblokkene i halve og arrangerede disse som to rækker med seks blokke som vist i skivebrættet.

Trin 2: 3D -printede dele

3D -trykte dele
3D -trykte dele
3D -trykte dele
3D -trykte dele
3D -trykte dele
3D -trykte dele

For at holde de to rækker i displayet og placere disse i flasken udskrivte jeg runde afstandsringe til displayrammen. Jeg tilføjede de filer, jeg brugte nedenfor. For at kunne udskrive disse uden støtte, er de delt i dele. Skærmbilledet viser de to ringe limet til displayrammen. Flaskehalsdækslet indeholder de tre knapper til at skifte mellem visningstilstande og indstilling af aktuel tid og måltid. Flaskehalsdækslet trykte jeg i TPU, så det kunne glide USB -kablet ind i dækslet uden at afskære stikkene og binde det fast med et par viklinger af wire. Jeg glemte at nævne, at jeg brugte en 1,5 L vinflaske, som jeg skar i bunden. Alle dele, der skal udskrives, passer på en 20x20 cm (8x8 in) printerseng.

Trin 3: Koden

Arduino -koden bruger et par almindeligt anvendte biblioteker.

MD_MAX72xx

SPI

Tråd

RTClib

Tidszone

TimeLib

Der er et par linjer i INO -filen, som muligvis skal ændres:

Linje 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- afhænger af 8x8 modulet og dets retning

i stedet for FC16_HW kunne det være en af:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

Koden bruger indstillingerne for amerikansk central tid og skal justeres for andre tidszoner:

Linje 53/54:

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

Dette er let at justere. Navnet CST/CDT er bare for at have en reference. Jeg viser ikke forkortelsen på tre bogstaver, så det er ligegyldigt. De næste parametre refererer til hvilken dag i måneden skiftet sker. Justeringen er i minutter, så steder, der bruger justeringer på +/- 30 minutter, fungerer også.

RTC kører internt på UTC-tid, hvilket tillader tidszone-biblioteket at fungere efter hensigten. Du undrer dig måske over, hvorfor koden refererer til den ældre DS1307 -chip i modsætning til den urchip, jeg brugte, men det gør ikke noget. Biblioteket fungerer fint med begge chips. DS1307 har en tendens til at glide mere af end DS3132. DS3132 er det foretrukne ur. For dem, der gerne vil tilføje internettid, vil en ESP8266 udføre jobbet ganske let. Dette kan gøre RTC forældet. Hvis du foretager disse ændringer, skal du bruge Arduino EEPROM til at gemme måletiden, jeg brugte RTC EEPROM til at gøre det.

Trin 4: Betjening og indstillinger

Betjening og indstillinger
Betjening og indstillinger
Betjening og indstillinger
Betjening og indstillinger
Betjening og indstillinger
Betjening og indstillinger

Der er tre knapper

1. Menu / indstillinger

2. Op

3. Ned

Menuknappen gør det muligt at cykle gennem de tre displaytyper: Aktuel tid, Måltid, Delta -tid. Delta -tiden viser antallet af dage, HH/MM/SS mellem den aktuelle tid og måletiden. Det viser t- og nedtælling, hvis målet er i fremtiden eller t+ og tæller op, hvis målet er tidligere.

Hvis du vil justere den aktuelle eller måletidspunkt, skal du vælge det aktuelle klokkeslæt eller måletidsvisning. Hvis du vil ændre klokkeslættet, skal du holde menu -knappen inde i 2 sekunder og slippe, hvilket vil bringe dig til indstillingstilstand. Den tilstødende "/" eller ":" vil blive til "" for at angive, hvilket ciffer du justerer. Brug op/ned -knapperne til at justere de enkelte hh/mm/ss og mm/dd/åå. Jeg tilføjede ikke en indstilling til at skifte mellem mm/dd/åå og dd/mm/åå, dette skal ændres i koden, eller måske er nogen villige til at tilføje denne funktion.

Du vil bemærke, at hvis du træder minutterne over 59 eller under 00, vil timevisningen også justeres. det samme gælder for sekunder, timer og dage, hvor den næste højere værdi ændres, hvis man krydser under 0 eller over maksimum for dette ciffer. Jeg gjorde dette for at undgå at programmere de forskellige grænser for individuelle måneder, og hvis februar har brug for 29 dage i et skudår. Justering af klokkeslættet sker faktisk i epoketid, sekunder siden 1-1-1970.

Jeg tilføjede en simpel video for at vise tællingen. Jeg ville gøre disse som et display til drejning af hjul. Hvis du kan lide at justere varigheden af ændringen, giver linje 69 i INO dig et par muligheder for at fremskynde eller bremse ændringen. 120 ms ville få cifrene til at rulle langsomt nok, da det ville være et hjul, der løbende kører.

Jeg håber, at du nød dette instruerbare.

Patrick Geschwindner

Anbefalede: