Indholdsfortegnelse:

LEDura - Analog LED -ur: 12 trin (med billeder)
LEDura - Analog LED -ur: 12 trin (med billeder)

Video: LEDura - Analog LED -ur: 12 trin (med billeder)

Video: LEDura - Analog LED -ur: 12 trin (med billeder)
Video: LEDura (Demonstration) : LED clock using Arduino and addressable LED ring 2024, November
Anonim
LEDura - Analog LED -ur
LEDura - Analog LED -ur
LEDura - Analog LED -ur
LEDura - Analog LED -ur
LEDura - Analog LED -ur
LEDura - Analog LED -ur

Tinkercad -projekter »

Efter lang tid med bare at lave forskellige projekter besluttede jeg at lave en instruerbar selv. For det første vil jeg guide dig gennem processen med at lave dit eget analoge ur lavet med fantastisk adresserbar LED -ring. Den indre ring viser timerne, den ydre ring viser minutter og sekunder.

Udover at vise tiden kan uret også vise rumtemperaturen, og det kan være en meget flot dekoration i rummet. Hvert 15. minut laver uret også nogle specialeffekter - video viser dem alle, sørg for at tjekke det ud. Ved hjælp af 2 knapper og potentiometer kan brugeren vælge mellem forskellige tilstande og modificere farver efter eget ønske. Jeg opgraderede det også til automatisk at dæmpe lysdioderne, hvis rummet bliver mørkt, så brugeren ikke bliver forstyrret i løbet af natten.

Uret kan placeres på skrivebordet, sengebordet eller hænges fra væggen.

Bemærk: Billeder er ikke så gode som udsigten i virkeligheden på grund af høj lysstyrke.

Trin 1: Hvordan læser man det?

Hvordan læser man det?
Hvordan læser man det?

Uret har 2 ringe - mindre til visning af timer og større til visning af minutter og sekunder. Nogle lysdioder lyser hele tiden - et såkaldt kompas, der angiver hovedurets positioner. På timering repræsenterer det 3, 6, 9 og 12'o -uret, ved minutring repræsenterer det 15, 30, 45 og 0 minutter.

Trin 2: Hvad skal du bruge

Hvad skal du bruge
Hvad skal du bruge

Materialer:

  • 1x Arduino Nano (du kan også bruge enhver anden Arduino)
  • 1x DS3231 RealTimeClock -modul
  • 1x adresserbar ledring - 60 lysdioder
  • 1x adresserbar ledring - 24 lysdioder
  • 2x knapper (NO - normalt åben)
  • 1x 100kOhm potentiometter
  • 1x 5V strømforsyning (i stand til at levere 1 ampere)
  • 1x forsyningsstik
  • Nogle ledninger
  • 1x 10kOhm modstand
  • 1x fotoresistor
  • Prefab (valgfrit)
  • Terminalblok ledningsstik (valgfrit)
  • 25 mm tykt træ, størrelse mindst 22 cm x 22 cm
  • 1 mm tynd mat PVC -plaststørrelse 20cmx20xm

Værktøjer:

  • Grundlæggende værktøjer til bygning af elektronik (loddejern, tang, skruetrækker, …)
  • Boremaskine
  • Varm limpistol
  • Sandpapir og noget trælak
  • CNC -maskine (måske har en ven det)

Trin 3: Elektronikkomponenter - Baggrund

Elektronikkomponenter - Baggrund
Elektronikkomponenter - Baggrund
Elektronikkomponenter - Baggrund
Elektronikkomponenter - Baggrund
Elektronikkomponenter - Baggrund
Elektronikkomponenter - Baggrund

DS3231

Vi kunne bestemme tiden ved hjælp af Arduinos indbygget oscillator og en timer, men jeg besluttede at bruge dedikeret Real Time Clock (RTC) modul, som kan holde styr på tiden, selvom vi afbryder uret fra dets strømkilde. DS3231 -kortet har et batteri, som giver strøm, når modulet ikke er sluttet til strømforsyningen. Det er også mere præcist i længere perioder end Arduinos urkilde.

DS3231 RTC bruger I2C interface til at kommunikere med mikro-controller-meget enkel at bruge, og vi har kun brug for 2 ledninger til at kommunikere med den. Modulet indeholder også temperatursensor, som vil blive brugt i dette projekt.

Vigtigt: Hvis du planlægger at bruge ikke-genopladeligt batteri til RTC-modulet, skal du aflodde 200 ohm modstanden eller 1N4148 dioden. Ellers kan batteriet sprænge. Flere oplysninger kan findes på dette link.

WS2812 LED -ring

Jeg besluttede at bruge 60 LED -ring til at holde styr på minutter og 24 LED -ring i timevis. Du kan finde dem på Adafruit (neoPixel ring) eller nogle billige versioner på eBay, Aliexpress eller andre webshops. Der er en stor mangfoldighed blandt de adresserbare led -strips, og hvis det er første gang, du leger med dem, anbefaler jeg dig at læse nogle brugsbeskrivelser igennem - her er nogle nyttige links:

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

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

Adresserbar LED -strip har 3 stik: 5V, GND og DI/DO. De to første er til strømforsyning af LED'erne, den sidste er til dataene. Vær forsigtig, mens du tilslutter ringen til Arduino - din datalinje skal være forbundet til DI (data IN) pin.

Arduino

Jeg bruger Arduino Nano, fordi det er lille og tilstrækkeligt nok til dette projekt. Du kan bruge næsten enhver anden Arduino, men så skal du være forsigtig, mens du forbinder alt til det. Knapperne og LED -ringene kan være på de samme ben, men I2C -stik (til RTC -modul) kan variere fra platform til platform - tjek deres datablad.

Trin 4: Elektronik - strømforsyning

Elektronik - strømforsyning
Elektronik - strømforsyning

Arduino og LED strip skal begge forsynes med 5V strømkilde, så vi ved, hvilken spænding der er nødvendig. Da LED'en ringer, trækker den ret mange ampere, og vi kan ikke drive den direkte med Arduino, der kan modstå maks. 20mA på sin digitale output. Efter mine målinger kan LED -ringe tilsammen trække op til 500 mA. Derfor købte jeg en adapter, der kan levere op til 1A.

Med den samme strømforsyning vil vi drive Arduino og lysdioder - her skal du være forsigtig.

Advarsel! Vær ekstra forsigtig, når du tester LED -stripen - strømadapteren må IKKE tilsluttes Arduino, når Arduino også er tilsluttet PC med USB -stik (du kan beskadige din computers USB -port).

Bemærk: I skemaerne herunder brugte jeg normal switch til at vælge, om Arduino er drevet via strømforsyning eller via USB -stik. Men på perfboardet kan du se, at jeg tilføjede et pin -header for at vælge, fra hvilken strømkilde Arduino får strøm.

Trin 5: Elektronik - lodning

Elektronik - lodning
Elektronik - lodning
Elektronik - lodning
Elektronik - lodning
Elektronik - lodning
Elektronik - lodning
Elektronik - Lodning
Elektronik - Lodning

Når du samler alle delene, er det tid til at lodde dem sammen.

Fordi jeg ville gøre ledningerne pæne, brugte jeg perfboard og nogle terminalblokforbindelser til ledninger, så jeg kan trække stikket ud af dem i tilfælde af ændringer. Dette er valgfrit - du kan også lodde ledningerne direkte til Arduino.

Et tip: det er lettere, hvis du udskriver skemaerne, så du har det foran dig under lodning. Og dobbelttjek alt, inden du slutter til strømforsyningen.

Trin 6: Software - Baggrund

Arduino IDE

Vi kommer til at programmere Arduino med sin dedikerede software: Arduino IDE. Hvis du spiller med Arduino for første gang, anbefaler jeg dig at tjekke nogle instruktioner om, hvordan du gør det. Der er allerede masser af selvstudier på nettet, så jeg vil ikke gå i detaljer.

Bibliotek

Jeg besluttede mig for at bruge FastLED -bibliotek i stedet for det populære Adafruit. Det har nogle pæne matematiske funktioner, som du kan lave store effekter med (tommelfingeren op til udviklerne!). Du kan finde biblioteket på deres GitHub -depot, men jeg tilføjede.zip -filen med den version, jeg bruger i min kode.

Hvis du undrer dig over, hvordan du tilføjer et eksternt bibliotek til Arduino IDE, kan du tjekke nogle allerede foretagne instruktioner

Til urmodulet brugte jeg Arduino bibliotek til DS3231 real-time ur (RTC) (link), som du let kan installere i Arduino IDE. Når du er i IDE, skal du klikke på Skitse → Inkluder bibliotek → Administrer biblioteker … og filtrere derefter din søgning med navnet ovenfor.

Bemærk: Af en eller anden grund kan jeg i øjeblikket ikke tilføje.zip -filer. Du kan finde biblioteket på mit GitHub -lager.

Trin 7: Software - kode

Software - Kode
Software - Kode
Software - Kode
Software - Kode

Struktur

Applikationen er opbygget med 4 filer:

  • LEDclokc.ino Dette er hoved Arduino -applikationen, hvor du kan finde funktioner til styring af hele uret - de starter med præfiks CLOCK_.
  • LEDclokc.h her er stiforbindelsesdefinitioner og nogle urkonfigurationer.
  • ring.cpp og ring.h her er min kode til styring af LED -ringene.

LEDclock.h

Her finder du alle urdefinitioner. I begyndelsen er der definitioner på ledninger. Sørg for, at de er de samme som dine forbindelser. Så er der urkonfigurationer - her kan du finde makroen for antallet af tilstande, som uret har.

LEDclock.ino

På diagrammet er hovedsløjfen repræsenteret. Koden kontrollerer først, om der trykkes på en knap. På grund af switches karakter skal vi bruge debbouncing -metoden til at læse deres værdier (du kan læse mere om dette på linket).

Når der trykkes på knap 1, hæves variabel tilstand med 1, hvis der trykkes på knap 2, hæves variabel typen. Vi bruger disse variabler til at bestemme, hvilken urtilstand vi vil se. Hvis der trykkes på begge knapper samtidigt, kaldes funktion CLOCK_setTime (), så du kan ændre urets tid.

Senere kode læser værdien af potentiometer og gemmer den i variabel - hvormed denne variable bruger kan ændre farverne på uret, lysstyrke osv.

Så er der en switch-case erklæring. Her bestemmer vi i hvilken tilstand uret aktuelt er i, og ved den tilstand kaldes den tilsvarende funktion, som sætter LED'ernes farver. Du kan tilføje dine egne urtilstande og omskrive eller ændre funktionerne.

Som beskrevet i FastLED -biblioteket, skal du ringe til funktionen FastLED.show () for enden, hvilket gør LED'erne til den farve, vi tidligere har indstillet dem til.

Du kan finde meget mere detaljerede beskrivelser mellem kodelinjerne

Hele koden er vedhæftet nedenfor i filerne herunder.

TIP: du kan finde hele projektet på mit GitHub -lager. Her vil koden også blive opdateret, hvis jeg vil tilføje ændringer til den.

Trin 8: Lav uret

Lav uret
Lav uret
Lav uret
Lav uret
Lav uret
Lav uret

Urramme

Jeg byggede urrammen ved hjælp af CNC -maskine og 25 mm tykt træ. Du kan finde skitsen tegnet i ProgeCAD vedhæftet nedenfor. Slidserne til LED -ringen er en smule større, fordi producenter kun leverer målinger af ydre diameter - indvendig kan variere ret meget … Bag på uret er der meget plads til elektronik og ledninger.

PVC ringe

Fordi lysdioder er ret klare, er det godt at sprede dem på en eller anden måde. Først prøvede jeg med gennemsigtig silikone, som gør arbejdet med at sprede, men det er ret rodet, og det er svært at få det glat ovenpå. Derfor bestilte jeg et 20x20 cm stykke “mælk” PVC -plast og skar to ringe i det med CNC -maskine. Du kan bruge sandpapir til at blødgøre kanterne, så ringene glider i åbningerne.

Sidehuller

Så er det tid til at bore hullerne til knapper, potentiometer og strømforsyningsstik. Først skal du tegne hver position med en blyant og derefter bore i hullet. Her afhænger det af hvilken type knapper du har - jeg gik med trykknapper med let buet hoved. De har 16 mm i diameter, så jeg brugte træbor i den størrelse. Det samme gælder for potentiometer og strømstik. Sørg for at slette alle blyantstegningerne bagefter.

Trin 9: Tegn i træet

Tegn i skoven
Tegn i skoven
Tegn i skoven
Tegn i skoven
Tegn i skoven
Tegn i skoven

Jeg besluttede at tegne nogle urindikatorer i træet - her kan du bruge din fantasi og designe din egen. Jeg brændte træet ved hjælp af loddejern, opvarmet til maks temperatur.

For at cirklerne skulle være pænt runde, brugte jeg et stykke aluminium, borede et hul i det og fulgte hullets kanter med loddejern (se billedet). Sørg for, at du holder aluminium fast, så det ikke glider, mens du tegner. Og vær forsigtig, mens du gør det for at forhindre skader.

Hvis du laver tegninger og ønsker, at de skal være pænt tilpasset urets pixel, kan du bruge "Vedligeholdelsestilstand", som viser dig, hvor pixelerne skal placeres (gå til kapitlet Saml).

Beskyt træet

Når du er tilfreds med uret, er det tid til at slibe det og beskytte det med trælak. Jeg brugte meget blødt sandpapir (værdi på 500) til at blødgøre kanterne. Jeg anbefaler dig at bruge gennemsigtig trælak, så træets farve ikke ændrer sig. Læg en lille mængde lak på børsten og træk den i retning af enårige i træet. Gentag det mindst 2 gange.

Trin 10: Saml

Saml
Saml
Saml
Saml
Saml
Saml

Firs sætter knapperne og potentiometeret på deres positioner - hvis dine huller er for store, kan du bruge lidt varm lim til at fastgøre dem på plads. Sæt derefter ringstrimlen i dens åbninger, og slut ledningerne til Arduino. Inden du limer LED -ringen på plads, er det godt at være sikker på, at LED -pixels er på det rigtige sted - centreret og justeret efter tegningen. Til det formål tilføjede jeg den såkaldte vedligeholdelsestilstand, som viser alle de vigtige pixels (0, 5, 10, 15,… på minutringning og 3, 6, 9 og 12 ved timering). Du kan gå ind i denne tilstand ved at trykke på og holde begge knapper nede, inden du tilslutter strømforsyningen til stikket. Du kan forlade denne tilstand ved at trykke på en vilkårlig knap.

Når du har dine LED -ringe justeret, skal du anvende lidt varm lim og holde dem, mens limen bliver fast. Tag derefter dine PVC -ringe og igen: Påfør lidt varm lim på lysdioderne, placer dem hurtigt og hold dem i et par sekunder. Til sidst, når du er sikker på, at alt fungerer, kan du varmt lime per bord (eller Arduino) til træet. Tip: påfør ikke meget lim. Bare en lille mængde, så den holder på ét sted, men du kan nemt fjerne den, hvis du gerne vil ændre noget senere.

I slutningen sætter du møntcellebatteri i holderen.

Trin 11: Opgrader - Fotoresistor

Opgradering - Fotoresistor
Opgradering - Fotoresistor
Opgradering - Fotoresistor
Opgradering - Fotoresistor
Opgradering - Fotoresistor
Opgradering - Fotoresistor

Ureffekterne er især flotte i mørket. Men dette kan forstyrre brugeren i løbet af natten, mens han eller hun sover. Derfor besluttede jeg at opgradere uret med funktionen til automatisk lysstyrkekorrektion - når rummet bliver mørkt; uret slukker sine lysdioder.

Til det formål brugte jeg lyssensoren - fotomodstand. Dens modstand vil stige betydeligt; op til få mega ohm, når det er mørkt, og det vil kun have få hundrede ohm, når der lyser på det. Sammen med en normal modstand danner de spændingsdeleren. Så når lyssensorens modstand ændres, ændres spændingen på Arduino analog pin (som vi kan måle).

Inden lodning og samling af et kredsløb er det klogt først at simulere det, så du kan se adfærden og foretage korrektioner. Ved hjælp af Autocad Tinkercad kan du gøre præcis det! Med bare et par klik tilføjede jeg komponenterne, tilsluttede dem og skrev koden. I simuleringen kan du se, hvordan lysdiodernes lysstyrke ændres i henhold til værdien af fotomodstand. Det er meget enkelt og ligetil - du er velkommen til at lege med kredsløbet.

Efter simulering var det tid til at tilføje funktionen til uret. Jeg borede et hul i midten af uret, limede fotomodstanden, tilsluttede det som om det kan ses på kredsløbet og tilføjede få linjer med kode. I filen LEDclock.h skal du aktivere denne funktion ved at erklære USE_PHOTO_RESISTOR som 1. Du kan også ændre ved hvilken rumlysstyrke uret dæmper LED'erne ved at ændre værdien CLOCK_PHOTO_TRESHOLD.

Trin 12: God fornøjelse

Når du tænder for det første gang, viser uret en tilfældig tid. Du kan konfigurere det ved at trykke på begge knapper samtidigt. Drej på knappen for at vælge det rigtige tidspunkt, og bekræft det med et tryk på en vilkårlig knap.

Jeg fandt inspiration i nogle meget pæne projekter på internettet. Hvis du beslutter dig for at bygge uret på egen hånd, skal du også tjekke dem ud! (NeoClock, Wol Clock, Arduino Colorful Clock) Hvis du nogensinde beslutter dig for at prøve at følge instruktioner, håber jeg, at du finder det lige så sjovt som jeg gjorde.

Hvis du støder på problemer under processen med at lave det, er du velkommen til at stille mig ethvert spørgsmål i kommentarerne - jeg vil med glæde forsøge at besvare det!

Anbefalede: