Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Nesvarbu, ar pasaulis žygiuoja, ar tiesiog nori sužinoti, kiek laiko yra prieš skambinant vėlai vakare, 5 zonų pasaulinis laikrodis tinka. Kadangi naujausioje siuntoje gavau papildomų TM1637 7 skaitmenų ekranų, nusprendžiau visiems laikams sudėti laikrodį. Aš nusprendžiau projektui naudoti „Arduino Uno“, kuriame buvo pakankamai GPIO 5 laikrodžiams, 5 AM indikatoriams (LED) ir viršutinei šviesai, įjungtai jutikliniu jutikliu. Vienintelis kaištis, kurio nenaudojau, buvo D1, skirtas serijiniam Tx, o tai gali sukelti tik bėdų. Taigi, jei jus domina, skaitykite toliau!
1 žingsnis: dalys
Norėdami pagaminti laikrodį, kurį naudojau:- „Arduino Uno“(bet taip pat veiktų „Nano“arba „Mega“)
- (5) TM1637 ekranai
- (5) šviesos diodai (naudojami kaip AM/PM indikatoriai)
- (5) 220 omų rezistoriai
- RTC3231 laikrodis
- „AdaFruit NeoPixel“lazdelė ar kitas apšvietimas
- Norėdami įjungti šviesą, palieskite jutiklį
- „Buck“keitiklis, skirtas energijos suvartojimui
- Rėmelis ar dėklas (3D spausdinau dėklą, bet būkite kūrybingi)
- 12 V maitinimas su statinės lizdu (kad būtų galima padalinti pašarus)
- neprivaloma - „Arduino Uno“skydas (kad būtų šiek tiek paprasčiau)
2 veiksmas: pradžia
Aš dar naujokas TM1637, todėl pirmiausia užprogramavau vieną, kad pamatyčiau, ką galėčiau padaryti. Iš pradžių tai nieko nedarė, tačiau „Arduino“bendruomenė yra nuostabi ir netrukus mane pradėjo veikti. Savo TM1637 turėjau nupjauti 2 dangtelius ant nugaros, kad jis veiktų, o iš ten tik bandymai ir klaidos. Galų gale vis tiek negalėjau gauti dvitaškio laikrodžiui - jis „pakeičia“valandos skaitmenį 1 pozicijoje, bet kol kas man viskas gerai.
Tada pirmiausia sujunkite duonos lentą su viskuo, kad įsitikintumėte, jog visi jūsų ryšiai ir programavimas sutampa - taip, aš vis dar esu žingsnis po žingsnio vaikinas. Tada nuspręskite apie norimas vietas ir nustatykite tikslines vietoves, nustatydami laiko skirtumus nuo GMT. Dabar pereikite prie litavimo ir padėties nustatymo.
3 žingsnis: laidų prijungimas
Naudodami 12 V įvesties statinės maitinimo jungtį, padalinkite maitinimą ir įžeminimą į 1) „Buck“keitiklį ir 2) „Arduino“„Vin“.
Naudokite „Buck“keitiklį, kad prijungtumėte prie skydo 5 V maitinimo ir įžeminimo eilutes, kad paleistumėte jungtis, tai stabilizuos visas maitinimo problemas.
Kiekvienas TM1637 turi 4 jungtis (5v, Grd, Data ir Clock), o DIO ir CLK pereina prie atskirų GPIO kaiščių (naudojau 2-11), o maitinimas-mano eilėms.
„Meridian“indikatoriams (5 šviesos diodai) lydmetalis (5) 220 omų res į žemę ir anodo jungtys prie A0-A3 ir D12.
RTC reikia 5v ir Grd kartu su SDA ir SCL (A4 ir A5).
Šviesos lazdelę reikia įžeminti du kartus, vieną kartą prie eilės ir vieną kartą prie „Uno“. Paleiskite 5v į eilutę ir duomenis į GPIO (D13). Jutiklinis jutiklis veikia iki 5 V ir Grd ir iki GPIO D0.
4 žingsnis: programavimas
Programavimas yra gana tiesus. Ekranams naudojau TM1637display.h biblioteką, kiekvienam ekranui priskirdamas unikalų pavadinimą - nuspėjamai, su miesto pavadinimu. Tiesiog pakeiskite kiekvieno DIO ir CLK kaiščius.
Koduokite savo pirmąją vietą pagal laiko skirtumą ir nustatykite AM/PM perimetrus, kad šviesos diodas būtų įjungtas/išjungtas pagal valandą. Naudokite ją kiekvienai vietai kopijuoti.
Aš priskyriau valandą 0 pozicijai, 2 skaitmenys, be nulio. Minutėms naudoti „minutę“ir padalyti iš 10 1 skaitmeniui (2 poz., 1 skaitmuo) ir modulo (%) 2 skaitmeniui (3 poz., 1 skaitmuo).
„NeoPixel“apšvietimas jutikliu buvo toks pat kaip ir bet kuris kitas mygtukų/LED derinys naudojant „Adafruit_NeoPixel“biblioteką.
Lengva.
5 žingsnis: Surinkimas
Sukurkite tinkamą dėklą, kuris tinka ekranams ir tam tikram kambariui už plokštės, maitinimo įvesties ir pelno keitiklio. Įdėkite, prijunkite laidus, įjunkite ir viskas paruošta. Gerai, tai gali būti daugiau nei tai, tačiau tai yra pagrindai, nepaisant dizaino.
Mėgaukitės ir laimingas tinkavimas!