INHOUDSOPGAWE:

LEDura - Analoge LED -klok: 12 stappe (met foto's)
LEDura - Analoge LED -klok: 12 stappe (met foto's)

Video: LEDura - Analoge LED -klok: 12 stappe (met foto's)

Video: LEDura - Analoge LED -klok: 12 stappe (met foto's)
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Julie
Anonim
LEDura - Analoog LED -horlosie
LEDura - Analoog LED -horlosie
LEDura - Analoog LED -horlosie
LEDura - Analoog LED -horlosie
LEDura - Analoog LED -horlosie
LEDura - Analoog LED -horlosie

Tinkercad -projekte »

Na 'n lang tyd om net verskillende projekte te maak, het ek besluit om self 'n opdrag te maak. Vir die eerste een lei ek u deur die proses om u eie analoog horlosie te maak met 'n ongelooflike aanspreekbare LED -ring. Die binneste ring toon die ure, die buitenste ring toon minute en sekondes.

Behalwe om die tyd aan te toon, kan die klok ook die kamertemperatuur vertoon, en dit kan 'n baie mooi versiering in die kamer wees. Elke 15 minute maak die klok ook 'n paar spesiale effekte - die video wys hulle almal, kyk gerus daarna. Met behulp van twee knoppies en potensiometer kan die gebruiker kies uit verskillende modusse en kleure verander volgens sy eie begeerte. Ek het dit ook opgegradeer om die LED's outomaties te vervaag as die kamer donker word, sodat die gebruiker nie snags versteur word nie.

Die horlosie kan op die lessenaar, bedkassie of aan die muur gehang word.

Let wel: foto's is nie so goed soos die uitsig in die werklikheid vanweë hoë helderheid nie.

Stap 1: Hoe om dit te lees?

Hoe om dit te lees?
Hoe om dit te lees?

Die horlosie het twee ringe - 'n kleiner een om ure te vertoon en 'n groter een vir minute en sekondes. Sommige LED's gloei voortdurend - 'n sogenaamde kompas wat die hoofklokposisies aandui. Op uurring verteenwoordig dit 3, 6, 9 en 12'o klok, op minute ring verteenwoordig dit 15, 30, 45 en 0 minute.

Stap 2: Wat benodig u

Wat sal jy nodig hê
Wat sal jy nodig hê

Materiaal:

  • 1x Arduino Nano (u kan ook enige ander Arduino gebruik)
  • 1x DS3231 RealTimeClock -module
  • 1x Adresbare ledring - 60 LED's
  • 1x Adresbare ledring - 24 LED's
  • 2x knoppies (NEE - normaalweg oop)
  • 1x 100kOhm potensiometer
  • 1x 5V kragtoevoer (kan 1 ampère lewer)
  • 1x toevoer aansluiting
  • Sommige drade
  • 1x 10kOhm weerstand
  • 1x fotoresistor
  • Voorblad (opsioneel)
  • Aansluitblokdraadverbindings (opsioneel)
  • 25 mm dik hout, grootte minstens 22 cm x 22 cm
  • 1mm dun mat PVC -plastiek grootte 20cmx20xm

Gereedskap:

  • Basiese gereedskap vir die bou van elektronika (soldeerbout, tang, skroewedraaier, …)
  • Boormasjien
  • Warm gom geweer
  • Skuurpapier en 'n bietjie houtvernis
  • CNC -masjien (miskien het 'n vriend dit)

Stap 3: Elektroniese komponente - Agtergrond

Elektroniese komponente - agtergrond
Elektroniese komponente - agtergrond
Elektroniese komponente - agtergrond
Elektroniese komponente - agtergrond
Elektroniese komponente - agtergrond
Elektroniese komponente - agtergrond

DS3231

Ons kon die tyd bepaal met behulp van Arduinos ingeboude ossillator en 'n timer, maar ek het besluit om 'n toegewyde Real Time Clock (RTC) module te gebruik, wat die tyd kan byhou, selfs as ons die horlosie van die kragbron ontkoppel. Die DS3231 -bord het 'n battery wat krag verskaf as die module nie aan die kragtoevoer gekoppel is nie. Dit is ook meer presies op langer periodes as die Arduinos -klokbron.

DS3231 RTC gebruik die I2C-koppelvlak om met die mikrobeheerder te kommunikeer-baie eenvoudig om te gebruik en ons benodig slegs 2 drade om daarmee te kommunikeer. Die module bied ook temperatuursensor wat in hierdie projek gebruik sal word.

Belangrik: as u van plan is om 'n nie-herlaaibare battery vir die RTC-module te gebruik, moet u die 200 ohm weerstand of 1N4148 diode ontsoldeer. Anders kan u battery opraak. Meer inligting kan gevind word op hierdie skakel.

WS2812 LED ring

Ek het besluit om 60 LED -ring te gebruik om ure by te hou en 24 LED -ring. U kan dit vind op Adafruit (neoPixel ring) of 'n paar goedkoop weergawes op eBay, Aliexpress of ander webwinkels. Daar is 'n groot verskeidenheid onder die aanspreekbare LED -stroke, en as dit u eerste keer is om daarmee te speel, beveel ek u aan om 'n paar gebruiksbeskrywings deur te lees - hier is 'n paar nuttige skakels:

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

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

Adresbare LED -strook het 3 verbindings: 5V, GND en DI/DO. Die eerste twee is vir die voeding van die LED's, die laaste vir die data. Wees versigtig as u die ring met Arduino verbind - u data -lyn moet gekoppel wees aan die DI (data IN) -pen.

Arduino

Ek gebruik Arduino Nano omdat dit klein en voldoende genoeg is vir hierdie projek. U kan byna enige ander Arduino gebruik, maar dan moet u versigtig wees terwyl u alles daaraan koppel. Die knoppies en LED -ringe kan op dieselfde penne wees, maar I2C -verbindings (vir RTC -module) kan van platform tot platform verskil - kyk na hul datablad.

Stap 4: Elektronika - Kragtoevoer

Elektronika - Kragtoevoer
Elektronika - Kragtoevoer

Arduino en LED -strook moet beide met 'n 5V -kragbron voorsien word, sodat ons weet watter spanning benodig word. Aangesien die LED -ringe 'n groot hoeveelheid ampère trek, kan ons dit nie direk met Arduino dryf nie, wat 'n maksimum van 20mA op sy digitale uitset kan weerstaan. Volgens my metings kan LED -ringe saam tot 500 mA trek. Daarom het ek 'n adapter gekoop wat tot 1A kan lewer.

Met dieselfde kragtoevoer wil ons Arduino en LED's aandryf - hier moet u versigtig wees.

Waarskuwing! Wees ekstra versigtig as u die LED -strook toets - die kragadapter mag NIE op Arduino gekoppel wees nie, as Arduino ook met 'n rekenaar met 'n USB -aansluiting gekoppel is (u kan u rekenaar se USB -poort beskadig).

Opmerking: in die onderstaande skemas gebruik ek 'n normale skakelaar om te bepaal of Arduino gevoed word via 'n kragtoevoer of via 'n USB -aansluiting. Maar op die perfboard kan u sien dat ek 'n speldopskrif bygevoeg het om te kies uit watter kragbron Arduino gevoed word.

Stap 5: Elektronika - soldeer

Elektronika - soldeer
Elektronika - soldeer
Elektronika - soldeer
Elektronika - soldeer
Elektronika - soldeer
Elektronika - soldeer
Elektronika - soldeer
Elektronika - soldeer

As u al die dele bymekaarmaak, is dit tyd om dit saam te soldeer.

Omdat ek die bedrading netjies wou maak, het ek perfboard en 'n aansluiting vir drade gebruik, sodat ek dit kan ontkoppel in geval van veranderinge. Dit is opsioneel - u kan die drade ook direk aan die Arduino soldeer.

'N Wenk: dit is makliker as u die skemas druk, sodat u dit voor u kan hê terwyl u soldeer. En kontroleer alles eers voordat u met die kragtoevoer aansluit.

Stap 6: sagteware - agtergrond

Arduino IDE

Ons gaan Arduino programmeer met sy toegewyde sagteware: Arduino IDE. As u vir die eerste keer met Arduino speel, raai ek u aan om 'n paar instruksies na te gaan oor hoe u dit moet doen. Daar is al baie tutoriale op die internet, so ek gaan nie na die besonderhede nie.

Biblioteek

Ek het besluit om die FastLED -biblioteek te gebruik in plaas van die gewilde Adafruit. Dit het 'n paar netjiese wiskundige funksies waarmee u uitstekende effekte kan doen (Thumbs up to the developers!). U kan die biblioteek in hul GitHub -bewaarplek vind, maar ek het die.zip -lêer van die weergawe wat ek gebruik in my kode bygevoeg.

As u wonder hoe u 'n eksterne biblioteek by Arduino IDE kan voeg, kan u die reeds gemaakte instruksies nagaan

Vir die klokmodule het ek die Arduino-biblioteek gebruik vir die DS3231 intydse klok (RTC) (skakel), wat u maklik in Arduino IDE kan installeer. As u in IDE is, klik dan op Skets → Sluit biblioteek in → Bestuur biblioteke … en filter dan u soektog met die naam hierbo.

Nota: Om een of ander rede kan ek tans nie.zip -lêers byvoeg nie. U kan die biblioteek vind in my GitHub -bewaarplek.

Stap 7: sagteware - kode

Sagteware - kode
Sagteware - kode
Sagteware - kode
Sagteware - kode

Struktuur

Die toepassing is saamgestel uit 4 lêers:

  • LEDclokc.ino Dit is die belangrikste Arduino -toepassing, waar u funksies kan vind om die hele klok te beheer - hulle begin met voorvoegsel CLOCK_.
  • LEDclokc.h hier is definisies vir penverbindings en 'n paar klokkonfigurasies.
  • ring.cpp en ring.h hier is my kode vir die beheer van die LED -ringe.

LEDclock.h

Hier vind u al die definisies van die klok. Aan die begin is daar definisies vir bedrading. Maak seker dat hulle dieselfde is as u verbindings. Dan is daar klokkonfigurasies - hier vind u die makro vir die aantal modusse wat die klok het.

LEDclock.ino

Op die diagram word die hooflus voorgestel. Die kode kyk eers of daar op 'n knoppie gedruk word. Vanweë die aard van skakelaars, moet ons die ontblaasmetode gebruik om die waardes daarvan te lees (u kan meer hieroor lees op die skakel).

As knoppie 1 ingedruk word, word die veranderlike modus met 1 verhoog, as knoppie 2 ingedruk word, word die veranderlike tipe verhoog. Ons gebruik hierdie veranderlikes om te bepaal watter klokmodus ons wil sien. As beide knoppies gelyktydig ingedruk word, word funksie CLOCK_setTime () genoem, sodat u die tyd van die klok kan verander.

Later lees die waarde van die potensiometer en stoor dit in 'n veranderlike - waardeur hierdie veranderlike gebruiker die kleure van die klok, helderheid, ens.

Dan is daar 'n skakel-saak verklaring. Hier bepaal ons in watter modus klok tans is, en volgens die modus word die ooreenstemmende funksie genoem, wat die kleure van die LED's stel. U kan u eie klokmodusse byvoeg en die funksies herskryf of verander.

Soos beskryf in die FastLED -biblioteek, moet u funksie FastLED.show () aan die einde bel, wat die LED's verander na die kleur waarmee ons dit voorheen gestel het.

U kan baie meer gedetailleerde beskrywings tussen die kode lyne vind

Die hele kode is hieronder aangeheg in die lêers hieronder.

WENK: u kan die hele projek op my GitHub -bewaarplek vind. Hier sal die kode ook opgedateer word as ek daaraan verander.

Stap 8: Maak die horlosie

Maak die klok
Maak die klok
Maak die klok
Maak die klok
Maak die klok
Maak die klok

Horlosieraam

Ek het die klokraam gebou met behulp van CNC -masjien en 25 mm dik hout. U kan die skets vind wat in die ProgeCAD geteken is, hier onder aangeheg. Die gleuwe vir die LED -ring is 'n bietjie groter, omdat die vervaardigers slegs die buitenste deursnee meet - die binnekant kan baie wissel … Aan die agterkant van die klok is daar baie ruimte vir elektronika en drade.

PVC ringe

Omdat LED's redelik helder is, is dit goed om dit op een of ander manier te versprei. Eerstens het ek probeer met deursigtige silikoon, wat die werk kan versprei, maar dit is nogal morsig en dit is moeilik om dit glad bo -op te kry. Daarom het ek 'n stuk melk van 20 x 20 cm PVC -plastiek bestel en twee ringe daarin gesny met 'n CNC -masjien. U kan skuurpapier gebruik om die rande te versag sodat die ringe in die gleuwe gly.

Sygate

Dan is dit tyd om die gate vir knoppies, potensiometer en kragbron te boor. Teken eerstens elke posisie met 'n potlood en boor dan in die gat. Hier hang dit af watter tipe knoppies u het - ek het drukknoppies met 'n effens geboë kop gehad. Hulle het 'n deursnee van 16 mm, so ek het 'n houtboor van die grootte gebruik. Dieselfde geld vir potensiometer en kragaansluiting. Maak seker dat u al die potloodtekeninge daarna uitvee.

Stap 9: Teken in die hout

Teken in die hout
Teken in die hout
Teken in die hout
Teken in die hout
Teken in die hout
Teken in die hout

Ek het besluit om 'n paar klokwysers in die hout te teken - hier kan u u verbeelding gebruik en u eie ontwerp. Ek verbrand die hout met soldeerbout, verhit tot maksimum temperatuur.

Om die sirkels mooi rond te maak, het ek 'n stuk aluminium gebruik, 'n gaatjie daarin geboor en die rande van die gat met soldeerbout gevolg (kyk na die prentjie). Maak seker dat u aluminium stewig vashou, sodat dit nie gly terwyl u teken nie. En wees versigtig terwyl u dit doen om beserings te voorkom.

As u tekeninge maak en wil hê dat hulle goed in lyn moet wees met die klokpiksels, kan u 'Onderhoudsmodus' gebruik wat u sal wys waar die pixels geleë is (gaan na hoofstuk Monteer).

Beskerm die hout

As u tevrede is met die horlosie, is dit tyd om dit te skuur en met houtvernis te beskerm. Ek het baie sagte skuurpapier (waarde van 500) gebruik om die rande sag te maak. Ek beveel aan dat u deursigtige houtvernis gebruik, sodat die kleur van die hout nie verander nie. Sit 'n klein bietjie vernis op die kwas en trek dit in die rigting van die eenjariges in die hout. Herhaal dit ten minste 2 keer.

Stap 10: Monteer

Assamble
Assamble
Assamble
Assamble
Assamble
Assamble

Firs sit die knoppies en die potensiometer op hul posisies - as u gate te groot is, kan u warm gom gebruik om dit vas te maak. Plaas dan die ringstrook in die gleuwe en verbind die drade met die Arduino. Voordat u die LED -ring op sy plek plak, is dit goed om seker te maak dat LED -pixels op die regte plek is - gesentreer en in lyn met die tekening. Vir hierdie doel het ek die sogenaamde instandhoudingsmodus bygevoeg, wat al die belangrike pixels (0, 5, 10, 15, … op minuut -ring en 3, 6, 9 en 12 op uur -ring) sal vertoon. U kan hierdie modus betree deur beide knoppies ingedruk te hou voordat u die kragtoevoer aan die aansluiting koppel. U kan hierdie modus verlaat deur op enige knoppie te druk.

As u LED -ringe in lyn is, dien 'n bietjie warm gom aan en hou dit vas terwyl die gom stewig raak. Neem dan u PVC -ringe en weer: smeer warm gom op die LED's, plaas dit vinnig en hou dit 'n paar sekondes vas. As u uiteindelik seker is dat alles werk, kan u die bord (of Arduino) warm plak op die hout. Wenk: moenie op baie gom toedien nie. Net 'n klein hoeveelheid, sodat dit op een plek kan bly, maar u kan dit maklik verwyder as u later iets wil verander.

Steek aan die einde die muntbattery in die houer.

Stap 11: Opgradeer - Fotoresistor

Opgradeer - Fotoresistor
Opgradeer - Fotoresistor
Opgradeer - Fotoresistor
Opgradeer - Fotoresistor
Opgradeer - Fotoresistor
Opgradeer - Fotoresistor

Die klok -effekte is veral lekker in die donker. Maar dit kan die gebruiker gedurende die nag versteur terwyl hy of sy slaap. Daarom het ek besluit om die horlosie op te gradeer met die funksie van outomatiese helderheidskorreksie - as die kamer donker word; die horlosie skakel sy LED's af.

Vir hierdie doel het ek die ligsensor - fotoweerstand gebruik. Sy weerstand sal aansienlik styg; tot 'n paar mega ohm as dit donker is, en dit sal slegs 'n paar honderd ohm hê as daar lig skyn. Saam met 'n normale weerstand vorm hulle die spanningsverdeler. As die weerstand van die ligsensor verander, verander die spanning op die analoge pen van Arduino (wat ons kan meet).

Voordat u 'n stroombaan soldeer en monteer, is dit verstandig om dit eers te simuleer, sodat u die gedrag kan sien en regstellings kan aanbring. Met die hulp van Autocad Tinkercad kan u presies dit doen! Met net 'n paar kliks het ek die komponente bygevoeg, dit verbind en die kode geskryf. In die simulasie kan u sien hoe die helderheid van die LED's verander word volgens die waarde van die fotoweerstand. Dit is baie eenvoudig en eenvoudig - u is welkom om met die kring te speel.

Na simulasie was dit tyd om die funksie by die horlosie te voeg. Ek het 'n gat in die middel van die horlosie geboor, die foto -weerstand vasgeplak, dit verbind asof dit op die stroombaan gesien kan word en 'n paar reëls kode bygevoeg. In die lêer LEDclock.h moet u hierdie funksie aktiveer deur USE_PHOTO_RESISTOR te verklaar as 1. U kan ook verander teen watter kamerhelderheid die horlosie die LED's sal verdof deur die CLOCK_PHOTO_TRESHOLD -waarde te verander.

Stap 12: Geniet dit

As u dit vir die eerste keer aanskakel, sal die klok 'n ewekansige tyd wys. U kan dit instel deur op beide knoppies gelyktydig te druk. Draai aan die knop om die regte tyd te kies en bevestig dit met die druk op enige knoppie.

Ek het inspirasie gevind in 'n baie netjiese projek op die internet. As u besluit om die horlosie self te bou, kyk gerus ook! (NeoClock, Wol Clock, Arduino Colorful Clock) As u ooit besluit om instruksies te volg, hoop ek dat u dit net so aangenaam sal maak soos ek.

As u probleme ondervind tydens die proses om dit te maak, kan u my enige vrae in die kommentaar vra - ek sal dit graag probeer beantwoord!

Aanbeveel: