Sisukord:
- Tarvikud
- Samm: ühendage vooluring
- 2. samm: summeri osa ettevalmistamine
- Samm: LED -paneeli ettevalmistamine
- Samm: lüliti ettevalmistamine (tegelikult nupp)
- Samm: LED -riba ettevalmistamine
- 6. samm: mahtuvusanduri ettevalmistamine
- Samm: toiteallika ettevalmistamine
- Samm: ühendage need Arduinoga
- 9. samm: ümbris
- 10. samm: aja programmeerimine
- 11. samm: parandusmehhanism
- 12. samm: kuidas kasutada kõiki funktsioone
- 13. samm: järeldus
- 14. samm: värskendamine: pärast ühe nädala kasutamist
Video: DIY Arduino binaarne äratuskell: 14 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
See on jälle klassikaline binaarkell! Seekord aga veelgi suurema lisafunktsiooniga! Selles juhendis näitan teile, kuidas ehitada Arduinoga binaarne äratuskell, mis näitab teile mitte ainult kellaaega, vaid kuupäeva, kuud, isegi taimeri ja äratusfunktsioonidega, mida saab kasutada ka öölambina! Ilma pikema jututa alustame!
Märkus. See projekt ei kasuta RTC -moodulit, nii et täpsus sõltub kasutatavast tahvlist. Olen lisanud parandusmehhanismi, mis korrigeerib ajanihet teatud aja jooksul, kuid peate ajavahemiku õige väärtuse leidmiseks katsetama (selle kohta lähemalt allpool) ja isegi parandusmehhanismi korral triivib see ikkagi pika aja jooksul (kui võrrelda ilma selleta). Kui keegi on huvitatud, rakendage selles projektis RTC -mooduli kasutamine
Tarvikud
5 mm LED (mis tahes värvi, kasutasin 13 valget LED-i koos ühe RGB LED-ga indikaatorina) --- 14 tk
Arduino Nano (teised võivad töötada) --- 1 tk
Mikrolüliti --- 1 tk
Väike tükk alumiiniumfooliumi
Paigalduslaud (korpuse jaoks, kuid kujundage julgelt oma)
Tükk valget paberit (või muud värvi)
Mõni plastkile (seda kasutatakse raamatu kaanena)
Hunnik juhtmeid
Signaal --- 1 tk
NPN transistor --- 1tk
Takistid 6k8 --- 14 tk, 500R --- 1 tk, 20R (10Rx2) --- 1 tk, 4k7 --- 1tk
Projekti toiteallikas (kasutasin liitiumakut)
5050 LED -riba ja liuglüliti (valikuline)
Samm: ühendage vooluring
Jagan selle sammu järgmisteks osadeks:
1) summeri osa
2) LED -paneel
3) Lüliti (nupp)
4) LED -riba
5) mahtuvusandur
6) Toide
7) Ühendage need kõik Arduinoga
Enamasti on see lihtsalt "järgige skemaatilist" sammu. Nii et vaadake ülaltoodud skeemi või isegi laadige see alla ja printige!
2. samm: summeri osa ettevalmistamine
Kui olete varem Arduinoga helisignaali kasutanud, teate, et kui ühendame selle otse Arduinoga, pole see piisavalt vali. Seega vajame võimendit. Võimendi konstrueerimiseks vajame NPN -transistorit (põhimõtteliselt töötab iga NPN, ma kasutasin S9013, kuna sain selle vanast projektist) ja mõnda takisti, et voolu piirata. Alustuseks tuvastage esmalt transistori kollektor, emitter ja alus. Natuke andmelehe guugeldamist aitab see. Seejärel jootke transistori kollektor summeri negatiivse klemmi külge. Signaali positiivses klemmis jootame selle külge lihtsalt traaditüki, et saaksime selle hiljem oma Arduino külge jootma hakata. Pärast seda jootke takisti 500R (või mis tahes sama väärtusega takisti) transistori alusele ja takistist, jootke teine traat, et seda tulevikus kasutada. Lõpuks jootke kaks 10R takistit järjestikku transistori emitteriga ja ühendage takistitest veel üks juhe.
Tõesti, vaadake skeemi.
p/s: Seda kirjutades ei tea ma siiani tegelikult, kuidas valida transistorile takisti. Minu kasutatav väärtus valitakse empiiriliselt.
Samm: LED -paneeli ettevalmistamine
Ühendage valgusdioodid ja takisti vastavalt prototüüpimisplaadile ja jootke. See on kõik. Järgige skeemi. Kui olete huvitatud minu kasutatavast vahekaugusest, tehke iga veeru jaoks 3 auku ja iga rea jaoks kaks auku (vt pilti). Ja indikaator LED? Ühendasin selle juhuslikult.
Pärast valgusdioodide ja takisti jootmist plaadile ühendage kõik valgusdioodide positiivsed klemmid kokku. Seejärel jootke juhtmed ükshaaval iga LED -i negatiivsete klemmide takisti juurde, et saaksime need hiljem Arduino külge jootma hakata.
MÄRKUS. See samm võib teid segadusse ajada. Pidage meeles, et kogu maanduse ühendamise asemel ühendame kõik positiivsed klemmid ja negatiivse klemmi Arduino üksiku tihvtiga. Seega kasutame maapinnana Arduino GPIO tihvti, mitte Vcc -d. Kui ühendate selle kogemata tahapoole, ärge muretsege. LED -juhtimisfunktsioonis saate muuta kõik HIGH olekuks LOW ja LOW to HIGH.
Samm: lüliti ettevalmistamine (tegelikult nupp)
Lüliti jaoks (ma nimetan seda lülitiks, sest ma kasutasin mikrolülitit, aga teate, et see on nupp), vajame 4k7 tõmbetakistit ja muidugi lülitit ennast. Ah, ärge unustage juhtmeid ette valmistada. Alustuseks jootke takisti ja juhtmetükk mikrolüliti ühisesse maasse (COM). Seejärel jootke teine juhtmetükk mikrolüliti normaalselt avatud (NO) külge. Lõpuks kinnitage takisti külge veel üks traat. Kinnitage see kuuma liimiga.
Teadmiste nurk: miks me vajame tõmbetakistit?
"Kui ühendate digitaalse sisend-/väljundpistiku kõigest lahti, võib valgusdiood vilguda ebaühtlaselt. Seda seetõttu, et sisend on" hõljuv " - see tähendab, et see naaseb juhuslikult kas kõrgele või madalale. Sellepärast vajate tõmbamist või ahelas olev tõmbetakisti. " - Allikas: Arduino veebisait
Samm: LED -riba ettevalmistamine
LED -riba on voodi küljelambi jaoks, mis on valikuline. Lihtsalt ühendage LED -riba ja liuglüliti järjestikku, pole midagi erilist.
6. samm: mahtuvusanduri ettevalmistamine
Ok, vaata pilti. Põhimõtteliselt kinnitame traadi väikese alumiiniumfooliumi tüki külge (kuna alumiiniumfooliumi ei saa joota), seejärel kleepige see teibile väikese kinnitusplaadi külge. Meeldetuletus, veenduge, et te ei kleepiks alumiiniumfooliumi täielikult kinni. Jätke osa sellest otseseks kontaktiks.
Samm: toiteallika ettevalmistamine
Kuna kasutasin toiteallikana liitiumakut, vajan laadimiseks ja kaitseks TP4056 moodulit ning pingemuundurit pinge 9v muundamiseks. Kui otsustasite kasutada 9 V seinaadapterit, võib teil olla vaja alalisvoolu pistikut või lihtsalt ühendada see otse. Pange tähele, et võimendi takisti väärtus on kavandatud 9 V jaoks ja kui soovite kasutada muud pinget, peate võib -olla takistit vahetama.
Samm: ühendage need Arduinoga
Järgige skeemi! Järgige skeemi! Järgige skeemi!
Ärge ühendage vale tihvti, muidu lähevad asjad imelikuks.
9. samm: ümbris
Minu disaini mõõtmed on 6,5 cm*6,5 cm*8 cm, seega on see pisut mahukas. See koosneb LED -ekraani esiaknast ja öölambi ülemisest aknast. Minu kujunduse jaoks vaadake pilte.
10. samm: aja programmeerimine
Laadige alla minu eskiis ja laadige see üles oma Arduino. Kui te ei tea, kuidas seda teha, ärge viitsige seda projekti teha! Nali naljaks, siin on hea õpetus selle kohta: laadige eskiis üles arduino
Seejärel avage seeriamonitor ja peaksite nägema, et see väljastab praeguse aja. Kellaaja määramiseks toimige järgmiselt.
Tunni seadmiseks: h, XX - kus xx on praegune tund
Minuti seadmiseks: min, XX - xx on praegune minut
Teiseks seadmiseks: s, XX
Kuupäeva määramiseks: d, XX
Kuu määramiseks: esmaspäev, XX
Kui ülaltoodud kommentaar täidetakse, peaks see teile tagastama just määratud väärtuse. (Näiteks kui määrate tunni nupuga h, 15, peaks see jadaekraanil tagastama tunni: 15.
Mahtuvusanduri puhul peate võib -olla selle tööks kalibreerima. Selleks vajutage kaks korda mikrolülitit ja vaadake jadamonitori. See peaks väljastama hulga numbreid. Nüüd pange sõrm mahtuvusandurile ja vaadake, kas numbrivahemik on teadlik. Seejärel muutke muutujat "captrigger". Oletame, et vajutades saate 20–30, seejärel määrake captrigger väärtuseks 20.
Visand kasutab ADCTouchi teeki, veenduge, et see oleks installitud.
11. samm: parandusmehhanism
Minu koodi parandusmehhanismi ajavahemik on minu jaoks täpne. Kui aeg pole ikka veel täpne, peate muutuja "corrdur" väärtust muutma
Corrdur on nüüd uusimas värskenduses vaikimisi 0.
Corrduri väärtus tähendab, mitu millisekundit kulub ühe sekundi aeglustamiseks
Corrduri väärtuse väljaselgitamiseks kasutage valemit:
2000/(y-x)/x)
kus x = möödunud aja tegelik kestus ja y = kellaaja kestus, mõlemad sekundis
X ja y väärtuse leidmiseks peate tegema väikese katse.
Seadistage kellaaeg tegelikule ajale ja salvestage esialgne aeg (tegelik esialgne aeg ja kella algusaeg peaksid olema samad). Mõne aja pärast (mõni tund) registreerige lõplik tegelik aeg ja kella lõplik aeg.
x = tegelik lõplik aeg-esialgne aeg ja y = kella lõplik aeg-algusaeg
Seejärel muutke koodis corrduri väärtust ja laadige uuesti Arduino.
Seejärel korrake testi ja seekord muutus valem järgmiselt:
2000/((2/z)+(y-x/x))
Kus x ja y on sama asi nagu varem, samas kui z on praegune korrduri väärtus.
Laadige uuesti üles ja tehke testi ikka ja jälle, kuni see on teie jaoks piisavalt täpne.
Juhul, kui teie kell ikka kiirendab, isegi kui Corrdur on seatud väärtusele 0 (tähendab, et parandusmehhanismi pole), peate muutma koodi+ parandusmehhanismis teise ++ sekundiks (kommenteerisin seda), määrama corrdur väärtuseks 0, siis leidke nr. millisekundist kulub ühe sekundi kiirendamiseks.
12. samm: kuidas kasutada kõiki funktsioone
Režiimi saate muuta, vajutades mikrolülitit.
Esimesel režiimil kuvab see lihtsalt aega. Kui märgutuli vilgub 1 kord sekundis, on alarm välja lülitatud. Kui 2 korda sekundis, on alarm sisse lülitatud. Esimeses režiimis saate äratuse 10 minutiks edasi lükata, vajutades mahtuvusandurit.
Teisel režiimil kuvatakse kuupäev. Mahtuvusanduri vajutamine ei tee midagi.
Kolmandas režiimis saate taimeri seadistada. Vajutades mahtuvusandurit, lülitatakse taimer sisse ja peaksite nägema, et indikaatortuli hakkab vilkuma. Mahtuvusandurit kasutatakse ka taimeri aja seadmiseks. Taimeri vahemik on 1 minut kuni 59 minutit.
Neljandal režiimil saate äratustunde määrata mahtuvusanduri abil
Viiendal režiimil saate äratusminutit määrata mahtuvusanduri abil.
Kuuendal režiimil nullitakse mahtuvusanduri vajutamisel minut 30 -le ja sekund 0 -le ilma tunde muutmata. See tähendab, et kui teie kell ei liigu üle 30 minuti, saate selle režiimi abil uuesti kalibreerida.
Seitsmes režiim on mitte midagi tegemise režiim juhuks, kui mahtuvusandur laadimise ajal välja kukub.
Äratuse lõpetamiseks vajutage lihtsalt mikrolülitit. (VIIMANE VÄRSKENDUS, MIS KAASAB ALARM SNOOZE)
Kuidas oleks kella lugemisega? See on lihtne! Binaarkella lugemine - Wikihow Esialgu võite end imelikult tunda, kuid hakkate sellega harjuma!
13. samm: järeldus
Miks ma selle projektiga alustasin. Esialgu on see sellepärast, et mul on vana digikell, mis lamab, ja ma tahan selle äratuskellaks muuta. Kahjuks osutus vana kell katki. Nii et ma mõtlesin, miks mitte ehitada seda Arduino abil? Veidi google'i otsingu abil leidsin selle binaarkella projekti ilma RTC -ta Cello62 juhendamisel. Sellel pole aga soovitud äratuskella funktsiooni, seega võtan koodi ja muudan seda ise. Ja projekt sünnib. Lisaks nägin hiljuti kellavõistlust juhendatavalt, mis andis mulle veelgi rohkem motivatsiooni seda teha. Igatahes on see ikkagi minu esimene Arduino kasutav projekt, nii et hulgaliselt võimalikke täiustusi.
Edasine parandamine:
1) Kasutage RTC -d
2) Seadistage äratus või aeg või taimer juhtmevabalt!
3) Ükskõik millist funktsiooni ma mõtlen
14. samm: värskendamine: pärast ühe nädala kasutamist
Lisaks ilmselgele probleemile - aja triivile, oleks järgmine, mida ma ütleksin, energiatarbimine. Esiteks tõstan ma pinge kuni 9 V, mille seejärel Arduino lineaarne regulaator vähendab. Lineaarne regulaator on väga ebaefektiivne. Kell kestab vaid ÜKS PÄEV. See tähendab, et pean seda iga päev laadima. See pole suurim tehing enne, kui mõistate, et kogu süsteem on ainult umbes 50% tõhusam. Arvestades, et mu aku on 2000 mAh, suudaksin arvutada iga päev raisatud energiat.
Energia raiskamine = (7.4Wh*10%)+(7.4Wh*90%*50%) = 4.07Wh päevas
See on 1,486 kWh aastas! Seda saab kasutada 283 g vee (25 ° C kuni 100 ° C) keetmiseks? Aga igal juhul parandan ma kella efektiivsust. Selleks tuleb lineaarset regulaatorit üldse mitte kasutada. See tähendab, et peame reguleerima võimendusmuundurit 5V väljundiks otse Arduino 5V kontakti. Järgmiseks, et raisatud energiat veelgi minimeerida, pean eemaldama kaks pardal olevat LED -i (pin13 ja toide), kuna need raiskavad 0,95 Wh päevas. Kahjuks olen SMD jootmisel täiesti noob, nii et ainus viis seda teha on laua rööpa lõikamine. Pärast seda pean eemaldama helisignaali takisti summutil ja öölambi (LED -riba ei tööta 5 V juures). Kuid kas see tähendab, et peate sellest hämmastavast funktsioonist loobuma? Ei! Siin on teil kaks valikut: kasutage tavalist 5 mm LED -dioodi või 5 V LED -riba. Kuid minu jaoks tundsin end juba väsinud selle projekti tegemisel terve eelmise nädala, nii et otsustasin sellest funktsioonist loobuda. Energia säästmiseks kasutasin siiski kellapaneeli sisse- või väljalülitamiseks algselt valgusfunktsiooni jaoks mõeldud lülitit, kuid lõpuks lülitan LED välja, kui selle välja lülitan. Bug muutunud funktsiooniks? Ma ei tea (keegi teab, palun öelge mulle allpool).
Muudatuse lõppedes kestab kell nüüd üle 2 päeva!
Järgmisena on mul kellaga vähem tõsine probleem. Laadimise ajal läheks mahtuvusandur hulluks, nii et lisan veel ühe režiimi, mis ei tee midagi.
Mis puutub aja triivimisse, siis kuna selle lähtestamiseks on arvutiga iga päev väga ebamugav ühendada, olen lisanud veel ühe režiimi, mis määrab minutiks 30 ja sekundiks 0. See tähendab, et saate selle igal pool tundi tagasi nullida!
Soovitan:
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: 10 sammu (koos piltidega)
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: kas olete kunagi tahtnud nutikat kella? Kui jah, siis see on teie jaoks lahendus! Ma tegin nutika äratuskella, see on kell, mille abil saate äratusaega vastavalt veebisaidile muuta. Kui äratus hakkab tööle, kostab heli (sumin) ja 2 tuld
Binaarne töölaud: 9 sammu (piltidega)
Binaarne töölauakell: Binaarkellad on suurepärased ja mõeldud ainult inimesele, kes teab binaarfaili (digitaalseadmete keelt). Kui olete tehnik, on see imelik kell teie jaoks. Niisiis, tehke üks ise ja hoidke oma aega saladuses! Leiad palju binaarset c
Binaarne LED -marmorkell: 6 sammu (piltidega)
Binaarne LED -marmorkell: nüüd arvan, et peaaegu kõigil on binaarne kell ja siin on minu versioon. Mulle meeldis see, et see projekt ühendas puidutööd, programmeerimise, õppimise, elektroonika ja võib -olla lihtsalt väikese kunstilise loovuse. See näitab kellaaega, kuud, kuupäeva, päeva
Digitaalne ja binaarne kell 8 -kohalises X 7 segmendi LED -ekraanis: 4 sammu (piltidega)
Digitaalne ja binaarne kell 8 -kohalises X 7 segmendi LED -ekraanis: see on minu täiendatud versioon digitaalsest & Binaarkell, mis kasutab 8 -kohalist ja 7 -segmendilist LED -ekraani. Mulle meeldib anda tavapärastele seadmetele uusi funktsioone, eriti kellasid, ja sel juhul on binaalkella jaoks 7 Seg -ekraani kasutamine ebatavaline ja see
Arduino põhine binaarne äratuskell: 13 sammu (piltidega)
Arduino põhine binaarne äratuskell: Hei, täna tahaksin teile näidata, kuidas ehitada ühte oma viimastest projektidest, oma binaarsest äratuskellast. Internetis on palju erinevaid binaarkellasid, kuid see võib tegelikult olla esimene, mis on valmistatud värviliste adresseeritavate valgusdioodide ribast