Turinys:

7 segmentų laikrodis: 4 žingsniai (su nuotraukomis)
7 segmentų laikrodis: 4 žingsniai (su nuotraukomis)

Video: 7 segmentų laikrodis: 4 žingsniai (su nuotraukomis)

Video: 7 segmentų laikrodis: 4 žingsniai (su nuotraukomis)
Video: Introduction to HT16K33 4 Digit LED Seven Segment Display with Arduino 2024, Lapkritis
Anonim
Image
Image
7 Segmentinis laikrodis
7 Segmentinis laikrodis
7 Segmentinis laikrodis
7 Segmentinis laikrodis

Po kelerių metų naudojimo mano analoginis laikrodis galutinai mirė.

Tuo tarpu aš ieškojau 3D laikrodžio projekto, kurį galėčiau spausdinti su savo „Prusa“, todėl radau 7 segmentų laikrodį, kurį valdys „ws2812“lemputės ir „Arduino“.

Aš maniau, kad šių diodų galia yra parodyti daugybę spalvų, tada kilo klausimas, kaip skaitmeniniame laikrodyje sujungti kelias spalvas?

Tada idėja pritaikyti laikrodį šiomis funkcijomis:

- 7 skirtingi minučių keitimo perėjimai

- 3 iš anksto nustatytos spalvos laiko tarpsniams

- aplinkos šviesos intensyvumo automatinis pritemdymas

- automatinis išjungimas/paleidimas, kai nereikia rodyti laiko

- Automatinis vasaros laiko reguliavimas

Prekės

Projektas gali būti vykdomas naudojant 3D spausdintuvą arba „Google“ieškant 7 segmentų laikrodžių projektų. Kažkas juos pagamino ir iš kartono.

Taip pat reikia:

  • Arduino nano
  • foto chell
  • momentinis mygtukas
  • įjungimo/išjungimo jungiklis
  • DC kištukas
  • 5V transformatorius
  • n ° 30 WS2812 šviesos diodų (modelis 30 LED/metras)
  • PCB
  • DS3231 modulis
  • ploni kabeliai, skirti LED jungtims
  • rezistoriai 10K, 550
  • lituoklis
  • klijai
  • džemperiai
  • antraštės vyrai/moterys

1 žingsnis: Spausdinimas ir laidų prijungimas…

Spausdinimas ir laidai…
Spausdinimas ir laidai…
Spausdinimas ir laidai…
Spausdinimas ir laidai…
Spausdinimas ir laidai…
Spausdinimas ir laidai…

Pradinis „Thingverse“projektas buvo šiek tiek pakeistas. (Dėka vartotojo random1101)

Du taškai buvo padidinti, kad atitiktų šiam projektui naudojamą LED versiją. Vienas iš trijų galinių dangtelių taip pat buvo modifikuotas taip, kad tilptų PCB. Taip pat pakeista laikrodžio bazė.

Pagrindinis darbas yra lituoti lemputes. Pirmiausia lituodavau šviesos diodus, esančius už 3D spausdinimo skaitmenų užpakalinio dangtelio, tada įdėjau į jį.

7 -asis pirmojo skaitmens indikatorius, prasidedantis iš kairės, bus prijungtas prie kito skaitmens pirmojo indikatoriaus. Ketvirtojo skaitmens pabaigoje prijunkite du taškų šviesos diodus, sekos viduje jie bus sunumeruoti 28 ir 29.

LED seka gali būti pakeista, pakeitus kai kuriuos parametrus į „Arduino“biblioteką, kaip paaiškinta toliau.

Prisijungus, dauguma darbų yra padaryta.

2 žingsnis: PCB surinkimas

PCB surinkimas
PCB surinkimas
PCB surinkimas
PCB surinkimas
PCB surinkimas
PCB surinkimas
PCB surinkimas
PCB surinkimas

Dabar atėjo laikas surinkti plokštę, kurioje lituoti kai kuriuos rezistorius, antraštes ir tt Arduino prijungimo komponentai yra šie:

Mygtukas, sujungtas tarp „Arduino“kaiščio 3 ir GND su vidiniu pritraukimo rezistoriumi.

Šviesos jutiklis, prijungtas kaip įtampos daliklis, tarp „Arduino“kaiščio A7 ir GND. Taip pat pridėkite 10K rezistorių tarp A7 ir +5V ……… DIDELĖ KLAIDA

šviesos jutiklis tarp +5V ir A7 kaiščio ir 10K rezistorius tarp A/ kaiščio ir GND

DS3231 modulis, prijungtas per „i2c“ir SQW kaištį prie „Arduino“pertraukimo kaiščio 2

Šviesos diodai prijungti prie varžto nuo 5 iki 550 omų.

3 žingsnis: eskizas

Eskizo viduje galima atlikti daugybę pritaikymų.

Vasaros laiko biblioteką tvarko parametrai „TimeChangeRule“, daugiau informacijos rasite „JChristensen“bibliotekoje „Github“.

Automatinį išjungimą kilpos viduje tvarko kintamasis int gotosleep. Mano atveju 0:00 val. „Arduino“persijungia į miego režimą, tada laikrodis išsijungia.

Nustatydami ALARM DS3231 modulyje per kintamąjį „int gotosleep“, leiskite „Arduino“pabusti iš miego režimo. Mano atveju 7:00 ryto.

Kita funkcija yra pakeisti laikrodžio spalvą per dieną viduje:

void printDateTime (time_t t, const char *tz)

Mano nustatymuose nuo 0:00 iki 12:00 laikas rodomas raudonai, nuo 12:00 iki 17:00 žalia ir nuo 17:00 iki 0:00 dažniausiai mėlynas. Tai geriausias iki šiol rastas spalvų balansas, kad būtų geras kontrastas su balta siena.

Perėjimų funkcija leidžia animacinį spalvų perėjimą, kai keičiasi minutės. Yra 6 skirtingi, kuriuos galima pasirinkti paspaudžiant momentinį mygtuką, 7 variantas yra be perėjimų. Tas, kuris man patinka, pavadintas newrandom (), kuris yra iš anksto nustatytas (int mode = 1;).

Aš padariau keletą bibliotekos pakeitimų, kad būtų suderinama su LED seka. Failo segment_display.cpp viduje, jungikliu (i), galite pakeisti savo sekų seką. Baigę pakeiskite failą viduje

/Arduino/bibliotekos/7segment_NeoPixel-master

Reikalingos bibliotekos:

  • avr.miegas
  • segment_display
  • DS3231
  • „TimeLib“
  • Viela
  • „Adafruit NeoPixel“
  • Laiko zona

4 žingsnis: Atėjo laikas atsisveikinti

Man patinka šis laikrodis, dabartinis laikas yra aiškiai matomas iš toli ir jis išsijungia, kai man to nereikia.

Kaip galima paprašyti daugiau iš laikrodžio?

Rekomenduojamas: