LEDura - analoog -LED -kell: 12 sammu (piltidega)
LEDura - analoog -LED -kell: 12 sammu (piltidega)
Anonim
LEDura - analoog -LED -kell
LEDura - analoog -LED -kell
LEDura - analoog -LED -kell
LEDura - analoog -LED -kell
LEDura - analoog -LED -kell
LEDura - analoog -LED -kell

Tinkercadi projektid »

Pärast pikka aega lihtsalt erinevate projektide tegemist otsustasin teha juhendatava ise. Esimese jaoks juhendan teid suurepärase adresseeritava LED -rõngaga analoogkella valmistamise protsessis. Sisemine rõngas näitab tunde, välisrõngas näitab minuteid ja sekundeid.

Lisaks kellaajale võib kell kuvada ka toatemperatuuri ja see võib olla ruumi väga ilus kaunistus. Iga 15 minuti järel teeb kell ka eriefekte - video näitab neid kõiki, vaadake kindlasti. Kahe nupu ja potentsiomeetri abil saab kasutaja oma soovi järgi valida erinevate režiimide ja muudetavate värvide vahel. Samuti täiendasin seda, et LED -tuled automaatselt hämarduksid, kui ruum läheb pimedaks, nii et kasutajat ei segata öösel.

Kella saab panna lauale, voodilauale või seinale riputada.

Märkus. Pildid ei ole suure heleduse tõttu nii head kui vaade tegelikkuses.

Samm: kuidas seda lugeda?

Kuidas seda lugeda?
Kuidas seda lugeda?

Kellal on 2 rõngast - väiksem tundide kuvamiseks ja suurem minutite ja sekundite kuvamiseks. Mõned LED -id helendavad kogu aeg - nn kompass, mis näitab kella põhiasendeid. Tunnirõngal tähistab see kella 3, 6, 9 ja 12 ', minutirõngal 15, 30, 45 ja 0 minutit.

2. samm: mida vajate

Mida vajate?
Mida vajate?

Materjalid:

  • 1x Arduino Nano (saate kasutada ka mis tahes muud Arduino)
  • 1x DS3231 RealTimeClock moodul
  • 1x adresseeritav LED -rõngas - 60 LED -i
  • 1x adresseeritav LED -rõngas - 24 LED -i
  • 2x nuppu (EI - tavaliselt avatud)
  • 1x 100kOhm potentsiomeeter
  • 1x 5V toiteallikas (võimeline tarnima 1 amprit)
  • 1x toitepistik
  • Mõned juhtmed
  • 1x 10kOhm takisti
  • 1x fototakisti
  • Eellaud (valikuline)
  • Klemmiploki juhtmete pistikud (valikuline)
  • 25 mm paksune puit, suurus vähemalt 22 cm x 22 cm
  • 1mm õhuke matt PVC plastikust suurus 20cmx20xm

Tööriistad:

  • Põhilised tööriistad elektroonika ehitamiseks (jootekolb, tangid, kruvikeeraja jne)
  • Puurmasin
  • Kuum liimipüstol
  • Liivapaber ja mõni puitlakk
  • CNC -masin (võib -olla on mõnel sõbral see olemas)

3. samm: elektroonikakomponendid - taust

Elektroonikakomponendid - taust
Elektroonikakomponendid - taust
Elektroonikakomponendid - taust
Elektroonikakomponendid - taust
Elektroonikakomponendid - taust
Elektroonikakomponendid - taust

DS3231

Aega saaksime määrata Arduinose sisseehitatud ostsillaatori ja taimeriga, kuid otsustasin kasutada spetsiaalset reaalajas kella (RTC) moodulit, mis suudab aega jälgida isegi siis, kui kella toiteallikast lahti ühendame. DS3231 plaadil on aku, mis annab voolu, kui moodul pole vooluvõrku ühendatud. Samuti on see pikema aja jooksul täpsem kui Arduinose kellaallikas.

DS3231 RTC kasutab mikrokontrolleriga suhtlemiseks I2C liidest-väga lihtne kasutada ja sellega suhtlemiseks vajame ainult 2 juhtmest. Moodul pakub ka temperatuuriandurit, mida selles projektis kasutatakse.

Tähtis: kui kavatsete RTC-mooduli jaoks kasutada mittelaetavat akut, peaksite 200 oomi takisti või 1N4148 dioodi jootma. Vastasel juhul võib aku õhku lasta. Lisateavet leiate sellelt lingilt.

WS2812 LED -rõngas

Otsustasin kasutada 60 LED -rõngast minutite jälgimiseks ja 24 LED -rõngast tundideks. Leiate need Adafruitist (neoPixeli sõrmus) või mõnest odavast versioonist eBays, Aliexpressis või muudes veebipoodides. Aadressitavate LED -ribade vahel on suur mitmekesisus ja kui mängite nendega esimest korda, soovitan teil mõned kasutuskirjeldused läbi lugeda - siin on mõned kasulikud lingid:

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

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

Aadressitaval LED -ribal on 3 pistikut: 5V, GND ja DI/DO. Esimesed kaks on mõeldud LED -ide toiteks, viimane on andmete jaoks. Olge rõnga ühendamisel Arduinoga ettevaatlik - teie andmeside peab olema ühendatud DI (data IN) tihvtiga.

Arduino

Ma kasutan Arduino Nano, kuna see on selle projekti jaoks piisavalt väike ja piisav. Saate kasutada peaaegu kõiki teisi Arduino, kuid siis peate olema sellega ühendamisel ettevaatlik. Nupud ja LED -rõngad võivad olla samadel tihvtidel, kuid I2C -pistikud (RTC -mooduli jaoks) võivad platvormiti erineda - vaadake nende andmelehte.

4. samm: elektroonika - toiteallikas

Elektroonika - toiteallikas
Elektroonika - toiteallikas

Arduino ja LED -riba peavad mõlemad olema varustatud 5 V toiteallikaga, et saaksime teada, millist pinget vaja on. Kuna LED heliseb, tõmbab see üsna palju võimendit, ei saa me seda otse Arduino abil toita, mis talub oma digitaalse väljundi puhul maksimaalselt 20 mA. Minu mõõtmiste järgi võivad LED -rõngad kokku võtta kuni 500 mA. Sellepärast ostsin adapteri, mis suudab toita kuni 1A.

Sama toiteallikaga tahame toita Arduino ja LED -e - siin peate olema ettevaatlik.

Hoiatus! Olge LED -riba testimisel eriti ettevaatlik - toiteadapterit EI tohi ühendada Arduinoga, kui Arduino on ühendatud ka USB -pistikuga arvutiga (võite arvuti USB -porti kahjustada).

Märkus. Alltoodud skeemidel kasutasin tavalist lülitit, et valida, kas Arduino saab toite toiteallika või USB -pistiku kaudu. Kuid parfüüril näete, et lisasin tihvti päise, et valida, millisest toiteallikast Arduino saab toite.

Samm: elektroonika - jootmine

Elektroonika - jootmine
Elektroonika - jootmine
Elektroonika - jootmine
Elektroonika - jootmine
Elektroonika - jootmine
Elektroonika - jootmine
Elektroonika - jootmine
Elektroonika - jootmine

Kui olete kõik osad kokku kogunud, on aeg need kokku joota.

Kuna ma tahtsin juhtmestiku puhtaks teha, kasutasin juhtmete jaoks perfboardi ja mõnda klemmliistude pistikut, nii et saan muudatuste korral need vooluvõrgust lahti ühendada. See on valikuline - võite ka juhtmeid jootma otse Arduino juurde.

Näpunäide: skeeme on lihtsam printida, nii et jootmise ajal oleks see teie ees. Ja kontrollige kõike enne toiteallikaga ühendamist.

6. samm: tarkvara - taust

Arduino IDE

Programmeerime Arduinot selle spetsiaalse tarkvaraga: Arduino IDE. Kui mängite Arduinoga esimest korda, soovitan teil tutvuda mõne juhendiga, kuidas seda teha. Veebis on juba palju õpetusi, nii et ma ei lähe üksikasjadesse.

Raamatukogu

Otsustasin kasutada populaarse Adafruit'i asemel FastLED -i raamatukogu. Sellel on mõned korralikud matemaatikafunktsioonid, mille abil saate suurepäraseid efekte teha (pöidlad arendajatele!). Teeki leiate nende GitHubi hoidlast, kuid lisasin oma koodis kasutatava versiooni.zip -faili.

Kui te ei tea, kuidas Arduino IDE -sse välist raamatukogu lisada, saate vaadata mõningaid juba tehtud juhiseid

Kella mooduli jaoks kasutasin DS3231 reaalajas kella (RTC) jaoks Arduino raamatukogu (link), mille saate hõlpsasti Arduino IDE-sse installida. Kui olete IDE -s, klõpsake visandit → Kaasa raamatukogu → Teekide haldamine… ja seejärel filtreerige oma otsing ülaltoodud nimega.

Märkus. Mingil põhjusel ei saa ma praegu.zip -faile lisada. Raamatukogu leiate minu GitHubi hoidlast.

Samm 7: Tarkvara - kood

Tarkvara - kood
Tarkvara - kood
Tarkvara - kood
Tarkvara - kood

Struktuur

Rakendus koosneb neljast failist:

  • LEDclokc.ino See on peamine Arduino rakendus, kust leiate funktsioone kogu kella juhtimiseks - need algavad eesliitega CLOCK_.
  • LEDclokc.h siin on tihvtiühenduse määratlused ja mõned kella konfiguratsioonid.
  • ring.cpp ja ring.h siin on minu kood LED -rõngaste juhtimiseks.

LED kell.h

Siit leiate kõik kellade määratlused. Alguses on juhtmestiku määratlused. Veenduge, et need oleksid samad, mis teie ühendused. Siis on kella konfiguratsioonid - siit leiate kella režiimide arvu makro.

LEDclock.ino

Diagrammil on kujutatud põhiahel. Kood kontrollib kõigepealt, kas mõnda nuppu on vajutatud. Lülitite olemuse tõttu peame nende väärtuste lugemiseks kasutama tühistamismeetodit (selle kohta saate lisateavet lingilt).

Kui vajutate nuppu 1, tõstetakse muutuvat režiimi 1 võrra, kui vajutatakse nuppu 2, tõstetakse muutuja tüüpi. Kasutame neid muutujaid, et määrata, millist kellarežiimi me näha tahame. Kui mõlemat nuppu korraga vajutada, kutsutakse funktsioon CLOCK_setTime (), et saaksite kellaaega muuta.

Hilisem kood loeb potentsiomeetri väärtuse ja salvestab selle muutujaks - see muutuja kasutaja saab muuta kella värve, heledust jne.

Siis on lülitusjuhtumi avaldus. Siin määrame, millises režiimis kell on praegu, ja selle režiimi järgi kutsutakse vastav funktsioon, mis määrab LED -ide värvid. Saate lisada oma kellarežiime ja funktsioone ümber kirjutada või muuta.

Nagu FastLED -raamatukogus kirjeldatud, peate lõpus helistama funktsioonile FastLED.show (), mis muudab LED -id värviks, milleks need varem seadsime.

Koodiridade vahelt leiate palju üksikasjalikumaid kirjeldusi

Kogu kood on lisatud allpool olevatesse failidesse.

NÕUANNE: kogu projekti leiate minu GitHubi hoidlast. Siin uuendatakse ka koodi, kui lisan sellele muudatusi.

Samm: valmistage kell

Tehke kell
Tehke kell
Tehke kell
Tehke kell
Tehke kell
Tehke kell

Kella raam

Ehitasin kellaraami CNC -masina ja 25 mm paksuse puidu abil. ProgeCADis joonistatud eskiisi leiate allpool. LED -rõnga pesad on pisut suuremad, sest tootjad pakuvad ainult välisläbimõõdu mõõtmisi - sisemine võib varieeruda üsna palju … Kella tagaküljel on palju ruumi elektroonikale ja juhtmetele.

PVC rõngad

Kuna LED -id on üsna heledad, on hea neid kuidagi hajutada. Kõigepealt proovisin läbipaistva silikooniga, mis teeb hajutamist, kuid see on üsna räpane ja seda on raske pealt siledaks saada. Seetõttu tellisin 20x20 cm tüki “piima” PVC -plastikut ja lõikasin sinna CNC -masinaga kaks rõngast. Servade pehmendamiseks võite kasutada liivapaberit, nii et rõngad libisevad piludesse.

Külgmised augud

Siis on aeg puurida augud nuppude, potentsiomeetri ja toitepistiku jaoks. Esiteks joonistage pliiatsiga iga asend, seejärel puurige auk. Siin sõltub sellest, mis tüüpi nupud teil on - ma läksin kergelt kumera peaga nuppudega. Nende läbimõõt on 16 mm, seega kasutasin selle suurusega puidutrelli. Sama kehtib potentsiomeetri ja toitepistiku kohta. Kindlasti kustutage hiljem kõik pliiatsijoonistused.

9. samm: joonistage puitu

Joonista puusse
Joonista puusse
Joonista puusse
Joonista puusse
Joonista puusse
Joonista puusse

Otsustasin puusse joonistada mõned kellaindikaatorid - siin saate kasutada oma kujutlusvõimet ja kujundada oma. Põletasin puidu jootekolvi abil, kuumutades maksimaalsele temperatuurile.

Et ringid oleksid kenasti ümarad, kasutasin alumiiniumitükki, puurisin sisse augu ja järgisin jootekolviga augu servi (vaata pilti). Veenduge, et hoiate alumiiniumi kindlalt kinni, nii et see ei libiseks joonistamise ajal. Ja olge vigastuste vältimiseks ettevaatlik.

Kui teete jooniseid ja soovite, et need oleksid kenasti kellapikslitega joondatud, võite kasutada hooldusrežiimi, mis näitab pikslite asukohta (vt peatükki Kokkupanek).

Kaitske puitu

Kui olete kellaga rahul, on aeg see lihvida ja puitlakiga kaitsta. Servade pehmendamiseks kasutasin väga pehmet liivapaberit (väärtus 500). Soovitan kasutada läbipaistvat puitlakki, nii et puidu värv ei muutu. Pange harjale väike kogus lakki ja tõmmake see puidu üheaastaste taimede suunas. Korrake seda vähemalt 2 korda.

Samm 10: Assamble

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

Kuused panevad nupud ja potentsiomeetri oma kohale - kui teie augud on liiga suured, võite nende kinnitamiseks kasutada kuuma liimi. Seejärel pange rõngasriba oma piludesse ja ühendage selle juhtmed Arduinoga. Enne LED -rõnga oma kohale liimimist on hea olla kindel, et LED -pikslid on õiges kohas - tsentreeritud ja joonisega joondatud. Sel eesmärgil lisasin nn hooldusrežiimi, mis kuvab kõik olulised pikslid (0, 5, 10, 15,… minutilise helina ajal ja 3, 6, 9 ja 12 tunnis). Sellesse režiimi saate siseneda, vajutades ja all hoides mõlemat nuppu, enne kui ühendate toiteploki pistikuga. Sellest režiimist saate väljuda, vajutades mis tahes nuppu.

Kui olete oma LED -rõngad joondanud, kandke kuuma liimi ja hoidke neid, kuni liim muutub tugevaks. Seejärel võtke PVC -rõngad ja uuesti: kandke valgusdioodidele kuuma liimi, asetage need kiiresti ja hoidke neid paar sekundit. Lõppkokkuvõttes, kui olete kindel, et kõik töötab, saate tahvli (või Arduino) kuumalt liimida puidule. Näpunäide: ärge kandke palju liimi. Ainult väike kogus, nii et see mahub ühte kohta, kuid saate selle hõlpsalt eemaldada, kui soovite hiljem midagi muuta.

Sisestage otsas mündipatarei hoidikusse.

11. samm: täiendamine - fototakisti

Uuendamine - fototakisti
Uuendamine - fototakisti
Uuendamine - fototakisti
Uuendamine - fototakisti
Uuendamine - fototakisti
Uuendamine - fototakisti

Kellaefektid on eriti mõnusad pimedas. Kuid see võib häirida selle kasutajat öösel, kui ta magab. Seetõttu otsustasin kella täiendada automaatse heleduse korrigeerimise funktsiooniga - kui ruum läheb pimedaks; kell lülitab oma LED -id välja.

Selleks kasutasin valgusandurit - fototakisti. Selle vastupidavus suureneb märkimisväärselt; kuni paar mega oomi pimedas ja sellel on vaid paarsada oomi, kui sellel paistab valgus. Koos tavalise takistiga moodustavad nad pingejaguri. Nii et kui valgusanduri takistus muutub, muutub ka Arduino analoogpistiku pinge (mida saame mõõta).

Enne mis tahes vooluahela jootmist ja kokkupanekut on mõistlik see kõigepealt simuleerida, nii et saate näha käitumist ja teha parandusi. Autocad Tinkercadi abiga saate seda täpselt teha! Vaid mõne klõpsuga lisasin komponendid, ühendasin need ja kirjutasin koodi. Simulatsioonis näete, kuidas valgusdioodide heledust muudetakse vastavalt fototakisti väärtusele. See on väga lihtne ja otsekohene - olete oodatud ringiga mängima.

Pärast simulatsiooni oli aeg funktsioon kellale lisada. Puurisin kella keskele augu, liimisin fototakisti, ühendasin selle nii, nagu vooluringil näha, ja lisasin paar rida koodi. Failis LEDclock.h peate selle funktsiooni lubama, kuulutades USE_PHOTO_RESISTOR väärtuseks 1. Samuti saate muuta CLOCK_PHOTO_TRESHOLD väärtust muutes, millise ruumi heleduse juures kell LED -tulesid summutab.

12. samm: nautige

Kui lülitate selle esmakordselt sisse, näitab kell juhuslikku aega. Saate selle seadistada, vajutades mõlemat nuppu korraga. Keerake nuppu, et valida õige aeg ja kinnitage see mis tahes nupuvajutusega.

Internetist leidsin inspiratsiooni mõnest väga korralikust projektist. Kui otsustate kella ise ehitada, vaadake ka neid! (NeoClock, Wol Clock, Arduino Colorful Clock) Kui otsustate kunagi järgida juhiseid, loodan, et leiate selle sama nauditava kui mina.

Kui satute selle valmistamise käigus mõnele probleemile, esitage mulle kommentaarides mis tahes küsimus - proovin sellele hea meelega vastata!