Innholdsfortegnelse:

LEDura - Analog LED -klokke: 12 trinn (med bilder)
LEDura - Analog LED -klokke: 12 trinn (med bilder)

Video: LEDura - Analog LED -klokke: 12 trinn (med bilder)

Video: LEDura - Analog LED -klokke: 12 trinn (med bilder)
Video: LEDura (Demonstration) : LED clock using Arduino and addressable LED ring 2024, November
Anonim
LEDura - Analog LED -klokke
LEDura - Analog LED -klokke
LEDura - Analog LED -klokke
LEDura - Analog LED -klokke
LEDura - Analog LED -klokke
LEDura - Analog LED -klokke

Tinkercad -prosjekter »

Etter lang tid med bare å lage forskjellige prosjekter bestemte jeg meg for å lage en instruerbar selv. For den første vil jeg guide deg gjennom prosessen med å lage din egen analoge klokke laget med fantastisk adresserbar LED -ring. Den indre ringen viser timene, den ytre ringen viser minutter og sekunder.

Ved siden av å vise klokken, kan klokken også vise romtemperaturen, og det kan være en veldig fin dekorasjon i rommet. Hvert 15. minutt gir klokken også noen spesialeffekter - video viser dem alle, sørg for å sjekke det ut. Ved hjelp av 2 knapper og potensiometer kan brukeren velge mellom forskjellige moduser og modifisere farger etter eget ønske. Jeg oppgraderte den også til automatisk å dempe lysdiodene hvis rommet blir mørkt, slik at brukeren ikke blir forstyrret om natten.

Klokken kan plasseres på skrivebordet, sengebordet eller henges fra veggen.

Merk: Bilder er ikke like gode som utsikten i virkeligheten på grunn av høy lysstyrke.

Trinn 1: Hvordan lese den?

Hvordan lese den?
Hvordan lese den?

Klokken har 2 ringer - mindre for visning av timer og større for visning av minutter og sekunder. Noen lysdioder lyser hele tiden - et såkalt kompass som angir hovedklokkeposisjoner. På timering representerer den 3, 6, 9 og 12'o klokke, på minuttring representerer den 15, 30, 45 og 0 minutter.

Trinn 2: Hva trenger du

Hva trenger du
Hva trenger du

Materialer:

  • 1x Arduino Nano (du kan også bruke hvilken som helst annen Arduino)
  • 1x DS3231 RealTimeClock -modul
  • 1x adresserbar ledring - 60 lysdioder
  • 1x adresserbar ledring - 24 lysdioder
  • 2x knapper (NEI - normalt åpent)
  • 1x 100kOhm potensiometer
  • 1x 5V strømforsyning (i stand til å levere 1 ampere)
  • 1x forsyningskontakt
  • Noen ledninger
  • 1x 10kOhm motstand
  • 1x fotoresistor
  • Prefboard (valgfritt)
  • Koblinger til kabelblokker (valgfritt)
  • 25 mm tykt tre, størrelse minst 22 cm x 22 cm
  • 1 mm tynn matte PVC -plast størrelse 20cmx20xm

Verktøy:

  • Grunnleggende verktøy for å bygge elektronikk (loddejern, tang, skrutrekker, …)
  • Boremaskin
  • Varm limpistol
  • Sandpapir og litt trelakk
  • CNC -maskin (kanskje en venn har det)

Trinn 3: Elektronikkomponenter - Bakgrunn

Elektronikkomponenter - Bakgrunn
Elektronikkomponenter - Bakgrunn
Elektronikkomponenter - Bakgrunn
Elektronikkomponenter - Bakgrunn
Elektronikkomponenter - Bakgrunn
Elektronikkomponenter - Bakgrunn

DS3231

Vi kunne bestemme tiden ved å bruke Arduinos innebygde oscillator og en timer, men jeg bestemte meg for å bruke dedikert sanntidsklokke (RTC) -modul, som kan holde oversikt over tid selv om vi kobler klokken fra strømkilden. DS3231 -kortet har et batteri, som gir strøm når modulen ikke er koblet til strømforsyningen. Det er også mer presist på lengre tid enn Arduinos klokkekilde.

DS3231 RTC bruker I2C-grensesnitt for å kommunisere med mikrokontroller-veldig enkel å bruke, og vi trenger bare 2 ledninger for å kommunisere med den. Modulen gir også temperatursensor, som vil bli brukt i dette prosjektet.

Viktig: Hvis du planlegger å bruke ikke-oppladbart batteri til RTC-modulen, bør du avlodde 200 ohm motstanden eller 1N4148 dioden. Ellers kan batteriet sprenges. Mer informasjon finner du på denne lenken.

WS2812 LED -ring

Jeg bestemte meg for å bruke 60 LED -ringer for å holde oversikt over minutter og 24 LED -ringer i flere timer. Du finner dem på Adafruit (neoPixel ring) eller noen billige versjoner på eBay, Aliexpress eller andre nettbutikker. Det er et stort mangfold blant de adresserbare led -stripene, og hvis det er første gang du leker med dem, anbefaler jeg deg å lese gjennom noen bruksbeskrivelser - her er noen nyttige lenker:

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

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

Adresserbar LED -stripe har 3 kontakter: 5V, GND og DI/DO. De to første er for strømforsyning av lysdiodene, den siste er for dataene. Vær forsiktig når du kobler ringen til Arduino - datalinjen din må være koblet til DI (data IN) -pinnen.

Arduino

Jeg bruker Arduino Nano fordi den er liten og tilstrekkelig nok til dette prosjektet. Du kan bruke nesten hvilken som helst annen Arduino, men da må du være forsiktig mens du kobler alt til den. Knappene og LED -ringene kan være på de samme pinnene, men I2C -kontakter (for RTC -modul) kan variere fra plattform til plattform - sjekk databladet.

Trinn 4: Elektronikk - strømforsyning

Elektronikk - strømforsyning
Elektronikk - strømforsyning

Arduino og LED -stripe må begge leveres med 5V strømkilde, slik at vi vet hvilken spenning som er nødvendig. Siden LED -ringene trekker den ganske mange ampere, kan vi ikke drive den direkte med Arduino, som tåler maks 20mA på sin digitale utgang. Etter mine mål kan LED -ringer sammen trekke opptil 500 mA. Derfor kjøpte jeg en adapter som kan levere opptil 1A.

Med den samme strømforsyningen ønsker vi å drive Arduino og lysdioder - her må du være forsiktig.

Advarsel! Vær ekstra forsiktig når du tester LED -stripen - strømadapteren må IKKE kobles til Arduino, når Arduino også er koblet til PC med USB -kontakt (du kan skade datamaskinens USB -port).

Merk: I skjemaene nedenfor brukte jeg normal bryter for å velge om Arduino får strøm via strømforsyning eller via USB -kontakt. Men på perfboardet kan du se at jeg la til en pin -header for å velge hvilken strømkilde Arduino får strøm fra.

Trinn 5: Elektronikk - lodding

Elektronikk - lodding
Elektronikk - lodding
Elektronikk - lodding
Elektronikk - lodding
Elektronikk - lodding
Elektronikk - lodding
Elektronikk - lodding
Elektronikk - lodding

Når du samler alle delene, er det på tide å lodde dem sammen.

Fordi jeg ønsket å gjøre ledningene ryddig, brukte jeg perfboard og noen terminalblokkontakt for ledninger, så jeg kan koble dem fra i tilfelle endringer. Dette er valgfritt - du kan også lodde ledningene direkte til Arduino.

Et tips: det er lettere hvis du skriver ut skjemaene slik at du har det foran deg mens du lodder. Og dobbeltsjekk alt før du kobler til strømforsyningen.

Trinn 6: Programvare - Bakgrunn

Arduino IDE

Vi skal programmere Arduino med sin dedikerte programvare: Arduino IDE. Hvis du spiller med Arduino for første gang, anbefaler jeg deg å sjekke noen instruksjoner om hvordan du gjør det. Det er allerede mange opplæringsprogrammer på nettet, så jeg vil ikke gå til detaljer.

Bibliotek

Jeg bestemte meg for å bruke FastLED -biblioteket i stedet for det populære Adafruit. Den har noen fine matematiske funksjoner som du kan gjøre flotte effekter med (tommelen opp til utviklerne!). Du kan finne biblioteket på GitHub -depotet, men jeg la til zip -filen med versjonen jeg bruker i koden min.

Hvis du lurer på hvordan du legger til eksternt bibliotek til Arduino IDE, kan du sjekke noen allerede laget instruksjoner

For klokkemodulen brukte jeg Arduino bibliotek for DS3231 sanntidsklokke (RTC) (lenke), som du enkelt kan installere i Arduino IDE. Når du er i IDE, klikker du for å Skisse → Inkluder bibliotek → Administrer biblioteker … og filtrerer deretter søket med navnet ovenfor.

Merk: Av en eller annen grunn kan jeg for øyeblikket ikke legge til.zip -filer. Du finner biblioteket på GitHub -depotet mitt.

Trinn 7: Programvare - kode

Programvare - kode
Programvare - kode
Programvare - kode
Programvare - kode

Struktur

Programmet er konstruert med 4 filer:

  • LEDclokc.ino Dette er hoved Arduino -applikasjonen, hvor du kan finne funksjoner for å kontrollere hele klokken - de starter med prefiks CLOCK_.
  • LEDclokc.h her er definisjoner av pin -tilkobling og noen klokkekonfigurasjoner.
  • ring.cpp og ring.h her er koden min for kontroll av LED -ringene.

LEDklokke. H

Her finner du alle klokke definisjoner. I begynnelsen er det definisjoner for ledninger. Sørg for at de er de samme som tilkoblingene dine. Så er det klokkekonfigurasjoner - her kan du finne makroen for antall moduser som klokken har.

LEDclock.ino

På diagrammet er hovedsløyfen representert. Koden sjekker først om en knapp trykkes. På grunn av bryterenes natur, må vi bruke debbouncing -metoden for å lese verdiene deres (du kan lese mer om dette på lenken).

Når du trykker på knapp 1, økes variabel modus med 1, hvis knapp 2 trykkes, økes variabel type. Vi bruker disse variablene til å bestemme hvilken klokkemodus vi vil se. Hvis du trykker på begge knappene samtidig, kalles funksjonen CLOCK_setTime () slik at du kan endre klokkeslettet.

Senere kode leser verdien av potensiometer og lagrer den i variabel - slik at denne variable brukeren kan endre fargene på klokken, lysstyrke etc.

Deretter er det en switch-case-uttalelse. Her bestemmer vi i hvilken modusklokke for øyeblikket er, og i den modusen kalles tilsvarende funksjon, som setter opp LED -fargene. Du kan legge til dine egne klokkemoduser og skrive eller endre funksjonene på nytt.

Som beskrevet i FastLED -biblioteket, må du ringe funksjonen FastLED.show () på enden, noe som gjør lysdiodene til fargen vi tidligere hadde satt dem opp til.

Du kan finne mye mer detaljerte beskrivelser mellom kodelinjene

Hele koden er vedlagt nedenfor i filene nedenfor.

TIPS: Du kan finne hele prosjektet på GitHub -depotet mitt. Her vil koden også bli oppdatert hvis jeg vil legge til noen endringer i den.

Trinn 8: Lag klokken

Lag klokken
Lag klokken
Lag klokken
Lag klokken
Lag klokken
Lag klokken

Klokkeramme

Jeg bygde klokkerammen ved hjelp av CNC -maskin og 25 mm tykt tre. Du finner skissen tegnet i ProgeCAD vedlagt nedenfor. Sporene for LED -ringen er litt større, fordi produsenter bare gir målinger av ytre diameter - indre kan variere ganske mye … På baksiden av klokken er det mye plass til elektronikk og ledninger.

PVC -ringer

Fordi lysdioder er ganske lyse, er det godt å spre dem på en eller annen måte. Først prøvde jeg med gjennomsiktig silikon, som gjør jobben med å spre, men det er ganske rotete og det er vanskelig å få det glatt på toppen. Derfor bestilte jeg et 20 x 20 cm stykke “melk” PVC -plast og kuttet to ringer i den med CNC -maskin. Du kan bruke sandpapir til å myke opp kantene slik at ringene glir i sporene.

Sidehull

Så er det på tide å bore hullene for knapper, potensiometer og strømforsyningskontakt. Tegn først hver posisjon med en blyant, og bor deretter i hullet. Her kommer det an på hvilken type knapper du har - jeg gikk med trykknapper med litt buet hode. De har en diameter på 16 mm, så jeg brukte trebor i den størrelsen. Det samme gjelder potensiometer og strømkontakt. Sørg for å slette alle blyanttegningene etterpå.

Trinn 9: Tegn i treet

Tegn i skogen
Tegn i skogen
Tegn i skogen
Tegn i skogen
Tegn i skogen
Tegn i skogen

Jeg bestemte meg for å tegne noen klokkeindikatorer i treverket - her kan du bruke fantasien og designe din egen. Jeg brente veden med loddejern, oppvarmet til maks temperatur.

For at sirklene skulle bli pent runde, brukte jeg et stykke aluminium, boret et hull i det og fulgte kantene på hullet med loddejern (se på bildet). Pass på at du holder aluminium godt, så det ikke sklir mens du tegner. Og vær forsiktig mens du gjør det for å forhindre skader.

Hvis du lager tegninger og vil at de skal være pent tilpasset klokkepikslene, kan du bruke "Vedlikeholdsmodus" som viser deg hvor pikslene skal plasseres (gå til kapittel Monter).

Beskytt treverket

Når du er fornøyd med klokken, er det på tide å slipe den og beskytte den med trelakk. Jeg brukte veldig mykt sandpapir (verdi 500) for å myke opp kantene. Jeg anbefaler deg å bruke gjennomsiktig trelakk, slik at fargen på treet ikke endres. Legg en liten mengde lakk på penselen og trekk den i retning av ettåringen i treverket. Gjenta det minst 2 ganger.

Trinn 10: Monteres

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

Firs setter knappene og potensiometeret på plassene sine - hvis hullene dine er for store, kan du bruke litt varmt lim for å fikse dem på plass. Sett deretter ringlisten i sporene og koble ledningene til Arduino. Før du limer LED -ringen på plass, er det godt å være sikker på at LED -piksler er på rett sted - sentrert og justert med tegningen. For det formålet la jeg til såkalt vedlikeholdsmodus som viser alle viktige piksler (0, 5, 10, 15,… på minuttringning og 3, 6, 9 og 12 på timering). Du kan gå inn i denne modusen ved å trykke på og holde inne begge knappene før du kobler strømforsyningen til kontakten. Du kan gå ut av denne modusen ved å trykke på en hvilken som helst knapp.

Når du har justert LED -ringene, må du bruke litt varmt lim og holde dem mens limet blir fast. Ta deretter PVC -ringene dine og igjen: Påfør litt varmt lim på lysdiodene, plasser dem raskt og hold dem i et par sekunder. Til slutt, når du er sikker på at alt fungerer, kan du varme lime per brett (eller Arduino) til treverket. Tips: ikke påfør mye lim. Bare en liten mengde, så den holder på ett sted, men du kan enkelt fjerne den hvis du vil endre noe senere.

På slutten, sett inn myntcellebatteriet i holderen.

Trinn 11: Oppgrader - Fotoresistor

Oppgradering - Fotoresistor
Oppgradering - Fotoresistor
Oppgradering - Fotoresistor
Oppgradering - Fotoresistor
Oppgradering - Fotoresistor
Oppgradering - Fotoresistor

Klokkeffektene er spesielt fine i mørket. Men dette kan forstyrre brukeren i løpet av natten, mens han eller hun sover. Derfor bestemte jeg meg for å oppgradere klokken med funksjonen for automatisk lysstyrkekorreksjon - når rommet blir mørkt; klokken slår av lysdiodene.

Til det formålet brukte jeg lyssensoren - fotomotstand. Motstanden vil øke betydelig; opptil få mega ohm når det er mørkt, og det vil bare ha noen få hundre ohm når det lyser på det. Sammen med en normal motstand danner de spenningsdeleren. Så når lyssensorens motstand endres, endres spenningen på Arduino analoge pinne (som vi kan måle).

Før lodding og montering av en krets, er det lurt å simulere den først, slik at du kan se atferden og gjøre korrigeringer. Ved hjelp av Autocad Tinkercad kan du gjøre akkurat det! Med bare noen få klikk la jeg til komponentene, koblet dem til og skrev koden. I simuleringen kan du se hvordan lysstyrken på LED -lysene endres i henhold til verdien av fotomotstand. Det er veldig enkelt og greit - du er velkommen til å leke med kretsen.

Etter simulering var det på tide å legge funksjonen til klokken. Jeg boret et hull i midten av klokken, limte fotomotstanden, koblet den slik at den kan sees på kretsen og la til noen linjer med kode. I filen LEDclock.h må du aktivere denne funksjonen ved å erklære USE_PHOTO_RESISTOR som 1. Du kan også endre ved hvilken romstyrke klokken vil dempe lysdiodene ved å endre CLOCK_PHOTO_TRESHOLD -verdien.

Trinn 12: Kos deg

Når du slår den på for første gang, viser klokken litt tilfeldig tid. Du kan konfigurere den ved å trykke på begge knappene samtidig. Drei på knappen for å velge riktig klokkeslett og bekreft det med å trykke på en hvilken som helst knapp.

Jeg fant inspirasjon i et veldig pent prosjekt på internett. Hvis du bestemmer deg for å bygge klokken på egen hånd, sjekk dem også! (NeoClock, Wol Clock, Arduino Colorful Clock) Hvis du noen gang bestemmer deg for å prøve å følge instrukser, håper jeg at du synes det blir like hyggelig som jeg gjorde.

Hvis du snubler over problemer under prosessen med å gjøre det, kan du stille meg et spørsmål i kommentarene - jeg vil gjerne prøve å svare på det!

Anbefalt: