Sisällysluettelo:
- Vaihe 1: Kuinka lukea se?
- Vaihe 2: Mitä tarvitset
- Vaihe 3: Elektroniikan komponentit - tausta
- Vaihe 4: Elektroniikka - virtalähde
- Vaihe 5: Elektroniikka - juottaminen
- Vaihe 6: Ohjelmisto - Tausta
- Vaihe 7: Ohjelmisto - koodi
- Vaihe 8: Tee kello
- Vaihe 9: Piirrä puuhun
- Vaihe 10: Assamble
- Vaihe 11: Päivitys - Valovastus
- Vaihe 12: Nauti
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tinkercad -projektit »
Pitkän aikaa vain erilaisten projektien tekemisen jälkeen päätin tehdä itse ohjattavan. Ensimmäiseksi opastan sinua prosessissa, jolla voit tehdä oman analogisen kellosi, joka on valmistettu mahtavalla osoitettavalla LED -renkaalla. Sisärengas näyttää tunnit, ulompi rengas minuutit ja sekunnit.
Ajan näyttämisen lisäksi kello voi näyttää myös huoneen lämpötilan ja se voi olla erittäin mukava sisustus huoneessa. Kello tekee myös 15 minuutin välein erikoistehosteita - video näyttää ne kaikki, muista tarkistaa se. Kahden painikkeen ja potentiometrin avulla käyttäjä voi valita eri tilan ja muokattavan värin välillä haluamallaan tavalla. Päivitin sen myös himmentämään LEDit automaattisesti, jos huone pimenee, joten käyttäjää ei häiritä yöllä.
Kello voidaan sijoittaa pöydälle, yöpöydälle tai ripustaa seinälle.
Huomautus: Kuvat eivät ole yhtä hyviä kuin todellinen näkymä suuren kirkkauden vuoksi.
Vaihe 1: Kuinka lukea se?
Kellossa on 2 rengasta - pienempi tuntien näyttämiseen ja isompi minuutit ja sekunnit. Jotkut LED -valot hehkuvat koko ajan - niin sanottu kompassi, joka ilmaisee kellon pääasennot. Tuntirenkaalla se edustaa kelloa 3, 6, 9 ja 12, kello minuutilla 15, 30, 45 ja 0 minuuttia.
Vaihe 2: Mitä tarvitset
Materiaalit:
- 1x Arduino Nano (voit käyttää mitä tahansa muuta Arduinoa)
- 1x DS3231 RealTimeClock -moduuli
- 1x Osoitettava led -rengas - 60 LEDiä
- 1x Osoitettava led -rengas - 24 LEDiä
- 2x painiketta (EI - normaalisti auki)
- 1x 100kOhm potentiometri
- 1x 5V virtalähde (pystyy tuottamaan 1 ampeerin)
- 1x Syöttöliitin
- Jotkut johdot
- 1x 10kOhm vastus
- 1x valovastus
- Esilevy (valinnainen)
- Riviliittimen johdon liittimet (valinnainen)
- 25 mm paksu puu, koko vähintään 22 cm x 22 cm
- 1mm ohut matto PVC -muovikoko 20cmx20xm
Työkalut:
- Perustyökalut elektroniikan rakentamiseen (juotin, pihdit, ruuvimeisseli jne.)
- Porakone
- Kuuma liimapistooli
- Hiekkapaperia ja hiukan puulakkaa
- CNC -kone (ehkä jollain ystävällä on se)
Vaihe 3: Elektroniikan komponentit - tausta
DS3231
Voisimme määrittää ajan käyttämällä Arduinosin sisäänrakennettua oskillaattoria ja ajastinta, mutta päätin käyttää omaa reaaliaikaisen kellon (RTC) moduulia, joka voi seurata aikaa, vaikka irrottaisimme kellon sen virtalähteestä. DS3231 -kortissa on akku, joka antaa virtaa, kun moduulia ei ole kytketty virtalähteeseen. Se on myös tarkempi pidemmillä ajanjaksoilla kuin Arduinos -kellolähde.
DS3231 RTC käyttää I2C-liitäntää kommunikoidakseen mikro-ohjaimen kanssa-erittäin helppokäyttöinen ja tarvitsemme vain 2 johtoa kommunikoidaksemme sen kanssa. Moduuli tarjoaa myös lämpötila -anturin, jota käytetään tässä projektissa.
Tärkeää: Jos aiot käyttää ei-ladattavaa akkua RTC-moduulissa, sinun on poistettava juotos 200 ohmin vastuksesta tai 1N4148-diodista. Muuten akku saattaa räjähtää. Lisätietoja löytyy tästä linkistä.
WS2812 LED -rengas
Päätin käyttää 60 LED -rengasta seuratakseni minuutteja ja 24 LED -rengasta tuntikausia. Löydät ne Adafruitista (neoPixel -rengas) tai joistakin halvoista versioista eBayssa, Aliexpressissä tai muissa verkkokaupoissa. Osoitettavien led -nauhojen välillä on suuri monimuotoisuus, ja jos pelaat niiden kanssa ensimmäistä kertaa, suosittelen lukemaan joitain käyttökuvauksia - tässä on joitain hyödyllisiä linkkejä:
https://www.tweaking4all.com/hardware/arduino/adr…
https://randomnerdtutorials.com/guide-for-ws2812b…
Osoitetussa LED -nauhassa on 3 liitintä: 5V, GND ja DI/DO. Kaksi ensimmäistä on tarkoitettu LED -virtalähteiden syöttämiseen, viimeinen dataan. Ole varovainen liittäessäsi rengasta Arduinoon - tietolinjasi on liitettävä DI (data IN) -nastaan.
Arduino
Käytän Arduino Nanoa, koska se on pieni ja riittävä tähän projektiin. Voit käyttää melkein mitä tahansa muuta Arduinoa, mutta sinun on oltava varovainen liittäessäsi kaiken siihen. Painikkeet ja LED -renkaat voivat olla samoissa nastoissa, mutta I2C -liittimet (RTC -moduulille) voivat vaihdella käyttöympäristöstä toiseen - katso niiden tietolomake.
Vaihe 4: Elektroniikka - virtalähde
Sekä Arduino että LED -nauha on toimitettava 5 V: n virtalähteellä, jotta tiedämme tarvittavan jännitteen. Koska LED -renkaat soittavat, se vetää melko paljon vahvistimia, emme voi käyttää sitä suoraan Arduinolla, joka kestää enintään 20 mA digitaalilähdössä. Mittauksillani LED -renkaat voivat yhdessä ottaa jopa 500 mA. Siksi ostin sovittimen, joka pystyy syöttämään jopa 1A.
Haluamme käyttää Arduinoa ja LED -valoja samalla virtalähteellä - tässä sinun on oltava varovainen.
Varoitus! Ole erityisen varovainen, kun testaat LED -nauhaa - virtalähdettä EI saa kytkeä Arduinoon, kun Arduino on myös liitetty tietokoneeseen USB -liittimellä (voit vahingoittaa tietokoneen USB -porttia).
Huomautus: Alla olevissa kaavioissa valitsin normaalikytkimen valitakseni, onko Arduino virtalähteenä virtalähteen vai USB -liitännän kautta. Mutta perfboardista näet, että lisäsin nastan otsikon valitaksesi, mistä virtalähteestä Arduino saa virtaa.
Vaihe 5: Elektroniikka - juottaminen
Kun keräät kaikki osat, on aika juottaa ne yhteen.
Koska halusin saada johdot siistiksi, käytin johtoja varten perfboardia ja jotakin riviliittimen liitintä, joten voin irrottaa ne pistorasiasta muutosten sattuessa. Tämä on valinnaista - voit myös juottaa johdot suoraan Arduinolle.
Vinkki: on helpompaa, jos tulostat kaaviot niin, että sinulla on se edessäsi juottamisen aikana. Ja tarkista kaikki ennen virtalähteen liittämistä.
Vaihe 6: Ohjelmisto - Tausta
Arduino IDE
Aiomme ohjelmoida Arduinon omalla ohjelmistollaan: Arduino IDE. Jos pelaat Arduinolla ensimmäistä kertaa, suosittelen, että tarkistat ohjeet siitä, miten se tehdään. Verkossa on jo paljon opetusohjelmia, joten en mene yksityiskohtiin.
Kirjasto
Päätin käyttää FastLED -kirjastoa suositun Adafruitin sijaan. Siinä on hienoja matemaattisia toimintoja, joilla voit tehdä upeita tehosteita (peukkua kehittäjille!). Löydät kirjaston heidän GitHub -arkistostaan, mutta lisäsin koodini käyttämäni version.zip -tiedoston.
Jos mietit, kuinka lisätä ulkoinen kirjasto Arduino IDE: hen, voit tarkistaa jo tehdyt ohjeet
Kellomoduulissa käytin Arduino-kirjastoa DS3231-reaaliaikaiseen kelloon (RTC) (linkki), jonka voit helposti asentaa Arduino IDE: hen. Kun olet IDE: ssä, napsauta Luonnos → Sisällytä kirjasto → Hallitse kirjastoja… ja suodata sitten haku edellä mainitulla nimellä.
Huomautus: Jostain syystä en voi tällä hetkellä lisätä.zip -tiedostoja. Löydät kirjaston GitHub -arkistostani.
Vaihe 7: Ohjelmisto - koodi
Rakenne
Sovellus koostuu neljästä tiedostosta:
- LEDclokc.ino Tämä on tärkein Arduino -sovellus, josta löydät toimintoja koko kellon ohjaamiseen - ne alkavat etuliitteellä CLOCK_.
- LEDclokc.h tässä ovat nastaliitännän määritelmiä ja joitain kellon kokoonpanoja.
- ring.cpp ja ring.h tässä on koodini LED -renkaiden ohjaamiseen.
LED -kello. H
Täältä löydät kaikki kellon määritelmät. Alussa on johdotuksen määritelmät. Varmista, että ne ovat samat kuin yhteytesi. Sitten on kellon kokoonpanot - täältä löydät makron useille tiloille, jotka kellolla on.
LEDclock.ino
Kaaviossa pääsilmukka on esitetty. Koodi tarkistaa ensin, onko jotain painiketta painettu. Kytkimien luonteen vuoksi meidän on käytettävä debbouning -menetelmää niiden arvojen lukemiseen (voit lukea lisää tästä linkistä).
Kun painiketta 1 painetaan, muuttuva tila korotetaan yhdellä, jos painiketta 2 painetaan, muuttujan tyyppi nousee. Käytämme näitä muuttujia määrittääksemme, minkä kellotilan haluamme nähdä. Jos molempia painikkeita painetaan samanaikaisesti, toiminto CLOCK_setTime () kutsutaan, jotta voit muuttaa kellonaikaa.
Myöhemmin koodi lukee potentiometrin arvon ja tallentaa sen muuttujaan - tämä muuttujan käyttäjä voi kuitenkin muuttaa kellon värejä, kirkkautta jne.
Sitten on kytkentätapauslausunto. Tässä määritämme, missä tilassa kello on tällä hetkellä, ja kyseisessä tilassa kutsutaan vastaavaa toimintoa, joka asettaa LEDien värit. Voit lisätä omia kellotilaa ja kirjoittaa tai muokata toimintoja uudelleen.
Kuten FastLED -kirjastossa on kuvattu, sinun on kutsuttava toiminto FastLED.show () loppuun, joka muuttaa LEDit sen väriseksi, jonka olemme aiemmin asettaneet.
Löydät paljon yksityiskohtaisempia kuvauksia koodirivien välistä
Koko koodi on liitteenä alla olevissa tiedostoissa.
VINKKI: koko projekti löytyy GitHub -arkistostani. Täällä myös koodi päivitetään, jos lisään siihen muutoksia.
Vaihe 8: Tee kello
Kellokehys
Rakensin kellokehyksen CNC -koneella ja 25 mm paksuisella puulla. Löydät ProgeCADissa piirretyn luonnoksen alla. LED -rengaspaikat ovat hieman suurempia, koska valmistajat antavat vain ulkohalkaisijan mitat - sisäiset voivat vaihdella melko paljon … Kellon takana on paljon tilaa elektroniikalle ja johtimille.
PVC -renkaat
Koska LEDit ovat melko kirkkaita, on hyvä hajauttaa ne jotenkin. Kokeilin ensin läpinäkyvää silikonia, joka hajottaa, mutta se on melko sotkuista ja sitä on vaikea saada sileäksi. Siksi tilasin 20x20 cm palan "maito" PVC -muovia ja leikkasin siihen kaksi rengasta CNC -koneella. Voit pehmentää reunoja hiekkapaperilla, jotta renkaat liukuvat rakoihin.
Sivureiät
Sitten on aika porata reiät painikkeille, potentiometrille ja virtalähteen liittimelle. Piirrä ensin jokainen kohta lyijykynällä ja poraa sitten reikään. Tässä riippuu siitä, millaisia painikkeita sinulla on - käytin painikkeita, joiden pää oli hieman kaareva. Niiden halkaisija on 16 mm, joten käytin samankokoista puuporaa. Sama koskee potentiometriä ja virtaliitintä. Muista poistaa kaikki lyijykynäpiirrokset sen jälkeen.
Vaihe 9: Piirrä puuhun
Päätin piirtää puuhun kellon osoittimia - täällä voit käyttää mielikuvitustasi ja suunnitella oman. Poltin puun juotosraudalla, joka oli lämmitetty maksimilämpötilaan.
Jotta ympyrät olisivat kauniisti pyöreitä, käytin alumiinikappaletta, porasin siihen reiän ja seurasin reiän reunoja juotosraudalla (katso kuvaa). Varmista, että pidät alumiinia tukevasti, jotta se ei luista piirtämisen aikana. Ja ole varovainen, kun teet sen välttääksesi vammoja.
Jos teet piirustuksia ja haluat, että ne on asetettu kauniisti kellopikselien kohdalle, voit käyttää ylläpitotilaa, joka näyttää pikselien sijainnin (siirry lukuun Kokoaminen).
Suojaa puuta
Kun olet tyytyväinen kelloon, on aika hioa se ja suojata se puulakalla. Pehmennin reunoja erittäin pehmeällä hiekkapaperilla (arvo 500). Suosittelen käyttämään läpinäkyvää puulakkaa, joten puun väri ei muutu. Laita harjaan pieni määrä lakkaa ja vedä sitä puun yksivuotisten kasvien suuntaan. Toista se vähintään 2 kertaa.
Vaihe 10: Assamble
Kuusi asettaa painikkeet ja potentiometrin paikoilleen - jos reiät ovat liian suuria, voit kiinnittää ne paikalleen kuumalla liimalla. Aseta sitten rengasliuska aukkoihinsa ja liitä sen johdot Arduinoon. Ennen kuin liität LED -renkaan paikalleen, on hyvä olla varma, että LED -pikselit ovat oikeassa paikassa - keskellä ja linjassa piirustuksen kanssa. Tätä tarkoitusta varten lisäsin ns. Ylläpitotilan, joka näyttää kaikki tärkeät pikselit (0, 5, 10, 15,… minuutin soittoäänellä ja 3, 6, 9 ja 12 tunnin soitolla). Voit siirtyä tähän tilaan painamalla ja pitämällä painettuna molempia painikkeita, ennen kuin liität virtalähteen liittimeen. Voit poistua tästä tilasta painamalla mitä tahansa painiketta.
Kun olet asettanut LED -renkaat kohdalleen, levitä kuumaa liimaa ja pidä niitä kiinni, kun liima kiinteytyy. Ota sitten PVC -renkaat ja uudelleen: levitä kuumaa liimaa LED -valoihin, aseta ne nopeasti ja pidä niitä muutaman sekunnin ajan. Lopuksi, kun olet varma, että kaikki toimii, voit liimata levyn (tai Arduinon) kuumalla liimalla puuhun. Vinkki: älä käytä liimaa. Vain pieni määrä, joten se mahtuu yhteen paikkaan, mutta voit helposti poistaa sen, jos haluat muuttaa jotain myöhemmin.
Aseta nappiparisto pidikkeeseen aivan lopussa.
Vaihe 11: Päivitys - Valovastus
Kellotehosteet ovat erityisen hyviä pimeässä. Mutta tämä voi häiritä käyttäjää yön aikana hänen nukkuessaan. Siksi päätin päivittää kellon automaattisella kirkkauden korjauksella - kun huone pimenee; kello sammuttaa LEDit.
Tätä tarkoitusta varten käytin valoanturia - valokuvavastusta. Sen vastus kasvaa merkittävästi; jopa muutama megaohmia, kun on pimeää, ja siinä on vain muutama sata ohmia, kun siihen paistaa valo. Yhdessä normaalin vastuksen kanssa ne muodostavat jännitteenjakajan. Joten kun valoanturin vastus muuttuu, niin myös Arduinon analogisen nastan jännite (jota voimme mitata).
Ennen minkään piirin juottamista ja kokoamista on viisasta simuloida se ensin, jotta voit nähdä käyttäytymisen ja tehdä korjauksia. Autocad Tinkercadin avulla voit tehdä juuri sen! Lisäsin komponentit, liitin ne ja kirjoitin koodin muutamalla napsautuksella. Simulaatiossa näet, miten LED -valojen kirkkaus muuttuu valokuvavastan arvon mukaan. Se on hyvin yksinkertaista ja suoraviivaista - olet tervetullut pelaamaan piirillä.
Simulaation jälkeen oli aika lisätä ominaisuus kelloon. Porasin reiän kellon keskelle, liimasin valokuvavastuksen, liitin sen kuten piirissä näkyy ja lisäsin muutaman koodirivin. Tiedostossa LEDclock.h sinun on otettava tämä ominaisuus käyttöön ilmoittamalla USE_PHOTO_RESISTOR arvoksi 1. Voit myös muuttaa kellon himmennettävän huoneen kirkkautta muuttamalla CLOCK_PHOTO_TRESHOLD -arvoa.
Vaihe 12: Nauti
Kun kytket virran ensimmäistä kertaa, kello näyttää satunnaista aikaa. Voit asettaa sen painamalla molempia painikkeita samanaikaisesti. Valitse oikea aika kääntämällä nuppia ja vahvista se painamalla mitä tahansa painiketta.
Löysin inspiraatiota eräästä erittäin siististä projektista Internetistä. Jos päätät rakentaa kellon itse, tutustu myös niihin! (NeoClock, Wol Clock, Arduino Colorful Clock) Jos päätät yrittää noudattaa ohjeita, toivon sinun tekevän siitä yhtä nautinnollisen kuin minä.
Jos törmäät ongelmaan valmistusprosessin aikana, voit vapaasti kysyä minulta kysymyksiä kommenteissa - yritän mielelläni vastata siihen!