Kazalo:
- Zaloge
- 1. korak: Priključite vezje
- 2. korak: Priprava dela z zvočnikom
- 3. korak: Priprava LED plošče
- 4. korak: Priprava stikala (dejansko gumb)
- 5. korak: Priprava LED traku
- 6. korak: Priprava senzorja kapacitivnosti
- 7. korak: Priprava napajalnika
- 8. korak: Povežite jih z Arduinom
- 9. korak: ohišje
- 10. korak: Čas programiranja
- 11. korak: Popravljalni mehanizem
- 12. korak: Kako uporabljati vse funkcije
- 13. korak: Zaključek
- 14. korak: Posodobitev: po enem tednu uporabe
Video: Binarna budilka Arduino DIY: 14 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Spet je klasična binarna ura! A tokrat s še večjo dodatno funkcijo! V tem navodilu vam bom pokazal, kako z Arduinom zgraditi binarno budilko, ki vam lahko pokaže ne le čas, ampak datum, mesec, tudi s časovnikom in alarmnimi funkcijami, ki jih lahko uporabite tudi kot nočno svetilko! Brez odlašanja začnimo!
Opomba: Ta projekt ne uporablja modula RTC, zato je natančnost odvisna od plošče, ki ste jo uporabili. Vključil sem korekcijski mehanizem, ki bo popravil časovni premik v določenem časovnem obdobju, vendar boste morali eksperimentirati, da poiščete pravilno vrednost za časovno obdobje (več o tem spodaj), in tudi s korekcijskim mehanizmom se bo še vedno premikal dolgo časa (v primerjavi z brez). Če koga zanima, lahko v ta projekt implementira uporabo modula RTC
Zaloge
5 mm LED (katere koli barve, uporabil sem 13 belih LED z eno LED RGB kot indikator) --- 14 kosov
Arduino Nano (drugi lahko delujejo) --- 1 kos
Mikro stikalo --- 1 kos
Majhen kos aluminijaste folije
Montažna plošča (za ohišje, vendar jo lahko oblikujete sami)
Kos belega papirja (ali katere koli druge barve)
Nekaj plastične folije (tista, ki se uporablja kot naslovnica knjige)
Kup žic
Zvočni signal --- 1 kos
NPN tranzistor --- 1 kos
Upori 6k8 --- 14 kosov, 500R --- 1 kos, 20R (10Rx2) --- 1 kos, 4k7 --- 1 kos
Napajanje za projekt (uporabil sem li-on baterijo)
5050 LED trak in drsno stikalo (neobvezno)
1. korak: Priključite vezje
Ta korak bom razdelil na:
1) Del zvočnika
2) LED plošča
3) Stikalo (potisni gumb)
4) LED trak
5) Senzor kapacitivnosti
6) Napajanje
7) Vse povežite z Arduinom
Najpogosteje je to le korak po shemi. Zato si oglejte zgornjo shemo ali jo celo prenesite in natisnite!
2. korak: Priprava dela z zvočnikom
Če ste z Arduinom že uporabljali brenčalo, boste vedeli, da če ga priključimo neposredno na Arduino, ne bo dovolj glasen. Zato potrebujemo ojačevalnik. Za izdelavo ojačevalnika potrebujemo NPN tranzistor (v bistvu bo deloval kateri koli NPN, uporabil sem S9013, ker sem ga dobil iz starega projekta) in nekaj uporov, ki omejujejo tok. Za začetek najprej identificirajte zbiralnik, oddajnik in osnovo tranzistorja. Nekaj googlanja podatkovnega lista bo delovalo za to. Nato zbiralnik tranzistorja spajkajte na negativni priključek brenčalnika. Na pozitivnem priključku brenčalca smo mu le spajkali kos žice, da ga lahko kasneje spajkamo na naš Arduino. Po tem prilepite upor 500R (ali katero koli podobno vrednost upora) na osnovo tranzistorja in iz upora, spajkajte še en kos žice za prihodnjo uporabo. Na koncu dva zaponka 10R zaporedno zapojite z oddajnikom tranzistorja in priključite drugo žico iz uporov.
Res, glej shemo.
p/s: V času pisanja tega še vedno ne vem, kako izbrati upor za tranzistor. Vrednost, ki sem jo uporabil, je izbrana empirično.
3. korak: Priprava LED plošče
LED -diode in upor ustrezno priklopite v prototipno ploščo in spajkajte. To je to. Sledite shemi. Če vas zanima razmik, ki sem ga uporabil, 3 luknje narazen za vsak stolpec in dve luknji narazen za vsako vrstico (glejte sliko). In indikatorska LED? Naključno sem ga priključil.
Ko spajate LED in upor na ploščo, povežite vse pozitivne sponke LED. Nato spajajte žice eno za drugo na vsak upor na negativnih sponkah LED, da jih lahko kasneje spajkamo na Arduino.
OPOMBA: Ta korak se lahko zmede. Ne pozabite, da namesto da vse ozemljitve povežemo, povežemo vse pozitivne sponke skupaj in negativni terminal s posameznim zatičem na Arduinu. Tako za ozemljitev uporabljamo pin Arioino GPIO, ne Vcc. Če slučajno priključite nazaj, ne skrbite. V funkciji ledcontrol lahko spremenite vse vrednosti HIGH do LOW in LOW do HIGH.
4. korak: Priprava stikala (dejansko gumb)
Za stikalo (imenoval ga bom stikalo, ker sem uporabil mikro stikalo, vendar veste, da je to gumb), potrebujemo 4k7 spustni upor in seveda samo stikalo. Ah, ne pozabite pripraviti nekaj žic. Začnite tako, da upor in kos žice spajkate na skupno maso (COM) mikro stikala. Nato prilepite še en kos žice na normalno odprt (NO) mikro stikala. Na koncu na upor priključite še eno žico. Zavarujte ga z vročim lepilom.
Kotiček znanja: Zakaj potrebujemo spustni upor?
"Če odklopite digitalni V/I pin od vsega, lahko LED neredno utripa. To je zato, ker je vhod" lebdeč " - to pomeni, da se bo naključno vrnil bodisi VISOKO ali NIZKO. Zato potrebujete vlečni ali izvlečni upor v tokokrogu. " - Vir: Arduino spletno mesto
5. korak: Priprava LED traku
LED trak je namenjen stranski svetilki, ki ni obvezna. Samo zaporedno povežite LED trak in drsno stikalo, nič posebnega.
6. korak: Priprava senzorja kapacitivnosti
Ok glej sliko. V bistvu bomo žico pritrdili na majhen kos aluminijaste folije (ker aluminijaste folije ni mogoče spajkati), nato pa jo pritrditi na majhen kos montažne plošče. Lep opomnik, pazite, da aluminijaste folije ne zalepite popolnoma. Del tega pustite izpostavljenega za neposreden stik.
7. korak: Priprava napajalnika
Ker sem za napajanje uporabljal li-on baterijo, potrebujem modul TP4056 za polnjenje in zaščito ter ojačevalni pretvornik za pretvorbo napetosti v 9v. Če ste se odločili za uporabo 9V stenskega adapterja, boste morda potrebovali vtičnico DC ali pa jo preprosto priključite. Upoštevajte, da je vrednost upora za ojačevalnik zasnovana za 9 V in če želite uporabiti drugo napetost, boste morda morali upor spremeniti.
8. korak: Povežite jih z Arduinom
Sledite shemi! Sledite shemi! Sledite shemi!
Ne priključite napačnega zatiča, sicer bo postalo čudno.
9. korak: ohišje
Dimenzija moje zasnove je 6,5 cm*6,5 cm*8 cm, zato je nekoliko obsežna. Sestavljeno je iz sprednjega okna za LED zaslon in zgornjega okna za nočno svetilko. Za moj dizajn si oglejte slike.
10. korak: Čas programiranja
Prenesite mojo skico spodaj in jo naložite v svoj Arduino. Če ne veste, kako to storiti, se nikar ne lotite tega projekta! Ne, hecam se, tukaj je dobra vadnica: naložite skico v arduino
Nato odprite serijski monitor in videli boste, da prikazuje trenutni čas. To nastavite tako, da nastavite čas.
Za nastavitev ure: h, XX - kjer je xx trenutna ura
Za nastavitev minute: min, XX - xx je trenutna minuta
Za nastavitev sekunde: s, XX
Za nastavitev datuma: d, XX
Za nastavitev meseca: pon, XX
Ko je zgornji komentar izveden, vam mora vrniti vrednost, ki ste jo pravkar nastavili. (Na primer, ko nastavite uro s h, 15, mora vrniti uro: 15 na serijskem monitorju.
Za senzor kapacitivnosti ga boste morda morali umeriti, preden bo deloval. Če želite to narediti, dvakrat pritisnite mikro stikalo in poglejte v serijski monitor. Izpisati mora kup številk. Zdaj postavite prst na senzor kapacitivnosti in si oglejte obseg številke. Nato spremenite spremenljivko "captrigger". Recimo, da ob pritisku dobite 20-30, nato nastavite captrigger na 20.
Skica uporablja knjižnico ADCTouch, preverite, ali ste jo namestili.
11. korak: Popravljalni mehanizem
Časovno obdobje za korektivni mehanizem v moji kodi je nastavljeno na tisto, ki je zame natančno. Če čas še vedno ni točen, morate spremeniti vrednost spremenljivke "corrdur"
Corrdur je v zadnji posodobitvi privzeto nastavljen na 0.
Vrednost corrdur pomeni, koliko milisekund traja, da upočasnite eno sekundo
Če želite izvedeti vrednost corrdurja, uporabite formulo:
2000/(y-x)/x)
kjer je x = dejansko trajanje pretečenega časa in y = trajanje pretečenega časa ure, tako v sekundi
Če želite ugotoviti vrednost x in y, morate narediti majhen poskus.
Čas ure nastavite na dejanski čas in zabeležite začetni čas (dejanski začetni čas in začetni čas ure morata biti enaka). Čez nekaj časa (nekaj ur) zabeležite končni dejanski čas in končni čas ure.
x = dejanski končni čas-začetni čas in y = ura končni čas-začetni čas
Nato spremenite vrednost corrdurja v kodi in jo znova naložite v Arduino.
Nato ponovite test in tokrat se je formula spremenila v:
2000/((2/z)+(y-x/x))
Kjer sta x in y enaka kot prej, z pa trenutna vrednost korrdurja.
Naložite znova in ponovite test, dokler vam ne bo dovolj natančen.
V primeru, da se vaša ura še vedno pospešuje, je tudi corrdur nastavljen na 0 (pomeni, da ni popravnega mehanizma), morate spremeniti drugo ++ na drugo- v delu kode v korektivnem mehanizmu (komentiral sem jo), nastavite corrdur na 0, potem poišči št. milisekunde, da pospešite eno sekundo.
12. korak: Kako uporabljati vse funkcije
Način lahko spremenite s pritiskom na mikro stikalo.
V prvem načinu preprosto prikaže čas. Če kontrolna lučka utripa enkrat na sekundo, je alarm izklopljen. Če 2 -krat na sekundo, je alarm vklopljen. Alarm lahko v prvem načinu preložite za 10 minut s pritiskom na senzor kapacitivnosti.
V drugem načinu prikaže datum. S pritiskom na kapacitivni senzor ne naredite nič.
V tretjem načinu lahko nastavite časovnik. S pritiskom na senzor kapacitivnosti se bo vklopil časovnik in prikazal bo lučka, ki je začela utripati. Senzor kapacitivnosti se uporablja tudi za nastavitev časa časovnika. Časovnik je od 1 minute do 59 minut.
V četrtem načinu lahko nastavite uro alarma s senzorjem kapacitivnosti
V petem načinu lahko nastavite minuto alarma s senzorjem kapacitivnosti.
V šestem načinu pritiska na kapacitivni senzor ponastavite minuto na 30 in sekundo na 0 brez spreminjanja ure. To pomeni, da dokler se vaša ura ne premika več kot 30 minut, jo lahko znova umerite s tem načinom.
Sedmi način je način »ne naredi nič«, če senzor kapacitivnosti med polnjenjem izpade.
Oh, če želite opustiti alarm, samo pritisnite mikro stikalo. (NAJNOVEJŠE POSVEŠEVANJE, DA VKLJUČUJE ALOGNO SNOOZE)
Kaj pa branje ure? To je enostavno! Branje binarne ure - Wikihow Morda se boste sprva počutili čudno, vendar se boste tega navadili!
13. korak: Zaključek
Zakaj sem začel ta projekt. Sprva je to zato, ker imam naokoli staro digitalno uro in jo želim spremeniti v budilko. Na žalost se je stara ura pokvarila. Tako sem si mislil, zakaj ne bi zgradil enega z uporabo Arduina? Z malo Googlovega iskanja sem našel ta projekt binarne ure brez RTC -ja, ki ga je poučil Cello62. Vendar pa nima želene funkcije budilke, zato vzamem kodo in jo spremenim sam. In projekt se je rodil. Poleg tega sem pred kratkim videl, da tekmovanje v urah poteka po navodilih, kar mi je dalo še več motivacije za to. Kakorkoli že, to je še vedno moj prvi projekt z uporabo Arduina, zato kup možnih izboljšav.
Prihodnje izboljšanje:
1) Uporabite RTC
2) Brezžično nastavite alarm ali čas ali časovnik!
3) Ne glede na funkcijo, na katero pomislim
14. korak: Posodobitev: po enem tednu uporabe
Poleg očitne težave - časovni odmik, bi rekel, da je naslednja poraba energije. Najprej povečam napetost do 9v, ki jo bo linearni regulator v Arduinu nato znižal. Linearni regulator je zelo neučinkovit. Ura traja le EN DAN. To pomeni, da ga moram vsak dan polniti. To ni največji posel, dokler ne ugotovite, da je celoten sistem le približno 50% učinkovit. Glede na to, da je moja baterija 2000mAh, bi lahko vsak dan izračunal porabo energije.
Poraba energije = (7,4Wh*10%)+(7,4Wh*90%*50%) = 4,07Wh na dan
To je 1.486 kWh na leto! To lahko uporabimo za kuhanje 283 g vode (od 25 C do 100 C)? Vseeno bom izboljšal učinkovitost ure. To lahko storite tako, da linearnega regulatorja sploh ne uporabljate. To pomeni, da moramo ojačevalni pretvornik prilagoditi za izhod 5V neposredno v 5V pin na Arduinu. Nato, da še dodatno zmanjšam porabo energije, moram odstraniti dve vgrajeni LED (pin13 in napajanje), saj bosta porabili 0,95 Wh na dan. Na žalost nisem popolnoma sposoben spajkanja SMD, zato je edini način, da to storim, to, da odrežem tirnico na plošči. Po tem moram odstraniti oddajniški upor na zvočniku in nočno svetilko (LED trak ne deluje pri 5V). Toda ali to pomeni, da se morate odreči tej neverjetni funkciji? Ne! Tu imate dve izbiri: uporabite običajno 5 mm LED diodo ali uporabite 5V LED trak. Toda zame sem se že počutil utrujeno, ker sem ves ta teden delal ta projekt, zato sem se odločil, da se tej funkciji odrečem. Vendar sem prvotno uporabil stikalo za funkcijo svetlobe za vklop ali izklop plošče ure za nadaljnji prihranek energije, vendar LED na koncu utripa, ko ga izklopim. Je hrošč postala funkcija? Ne vem (kdo ve, naj mi pove spodaj).
Na koncu spremembe ura zdaj traja več kot 2 dni!
Naslednjič imam manj resne težave z uro. Med polnjenjem bi senzor kapacitete ponorel, zato dodam še en način, ki ne naredi popolnoma nič.
Kar zadeva časovni premik, ker je zelo neprijetno, da se vsak dan povežete z računalnikom, da ga ponastavite, sem dodal še en način, ki bo nastavil minuto na 30 in sekundo na 0. To pomeni, da jo lahko ponastavite ob pol druge ure!
Priporočena:
Mikro binarna ura: 10 korakov (s slikami)
Mikro binarna ura: Predhodno je bil ustvarjen Instructable (Binary DVM), ki uporablja omejeno območje prikaza z uporabo binarnega sistema.To je bil le majhen korak, ko smo predhodno ustvarili glavni kodni modul za decimalno v binarno pretvorbo do ustvarjanja binarne ure, t
Vrhunska binarna ura: 12 korakov (s slikami)
Ultimate Binary Watch: Pred kratkim sem se seznanil s konceptom binarnih ur in začel raziskovati, ali bi si zgradil enega zase. Vendar nisem mogel najti obstoječega dizajna, ki bi bil hkrati funkcionalen in eleganten. Tako sem se odločil
Pametna budilka: pametna budilka iz Raspberry Pi: 10 korakov (s slikami)
Pametna budilka: pametna budilka iz Raspberry Pi: Ste si kdaj želeli pametno uro? Če je tako, je to rešitev za vas! Naredil sem pametno budilko, to je ura, ki jo lahko spremenite glede na spletno stran. Ko se alarm sproži, bo zaslišal zvočni signal in dve lučki bosta
Arduino binarna ura - 3D natisnjena: 5 korakov (s slikami)
Arduino Binary Clock - 3D Printed: Že nekaj časa iščem binarne ure za svojo pisarniško mizo, vendar so precej drage in / ali nimajo velike količine funkcij. Zato sem se odločil, da bom namesto tega naredil enega. Ena stvar, ki jo je treba upoštevati pri izdelavi ure, Arduino / Atmega328
Binarna budilka na osnovi Arduino: 13 korakov (s slikami)
Binarna budilka na osnovi Arduina: Hej, danes bi vam rad pokazal, kako zgraditi enega od mojih najnovejših projektov, svojo binarno budilko. Na internetu je na tone različnih binarnih ur, vendar je to dejansko lahko prva, narejena iz traku pisanih naslovljivih LED,