Turinys:

„LEDura“- analoginis LED laikrodis: 12 žingsnių (su paveikslėliais)
„LEDura“- analoginis LED laikrodis: 12 žingsnių (su paveikslėliais)

Video: „LEDura“- analoginis LED laikrodis: 12 žingsnių (su paveikslėliais)

Video: „LEDura“- analoginis LED laikrodis: 12 žingsnių (su paveikslėliais)
Video: chirunavvutho-ninnala monnala ledura 2024, Liepa
Anonim
LEDura - analoginis LED laikrodis
LEDura - analoginis LED laikrodis
LEDura - analoginis LED laikrodis
LEDura - analoginis LED laikrodis
LEDura - analoginis LED laikrodis
LEDura - analoginis LED laikrodis

Tinkercad projektai »

Po ilgo laiko, kai tik kūriau įvairius projektus, nusprendžiau pats padaryti instrukciją. Pirmiausia aš jums padėsiu sukurti analoginį laikrodį, pagamintą naudojant nuostabų adresuojamą LED žiedą. Vidinis žiedas rodo valandas, išorinis - minutes ir sekundes.

Be laiko rodymo, laikrodis taip pat gali rodyti kambario temperatūrą ir gali būti labai graži kambario puošmena. Kas 15 minučių laikrodis taip pat sukuria specialiųjų efektų - vaizdo įraše rodomi visi, būtinai patikrinkite. Naudodamas 2 mygtukus ir potenciometrą, vartotojas gali pasirinkti tarp skirtingų režimų ir modifikuojamų spalvų. Aš taip pat atnaujinau jį, kad automatiškai pritemdytų šviesos diodus, jei kambaryje sutemsta, todėl vartotojas naktį netrukdys.

Laikrodį galima pastatyti ant stalo, lovos stalo arba pakabinti nuo sienos.

Pastaba: dėl didelio ryškumo nuotraukos nėra tokios geros, kaip vaizdas iš tikrųjų.

1 žingsnis: kaip jį perskaityti?

Kaip ją perskaityti?
Kaip ją perskaityti?

Laikrodis turi 2 žiedus - mažesnis valandoms rodyti, o didesnis - minutėms ir sekundėms. Kai kurie šviesos diodai šviečia visą laiką - vadinamasis kompasas, rodantis pagrindines laikrodžio pozicijas. Valandos žiede jis rodo 3, 6, 9 ir 12 val.

2 žingsnis: ko jums reikės

Ko jums reikės
Ko jums reikės

Medžiagos:

  • 1x „Arduino Nano“(galite naudoti ir bet kurį kitą „Arduino“)
  • 1x DS3231 „RealTimeClock“modulis
  • 1x adresuojamas LED žiedas - 60 šviesos diodų
  • 1x adresuojamas LED žiedas - 24 šviesos diodai
  • 2x mygtukai (NE - normaliai atidarytas)
  • 1x 100kOhm potenciometras
  • 1x 5V maitinimo šaltinis (gali tiekti 1 amperą)
  • 1x maitinimo jungtis
  • Kai kurie laidai
  • 1x 10kOhm rezistorius
  • 1x fotorezistorius
  • Paruošta lenta (neprivaloma)
  • Gnybtų bloko laidų jungtys (neprivaloma)
  • 25 mm storio mediena, kurios dydis ne mažesnis kaip 22 cm x 22 cm
  • 1mm plonas kilimėlis PVC plastiko dydis 20cmx20xm

Įrankiai:

  • Pagrindiniai statybos elektronikos įrankiai (lituoklis, replės, atsuktuvas ir kt.)
  • Gręžimo mašina
  • Karštas klijų pistoletas
  • Smėlio popierius ir šiek tiek medžio lakas
  • CNC staklės (galbūt kas nors draugas turi)

3 žingsnis: Elektronikos komponentai - fonas

Elektronikos komponentai - fonas
Elektronikos komponentai - fonas
Elektronikos komponentai - fonas
Elektronikos komponentai - fonas
Elektronikos komponentai - fonas
Elektronikos komponentai - fonas

DS3231

Laiką galėjome nustatyti naudodami „Arduinos“įmontuotą osciliatorių ir laikmatį, tačiau nusprendžiau naudoti specialų realaus laiko laikrodžio (RTC) modulį, kuris gali sekti laiką, net jei atjungiame laikrodį nuo maitinimo šaltinio. DS3231 plokštėje yra baterija, kuri maitina, kai modulis nėra prijungtas prie maitinimo šaltinio. Jis taip pat yra tikslesnis ilgesnį laiką nei „Arduinos“laikrodžio šaltinis.

DS3231 RTC naudoja I2C sąsają, kad galėtų bendrauti su mikrovaldikliu-labai paprasta naudoti ir mums reikia tik 2 laidų. Modulis taip pat turi temperatūros jutiklį, kuris bus naudojamas šiame projekte.

Svarbu: jei planuojate RTC moduliui naudoti ne įkraunamą bateriją, turėtumėte išlydyti 200 omų rezistorių arba 1N4148 diodą. Priešingu atveju jūsų baterija gali susprogti. Daugiau informacijos rasite šioje nuorodoje.

WS2812 LED žiedas

Aš nusprendžiau naudoti 60 LED žiedų, kad galėčiau sekti minutes, ir 24 LED žiedus valandas. Juos galite rasti „Adafruit“(„neoPixel“žiedas) arba kai kuriose pigiose versijose „eBay“, „Aliexpress“ar kitose internetinėse parduotuvėse. Tarp adresuojamų šviesos diodų juostų yra didelė įvairovė ir, jei pirmą kartą su jomis žaidžiate, rekomenduoju perskaityti kai kuriuos naudojimo aprašymus - čia yra keletas naudingų nuorodų:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

Adresuojama LED juostelė turi 3 jungtis: 5V, GND ir DI/DO. Pirmieji du skirti maitinti šviesos diodus, paskutinis - duomenims. Būkite atsargūs jungdami žiedą prie „Arduino“- jūsų duomenų linija turi būti prijungta prie DI (duomenų įvesties) kaiščio.

Arduino

Aš naudoju „Arduino Nano“, nes jis yra mažas ir pakankamai pakankamas šiam projektui. Galite naudoti beveik bet kurį kitą „Arduino“, bet tada turite būti atsargūs, prijungdami viską prie jo. Mygtukai ir šviesos diodų žiedai gali būti ant tų pačių kaiščių, tačiau I2C jungtys (RTC moduliui) gali skirtis priklausomai nuo platformos - patikrinkite jų duomenų lapą.

4 žingsnis: Elektronika - maitinimo šaltinis

Elektronika - maitinimo šaltinis
Elektronika - maitinimo šaltinis

„Arduino“ir LED juostelės turi būti tiekiamos su 5 V maitinimo šaltiniu, kad žinotume, kokia įtampa reikalinga. Kadangi šviesos diodas skamba, jis pritraukia gana daug stiprintuvų, mes negalime jo tiesiogiai maitinti naudodami „Arduino“, kuris gali atlaikyti ne daugiau kaip 20 mA skaitmeninę išvestį. Mano matavimais, šviesos diodų žiedai gali sudaryti iki 500 mA. Štai kodėl aš nusipirkau adapterį, galintį tiekti iki 1A.

Tuo pačiu maitinimo šaltiniu norime maitinti „Arduino“ir šviesos diodus - čia turite būti atsargūs.

Įspėjimas! Būkite ypač atsargūs, kai bandote šviesos diodų juostą - maitinimo adapteris NEGALI būti prijungtas prie „Arduino“, kai „Arduino“taip pat prijungtas prie kompiuterio su USB jungtimi (galite sugadinti kompiuterio USB prievadą).

Pastaba: Žemiau esančiose schemose naudojau įprastą jungiklį, kad pasirinkčiau, ar „Arduino“maitinamas per maitinimo šaltinį, ar per USB jungtį. Tačiau ant lentos matote, kad pridėjau kaiščio antraštę, kad pasirinkčiau, iš kokio šaltinio maitinamas „Arduino“.

5 žingsnis: Elektronika - litavimas

Elektronika - litavimas
Elektronika - litavimas
Elektronika - litavimas
Elektronika - litavimas
Elektronika - litavimas
Elektronika - litavimas
Elektronika - litavimas
Elektronika - litavimas

Kai surinksite visas dalis, laikas jas lituoti kartu.

Kadangi norėjau, kad laidai būtų tvarkingi, laidams naudojau perforatorių ir tam tikrą gnybtų bloko jungtį, todėl pakeitimų atveju galiu juos atjungti. Tai neprivaloma - taip pat galite lituoti laidus tiesiai prie „Arduino“.

Patarimas: lengviau išspausdinti schemas, kad litavimo metu turėtumėte priešais save. Ir dar kartą patikrinkite viską prieš prijungdami prie maitinimo šaltinio.

6 žingsnis: programinė įranga - fonas

„Arduino IDE“

Mes ketiname programuoti „Arduino“su tam skirta programine įranga: „Arduino IDE“. Jei pirmą kartą žaidžiate su „Arduino“, rekomenduoju patikrinti keletą instrukcijų, kaip tai padaryti. Žiniatinklyje jau yra daug pamokų, todėl nesileisiu į detales.

Biblioteka

Aš nusprendžiau naudoti „FastLED“biblioteką, o ne populiarų „Adafruit“. Jis turi keletą tvarkingų matematinių funkcijų, kuriomis galite padaryti puikių efektų (nykščiai kūrėjams!). Biblioteką galite rasti jų „GitHub“saugykloje, bet aš pridėjau savo versijoje naudojamą versijos.zip failą.

Jei jums įdomu, kaip pridėti išorinę biblioteką prie „Arduino IDE“, galite patikrinti kai kurias jau pateiktas instrukcijas

Laikrodžio moduliui aš naudoju „Arduino“biblioteką DS3231 realaus laiko laikrodžiui (RTC) (nuoroda), kurią galite lengvai įdiegti „Arduino IDE“. Kai esate IDE, spustelėkite Eskizas → Įtraukti biblioteką → Tvarkyti bibliotekas … ir filtruokite paiešką naudodami aukščiau esantį pavadinimą.

Pastaba: Dėl kokių nors priežasčių šiuo metu negaliu pridėti.zip failų. Biblioteką galite rasti mano „GitHub“saugykloje.

7 žingsnis: programinė įranga - kodas

Programinė įranga - kodas
Programinė įranga - kodas
Programinė įranga - kodas
Programinė įranga - kodas

Struktūra

Programa sudaryta iš 4 failų:

  • LEDclokc.ino Tai yra pagrindinė „Arduino“programa, kurioje galite rasti viso laikrodžio valdymo funkcijas - jos prasideda priešdėliu CLOCK_.
  • LEDclokc.h čia yra kaiščių jungčių apibrėžimai ir kai kurios laikrodžio konfigūracijos.
  • ring.cpp ir ring.h čia yra mano kodas, skirtas LED žiedams valdyti.

LED laikrodis.h

Čia rasite visus laikrodžio apibrėžimus. Pradžioje yra laidų apibrėžimai. Įsitikinkite, kad jie yra tokie patys kaip jūsų ryšiai. Tada yra laikrodžio konfigūracijos - čia galite rasti laikrodžio režimų skaičiaus makrokomandą.

LEDclock.ino

Diagramoje pavaizduota pagrindinė kilpa. Kodas pirmiausia patikrina, ar paspaudžiamas kuris nors mygtukas. Dėl jungiklių pobūdžio privalome naudoti atšaukimo metodą, kad perskaitytume jų vertes (daugiau apie tai galite perskaityti nuorodoje).

Paspaudus 1 mygtuką, kintamasis režimas pakeliamas 1, jei paspaudžiamas 2 mygtukas, pakeliamas kintamasis tipas. Mes naudojame šiuos kintamuosius, norėdami nustatyti, kurį laikrodžio režimą norime matyti. Jei abu mygtukai paspaudžiami vienu metu, iškviečiama funkcija CLOCK_setTime (), kad galėtumėte pakeisti laikrodžio laiką.

Vėliau kodas nuskaito potenciometro vertę ir išsaugo ją kintamajame - tačiau šis kintamasis vartotojas gali pakeisti laikrodžio spalvas, ryškumą ir pan.

Tada yra perjungimo atvejų pareiškimas. Čia mes nustatome, kokio režimo laikrodis šiuo metu yra, ir tuo režimu vadinama atitinkama funkcija, kuri nustato šviesos diodų spalvas. Galite pridėti savo laikrodžio režimus ir perrašyti arba modifikuoti funkcijas.

Kaip aprašyta „FastLED“bibliotekoje, pabaigoje turite iškviesti funkciją „FastLED.show ()“, kuri šviesos diodus paverčia tokia spalva, kokia mes juos anksčiau nustatėme.

Tarp kodų eilučių galite rasti daug išsamesnių aprašymų

Visas kodas pridedamas žemiau esančiuose failuose.

PATARIMAS: visą projektą galite rasti mano „GitHub“saugykloje. Čia kodas taip pat bus atnaujintas, jei pridėsiu kokių nors pakeitimų.

8 žingsnis: sukurkite laikrodį

Padarykite laikrodį
Padarykite laikrodį
Padarykite laikrodį
Padarykite laikrodį
Padarykite laikrodį
Padarykite laikrodį

Laikrodžio rėmas

Aš pastatiau laikrodžio rėmą naudodami CNC staklę ir 25 mm storio medieną. Eskizą, nupieštą „ProgeCAD“, rasite žemiau. LED žiedo angos yra šiek tiek didesnės, nes gamintojai pateikia tik išorinio skersmens matavimus - vidinis gali labai skirtis … Laikrodžio gale yra daug vietos elektronikai ir laidams.

PVC žiedai

Kadangi šviesos diodai yra gana ryškūs, gerai juos kažkaip išsklaidyti. Pirmiausia išbandžiau permatomą silikoną, kuris atlieka difuzinį darbą, tačiau jis yra gana netvarkingas ir sunku jį išlyginti. Štai kodėl aš užsisakiau 20x20 cm gabalėlį „pieniško“PVC plastiko ir CNC staklėmis išpjoviau jame du žiedus. Norėdami suminkštinti kraštus, galite naudoti švitrinį popierių, kad žiedai slystų į plyšius.

Šoninės skylės

Tada atėjo laikas gręžti skyles mygtukams, potenciometrui ir maitinimo šaltinio jungčiai. Pirmiausia pieškite pieštuku kiekvieną vietą, tada gręžkite skylę. Čia priklauso nuo to, kokio tipo mygtukus turite - aš nuėjau su mygtukais su šiek tiek išlenkta galvute. Jų skersmuo yra 16 mm, todėl naudojau tokio dydžio medinį grąžtą. Tas pats pasakytina apie potenciometrą ir maitinimo jungtį. Po to būtinai ištrinkite visus pieštuko piešinius.

9 žingsnis: pieškite medieną

Pieškite medyje
Pieškite medyje
Pieškite medyje
Pieškite medyje
Pieškite medyje
Pieškite medyje

Nusprendžiau į medieną nupiešti keletą laikrodžio indikatorių - čia galite pasitelkti savo vaizduotę ir susikurti savo. Aš deginau medieną naudodami lituoklį, įkaitintą iki maksimalios temperatūros.

Kad apskritimai būtų gražiai apvalūs, aš panaudojau aliuminio gabalėlį, išgręžiau skylę ir sekiau skylės kraštus lituokliu (žiūrėk į paveikslėlį). Įsitikinkite, kad tvirtai laikote aliuminį, kad piešdami jis neslystų. Ir būkite atsargūs, kad išvengtumėte sužalojimų.

Jei kuriate brėžinius ir norite, kad jie būtų gerai suderinti su laikrodžio pikseliais, galite naudoti „Priežiūros režimą“, kuris parodys, kur bus pikseliai (eikite į skyrių „Surinkimas“).

Apsaugokite medieną

Kai esate patenkintas laikrodžiu, laikas jį nušlifuoti ir apsaugoti mediniu laku. Aš suminkštinau kraštus labai minkštu švitriniu popieriumi (vertė 500). Rekomenduoju naudoti skaidrų medienos laką, todėl medžio spalva nesikeičia. Užtepkite nedidelį lako kiekį ant šepetėlio ir traukite jį vienmečių medžio kryptimi. Pakartokite tai bent 2 kartus.

10 žingsnis: surinkimas

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

Eglės uždeda mygtukus ir potenciometrą į savo vietas - jei jūsų skylės yra per didelės, galite jas pritvirtinti karštais klijais. Tada įkiškite žiedo juostelę į lizdus ir prijunkite laidus prie „Arduino“. Prieš klijuodami LED žiedą į savo vietą, įsitikinkite, kad LED pikseliai yra tinkamoje vietoje - centre ir suderinti su piešiniu. Tuo tikslu aš pridėjau vadinamąjį priežiūros režimą, kuris parodys visus svarbius pikselius (0, 5, 10, 15,… minutės skambėjimo metu ir 3, 6, 9 ir 12 valandos skambėjimo metu). Šį režimą galite įjungti paspausdami ir laikydami nuspaudę abu mygtukus, prieš prijungdami maitinimo šaltinį prie jungties. Iš šio režimo galite išeiti paspausdami bet kurį mygtuką.

Sureguliuodami LED žiedus, užtepkite karštų klijų ir laikykite juos, kol klijai sukietėja. Tada paimkite PVC žiedus ir vėl: ant šviesos diodų užtepkite karštų klijų, greitai juos padėkite ir palaikykite porą sekundžių. Galų gale, kai esate tikri, kad viskas veikia, galite karštai klijuoti lentą (arba „Arduino“) prie medžio. Patarimas: netepkite daug klijų. Tik nedidelis kiekis, todėl jis telpa vienoje vietoje, bet galite lengvai jį pašalinti, jei vėliau norėsite ką nors pakeisti.

Pačioje pabaigoje įdėkite monetų elementų bateriją į laikiklį.

11 veiksmas: atnaujinkite - fotorezistorius

Atnaujinimas - fotorezistorius
Atnaujinimas - fotorezistorius
Atnaujinimas - fotorezistorius
Atnaujinimas - fotorezistorius
Atnaujinimas - fotorezistorius
Atnaujinimas - fotorezistorius

Laikrodžio efektai yra ypač gražūs tamsoje. Tačiau tai gali sutrikdyti jo naudotoją naktį, kol jis ar ji miega. Todėl nusprendžiau atnaujinti laikrodį su automatinio ryškumo koregavimo funkcija - kai patalpoje sutemsta; laikrodis išjungia savo šviesos diodus.

Tam tikslui panaudojau šviesos jutiklį - foto rezistorių. Jo atsparumas žymiai padidės; iki kelių mega omų, kai tamsu, ir jis turės tik kelis šimtus omų, kai ant jo šviečia šviesa. Kartu su įprastu rezistoriumi jie sudaro įtampos daliklį. Taigi, kai keičiasi šviesos jutiklio varža, keičiasi ir „Arduino“analoginio kaiščio įtampa (kurią galime išmatuoti).

Prieš lituojant ir surenkant bet kokią grandinę, protinga pirmiausia ją imituoti, kad galėtumėte pamatyti elgesį ir atlikti pataisymus. „Autocad Tinkercad“pagalba jūs galite tai padaryti! Vos keliais paspaudimais pridėjau komponentus, prijungiau juos ir parašiau kodą. Simuliacijoje galite pamatyti, kaip keičiamas šviesos diodų ryškumas pagal foto rezistoriaus vertę. Tai labai paprasta ir paprasta - kviečiame žaisti su grandine.

Po modeliavimo atėjo laikas pridėti funkciją prie laikrodžio. Aš išgręžiau skylę laikrodžio centre, priklijavau foto rezistorių, prijungiau jį taip, kaip matyti grandinėje, ir pridėjau keletą kodo eilučių. Faile „LEDclock.h“turite įjungti šią funkciją, deklaruodami USE_PHOTO_RESISTOR kaip 1. Taip pat galite pakeisti, kokio kambario ryškumo laikrodis pritemdys šviesos diodus, pakeisdami CLOCK_PHOTO_TRESHOLD reikšmę.

12 žingsnis: Mėgaukitės

Kai pirmą kartą įjungsite maitinimą, laikrodis parodys atsitiktinį laiką. Jį galite nustatyti paspausdami abu mygtukus vienu metu. Pasukdami rankenėlę pasirinkite tinkamą laiką ir patvirtinkite jį paspausdami bet kurį mygtuką.

Įkvėpimo radau labai tvarkingame projekte internete. Jei nuspręsite patys pasistatyti laikrodį, taip pat patikrinkite juos! („NeoClock“, „Wol Clock“, „Arduino“spalvotas laikrodis) Jei kada nors nuspręsite vadovautis instrukcijomis, tikiuosi, kad jums tai patiks taip pat, kaip ir man.

Jei gaminimo procese susidursite su kokiomis nors problemomis, nedvejodami užduokite man bet kokį klausimą komentaruose - mielai bandysiu į jį atsakyti!

Rekomenduojamas: