Sisukord:

Arduino põhine binaarne äratuskell: 13 sammu (piltidega)
Arduino põhine binaarne äratuskell: 13 sammu (piltidega)

Video: Arduino põhine binaarne äratuskell: 13 sammu (piltidega)

Video: Arduino põhine binaarne äratuskell: 13 sammu (piltidega)
Video: Счетчик оборотов, использование arduino 2024, Juuli
Anonim
Image
Image

Jälgige rohkem autorit:

DIY Laser People Counter
DIY Laser People Counter
Isesõitva paadi ehitamine (ArduPilot Rover)
Isesõitva paadi ehitamine (ArduPilot Rover)
Isesõitva paadi ehitamine (ArduPilot Rover)
Isesõitva paadi ehitamine (ArduPilot Rover)
Täiuslik öölamp ja telefonidokk
Täiuslik öölamp ja telefonidokk
Täiuslik öölamp ja telefonidokk
Täiuslik öölamp ja telefonidokk

Teave: Tere, minu nimi on Jan ja ma olen tegija, mulle meeldib ehitada ja asju luua ning olen ka üsna hea asjade parandamisel. Kuna ma võin arvata, et mulle on alati meeldinud uute asjade loomine ja ma teen seda seni, kuni … Lisateavet keldritehnoloogia kohta »

Hei, täna tahaksin teile näidata, kuidas ehitada ühte oma viimast projekti, oma binaarset äratuskella.

Internetis on palju erinevaid binaarkellasid, kuid see võib tegelikult olla esimene, mis on valmistatud värviliste adresseeritavate LED -ribade ribast, millel on ka äratusfunktsioon ja puutetundlikud nupud, et määrata näiteks kellaaeg ja värv.

Palun ärge laske selle keerulisel väljanägemisel end eemale peletada. Väikese selgitusega pole binaarse lugemine tegelikult nii raske, kui tundub. Ja kui olete valmis midagi uut õppima, tahaksin teid hiljem aidata.

Räägin teile natuke selle projekti loost:

Algselt plaanisin ehitada "tavalise" kella, mis kasutab LED -e oma kätena, kuid mul polnud piisavalt LED -e käepärast.

Mida sa siis teed, kui tahad kuvada aega võimalikult väheste valgusdioodidega?

Te lähete binaarseks ja just seda ma siin tegin.

See kell on omalaadne kolmas versioon. Ehitasin väga lihtsa prototüübi kohe pärast seda, kui projektiidee mind tabas, ja viisin selle Hannoveri Maker Faire'i, et näha, mida inimesed sellest arvavad. Seal viibides sain palju väga positiivset ja huvitavat tagasisidet ning ideid parendamiseks.

Kõigi nende ideede ja tundide pikkuse mõtlemise, nokitsemise ja programmeerimise tulemus on see üsna huvitava välimusega väike äratuskell, millel on palju rohkem funktsioone kui versioonis 1.0 ja täna läbime ehitusprotsessi kõik sammud, nii et saate saate selle hõlpsalt ise ehitada.

Youtube'is on ka väga üksikasjalik video, kui te ei taha kõike lugeda.

Samm: hankige oma asjad

Hankige oma asjad
Hankige oma asjad
Hankige oma asjad
Hankige oma asjad
Hankige oma asjad
Hankige oma asjad

Siin on väike nimekiri kõigist komponentidest ja tööriistadest, mida vajate oma binaarkella ehitamiseks.

Elektroonika:

  • 18 adresseeritavat Ws2811 LED -i (nt neopikslid) ribal, millel on 60 LED -i / m (ebay)
  • Arduino Nano (ATMega328 protsessoriga) (ebay)
  • 1307 RTC moodul (ebay)
  • 4x mahtuvuslikud puutetundlikud nupud (ebay)
  • bs18b20 digitaalne temperatuuriandur (ebay)
  • LDR (ebay)
  • sülearvuti/nutitelefoni kõlar või piesosummer
  • 2222A NPN transistor (või midagi sarnast)
  • meessoost päised
  • nurga all olevad naissoost päised (ebay)
  • 1 kOhm takisti
  • 4, 7 kOhm takisti
  • 10 kOhm takisti
  • Juhtmed
  • 7x5cm prototüüpimine PCB 24x18 auguga (ebay)
  • hõbetraat (ehtetraat) (ebay)
  • 90 ° mini USB -adapter (ebay)

Muud materjalid

  • Vinüülümbris
  • 4X 45mm m4 äärikupea kruvid (ebay)
  • 32X m4 metallist seibid
  • 4X m4 lukustusmutter
  • 28X m4 mutter
  • 4X 10mm m3 messingist trükkplaatide eraldusvõime (ebay)
  • 8X 8mm m3 kruvi (ebay)
  • leht alumiiniumist
  • 2 mm leht piimjas akrüül
  • 2 mm leht läbipaistvast akrüülist
  • 3 mm MDF -leht
  • kahepoolne teip

Tööriistad

  • mini USB kaabel
  • arvuti, kus töötab Arduino IDE
  • 3, 5 mm puur
  • 4,5 mm puur
  • jõutrell
  • lõikamisnuga
  • toimetuleku saag
  • jootmisioon
  • metalli lõikamise käärid
  • faili
  • liivapaber

Mallid (nüüd mõõtmetega)

  • PDF
  • Tasuta Office Draw

Kood

  • Visandid
  • Nuppude kogu
  • Taimeriteek
  • Jukeboxi raamatukogu
  • Muudetud RTClib
  • Adafruit Neopixeli raamatukogu
  • Arduino-temperatuuri kontrolli teek

Samm: lõigake esi- ja tagapaneel

Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel
Lõika esi- ja tagapaneel

Esimene tükk, mille me teeme, on akrüülist esipaneel. Märgime, kuhu tahame, et meie lõiked läheksid, pidades samal ajal silmas, et soovime lihvimisel pisut tolerantsust. Siis kraapime oma lõikenoaga lihtsalt akrüüli. Pärast seda, kui oleme seda teinud 10–20 korda, on meil soon. Seejärel saame selle salu asetada laua servale ja painutada akrüüli, kuni see puruneb.

Pärast esipaneeli suuruse lõikamist lõikame tagapaneeli MDF -tükist välja. Saame selleks kasutada oma toimetussaega, kuid lõikamisnuga töötab ka. Peame MDF -i lihtsalt klammerdama puidutükile ja kraapima seda oma lõikenoaga, kuni tera läheb läbi ja meil on kaks tükki.

Nüüd lihvime kaks paneeli kokku ja lihvime mõlemad pooled ideaalselt.

Kui see on tehtud, lõikasime välja esimese šablooni ja panime selle mõne paneeli abil kahele paneelile ning hakkasime tähistatud auke puurima.

Kõigepealt puurime igasse 4 nurka 4,5 mm augu. Kuna akrüül on väga habras ja me ei taha, et see puruneks, alustame väikese puurvardaga ja liigume ülespoole, kuni saavutame soovitud ava läbimõõdu. Seejärel kasutame malli nurkade lihvimiseks õigele kujule.

Samm: viimistlege tagapaneel

Lõpeta tagapaneel
Lõpeta tagapaneel
Lõpeta tagapaneel
Lõpeta tagapaneel
Lõpeta tagapaneel
Lõpeta tagapaneel
Lõpeta tagapaneel
Lõpeta tagapaneel

Praegu võime esipaneeli kõrvale panna ja kleepida teise malli tagapaneelile, kus peame kasutama 3,5 mm puurit, et puurida augud meie 4 tk eraldusjoonte jaoks, samuti 4 auku, mis tähistavad servi. väikese tagaakna jaoks.

Seejärel kasutame oma toimetussaega akna välja lõikamiseks ja servade tasandamiseks viiliga. Samuti ei taha unustada mini -USB -kaablile augu puurimist (kuulsin ühest mitte nii keskendunud tootjast, kes kipub selliseid asju tegema: D).

Kuna oleme tagapaneeli lõikamise lõpetanud, võime jätkata selle vinüülpakendisse mähkimist. Me lihtsalt lõikame kaks tükki õige suurusega ja rakendame esimese ühele küljele. Seejärel lõikame veljed ära ja vabastame akna. Föön võib aidata kõik augud uuesti nähtavaks teha, nii et saame need ka välja lõigata. Pärast seda, kui oleme teinud sama asja ka teise poole jaoks, kasutame oma tagapaneeli väikese akrüülakna valmistamiseks järgmist malli ja kraapimis- ja purustustehnikat.

Samm: valmistage LED -paneel

Tehke LED -paneel
Tehke LED -paneel
Tehke LED -paneel
Tehke LED -paneel
Tehke LED -paneel
Tehke LED -paneel

Nüüd jõuame selle projekti tipphetkeni selle kõige otsesemas mõttes. LED paneel.

Kasutame metallilõikekääridega metalllehest 12,2x8 cm suurust tükki. Olge seda tehes ettevaatlik, kuna käärid tekitavad väga teravaid servi. Me silume neid oma faili ja liivapaberiga. Seejärel lisame kruvide ja juhtmete jaoks aukude puurimiseks järgmise malli.

Aeg valmistada ette tegelikud LED -id.

Esiteks lõikasime need kolmeks 6 LED -ribaks. Mõnel LED -ribal on väga õhuke liimikiht või see pole üldse liimitud, nii et me kleepime oma ribad kahepoolse teibi tükile ja lõikame selle noaga parajaks. See kleepub metallplaadile ja kuigi see pole professionaalne lahendus, isoleerib vaskpadjad selle all oleva metallpinna küljest.

Enne ribade paneelile kleepimist puhastame selle alkoholiga. LEDide kinnitamise ajal peame veenduma, et paneme need õigesse kohta ja õiges suunas. LED -riba väikesed nooled näitavad suunda, milles andmed riba kaudu liiguvad.

Nagu näete viiendal pildil, pärineb meie andmerida paneeli vasakust ülanurgast, läbib esimese riba kuni parema küljeni, kui tagasi järgmise riba algusesse vasakul ja nii edasi. Nii et kõik meie nooled peavad osutama paremale küljele.

Kuumutame oma jootmisiooni ja paneme tina vaskpadjadele ja ka traadile. Andmeliinid on ühendatud, nagu ma just kirjeldasin, samal ajal kui me lihtsalt ühendame riba pluss- ja miinuspadjad paralleelselt üles.

Pärast ribade ühendamist tõstame oma noaga hoolikalt iga riba otsad, hoides samal ajal LED -e all, nii et need on endiselt ülespoole suunatud. Seejärel panime jootmisühenduste isoleerimiseks alla kuuma liimi.

Kui see on tehtud ja lisame PCB -le minevatele juhtmetele mõned päise tihvtid. Need juhtmed peaksid olema umbes 16 cm pikad. Et olla eriti kindel, et metallpaneel ei oota midagi, kasutame kõigi tihvtide vahelise takistuse mõõtmiseks multimeetrit. Kui see näitab midagi üle 1 kOhm, on kõik korras.

Nüüd saame selle ühendada Arduinoga, käivitada suundtesti ja nautida värve.

Samm: tehke valgusjuhend

Tehke valgusjuhend
Tehke valgusjuhend
Tehke valgusjuhend
Tehke valgusjuhend
Tehke valgusjuhend
Tehke valgusjuhend
Tehke valgusjuhend
Tehke valgusjuhend

Kui paneme oma LED -paneeli piimjas akrüüli taha, võib üksikute LED -ide eristamine muutuda üsna keeruliseks. See muudaks meie kella lugemise veelgi raskemaks kui see juba praegu on.

Selle probleemi lahendamiseks teeme endale väikese valgusjuhendi. Selleks lõikasime lihtsalt välja teise MDF -plaadi, mis on sama suur kui esipaneel. Seejärel lisame sellele veel ühe malli ja puurime kaheksateist 3, 5 mm auku LED -ide jaoks ning neli 4, 5 mm auku kruvide jaoks. Seejärel saame selle kinnitada esipaneeli külge ja nende kahe joondamiseks kasutada liivapaberit.

Nagu näete viimasel pildil, tundub valgus praegu palju keskendunum.

6. samm: valmistage nupuraam

Tehke nuppude raam
Tehke nuppude raam
Tehke nuppude raam
Tehke nuppude raam
Tehke nuppude raam
Tehke nuppude raam

Viimane korpuse komponent, mille me valmistame, on nuppude raam.

Lõikame jälle tükid MDF -plaati paraja suurusega ja lisame sellele malli, seejärel puurime kõik vajalikud augud ja kasutame oma toimetussaega keskmise osa väljalõikamiseks.

Meie raam peaks hoidma paigas 4 puutetundlikku nuppu, valgusandurit ja väikest kõlarit. Enne kui saame need raami külge kinnitada, lõikasime MDF -ist välja paar väiksemat katetükki. Seejärel liimime oma komponendid nende katete külge kuumliimiga ja lisame neile juhtmed.

Puutenupu toiteplokid on ühendatud paralleelselt, samal ajal kui iga väljundliin saab eraldi juhtme. See on ka hea hetk testida, kas need kõik töötavad. Kuna valgusandur vajab ühel küljel 5 volti, saame selle lihtsalt ühendada häirenuppude VCC padja külge ja joota juhtme teise jala külge.

Pärast paneelide ettevalmistamist lõikame raami külgedele, et neile ja nende juhtmetele ruumi teha.

Seejärel eemaldame tolmuimejaga kõikidelt osadelt puidutolmu ja katame need vinüülkilesse.

Kasutame täpsusnuga vinüülitükkide eemaldamiseks otse meie puutetundlike moodulite tundlike alade kohal. Mõne kahepoolse teibiga saame MDF -i külge kinnitada oma nupud. Tegin oma nööbid kummivahust, mis annab neile mõnusa pehme tekstuuri, kuid võite kasutada mis tahes mittemetallist materjali, mida soovite.

Raamil vabastame oma noa uuesti natuke MDF -ist, mis annab meile kuuma liimi jaoks haarduva pinna. Siis saame lõpuks komponendid oma raami külgedele liimida.

Samm: jootke peamine trükkplaat

Peamise trükkplaadi jootmine
Peamise trükkplaadi jootmine
Peamise trükkplaadi jootmine
Peamise trükkplaadi jootmine
Peamise trükkplaadi jootmine
Peamise trükkplaadi jootmine

Jätame raami selliseks, nagu see on praegu, ja liigume PCB juurde. PCB paigutust näete esimesel pildil.

Alustuseks asetame madalaima profiiliga komponendid trükkplaadile. Kõige väiksemad komponendid on traadisillad, mis meenusid mulle natuke liiga hilja, nii et alustasin takistitega. Me jootame oma komponendid oma kohale ja liigume järgmise kõrgema komponentide komplekti juurde.

Järgmisena on meil naissoost päisepoldid. Ruumi säästmiseks ja elektroonika ühendamiseks küljelt paigaldame need 90 -kraadise nurga alla.

Transistorid ei sobi tegelikult meie trükkplaadi 2, 54 mm aukudega, nii et me kasutame oma tangide abil nende jalgu ettevaatlikult teisele pildile. Esmalt jootame ühe nende jala paika ja keerame PCB ümber. Seejärel soojendame jootekohta uuesti ja kasutame komponendi õigeks paigutamiseks sõrme või tangide paari. Nüüd saame joota ülejäänud kaks jalga oma kohale.

Pärast kõiki väikeseid komponente jootame oma Arduino ja reaalajas kella mooduli paika. RTC -moodul ei sobi ka aukude vahega nii hästi, nii et me varustame ainult selle külje, millel on 7 jootmispatja koos päise tihvtidega. Lisaks asetame selle alla mõne lindi, et vältida lühiseid.

Kuna kõik meie komponendid on joodetud oma kohale, on nüüd aeg ühendused teha plaadi teisel küljel. Selleks eemaldame isoleerimata juhtme. Selle sirgendamiseks saab kasutada tangide paari. Seejärel lõikame traadi väiksemateks tükkideks ja jootame selle trükkplaadile.

Ühenduse tegemiseks soojendame jootmisühendust ja sisestame traadi. Seejärel hoiame jootet iooni peal, kuni see saavutab õige temperatuuri ja jootmik ümbritseb selle ning saame vuugi, mis näeb välja nagu pildil. Kui me traati ei kuumuta, võib meil tekkida külm vuuk, mis näeks välja sarnane teise näitega ega juhiks eriti hästi. Saame traadilõikuri abil traadi jootmise ajal alla suruda ja veenduda, et see asetseb trükkplaadile tasaselt. Pikematel ühendusteedel jootame selle igale 5-6 augule ühele padjale, kuni jõuame nurga või järgmise komponendini.

Nurgas lõikasime traadi jootmispadja esimese poole kohal ja jootame selle otsa. Võtame siis uue traadijupi ja läheme sealt edasi täisnurga all.

Nende tühjade juhtmete ühendamine on üsna keeruline ja nõuab mõningaid oskusi, nii et kui teete seda esimest korda, pole kindlasti halb mõte seda harjutada vanarauaga, enne kui proovite seda teha päris.

Pärast jootmise lõpetamist kontrollime uuesti ühendusi ja veendume, et me ei tekitanud lühiseid. Seejärel saame trükkplaadi panna nupuraami sisse ja kasutada seda viitena vajalike raamijuhtmete pikkustele. Seejärel lõikasime need juhtmed õige pikkusega ja lisasime neile isased päised.

Kõik puutetundlike nuppude 5 V ja maandusühendused ühendatakse 2 -kontaktiliseks pistikupesaks. 4 väljundjuhtme külge saab 4 -pin pistiku ja valgusanduri liin ning kaks kõlari juhet ühendatakse kolme kontaktiga pistikuks. Ärge unustage tähistada iga pistikupesa ja pistiku ühte külge terava teibiga või mõne teibiga, et te neid kogemata valesti ei ühendaks.

Samm: pange kell kokku

Pange kell kokku
Pange kell kokku
Pange kell kokku
Pange kell kokku
Pange kell kokku
Pange kell kokku
Pange kell kokku
Pange kell kokku

Pärast seda läksin tagasi esipaneeli juurde ja kleepisin viimase lihvena ettevaatlikult kleebise, mis oli valmistatud läbipaistvast laserprinteri fooliumist.

Kuigi ma rakendasin seda väga ettevaatlikult, ei õnnestunud mul mullivaba tulemust saada, mis on kahjuks lähemal vaatlusel selgelt nähtav. Foolium ei kleepu ka nurkadele väga hästi, nii et ma ei saa seda lahendust soovitada.

Tõenäoliselt saaks seda teha parema kleebisega või kui te joonistate hästi, siis lisage numbrid teravaga.

Nüüd on meil kõik komponendid olemas ja saame oma kella kokku panna.

Alustuseks paneme valgusjuhi ja esipaneeli kokku. Kui kõik 4 polti on sisse lülitatud, joondame kaks paneeli ja seejärel pingutage neid. Paar pähklit tuleb hiljem valguspaneel, kus tuleb pilk suunata. Kaabel peaks olema ülaosas.

Kolmas tükk on nuppude raam. Pidage meeles, et esiküljelt vaadates peaks kõlar olema kella paremal küljel. Enne selle kinnitamist tõmmake oma LED -paneeli kaabel läbi raami keskosa.

Nüüd paneme esiosa kokku ja liigume tagapaneeli juurde. Pildil näete ka minu ilusat ise valmistatud 90 -kraadist mini -USB -adapterit. Linkisin teile korraliku adapteri, nii et te ei pea sellise jamaga tegelema. Saate lihtsalt adapteri ühendada ja juhtme kaabli läbi tagapaneeli augu.

Võtame väikese akna kinnitamiseks oma M3 kruvid ja trükkplaatide vahekaugused. Oluline on kruvid hoolikalt pingutada, kuna me ei taha oma akrüüli kahjustada. Seejärel võtame oma trükkplaadi, ühendame adapteri ja keerame selle vahetükkide külge. Komponendi pool peaks olema akna poole, Arduino USB -port aga kella põhja poole.

Seejärel ühendame kõik esipaneeli pistikud, hoides samal ajal polaarsust ja pigistame kõik juhtmed ettevaatlikult kella sisse. Seejärel saame selle tagapaneeliga sulgeda ja pingutada ülejäänud 4 lukustusmutrit.

Lõppkokkuvõttes soovite, et iga paneeli mõlemal küljel oleks pesur, samas kui valgusjuht asub otse esipaneeli taga. Valgusjuhi ja LED -paneeli vahel on meil üks mutter ja veel kaks, eraldades selle nuppude raamist. Seda näete ka viimasel pildil.

Kuna ma kasutasin lühikesi polte pikkusega 40 mm, on mul ainult 3 mutrit, mis hoiavad tagapaneeli ja raami üksteisest eemal. Õigete 45 mm poltidega lisate siia veel ühe mutri, samuti ühe või kaks lisaseibi. Kokkupaneku lõpus on meil lukustusmutter, nii et kõik jääb oma kohale.

Samm: laadige kood üles ja kalibreerige valgusandur

Laadige kood üles ja kalibreerige valgusandur
Laadige kood üles ja kalibreerige valgusandur
Laadige kood üles ja kalibreerige valgusandur
Laadige kood üles ja kalibreerige valgusandur
Laadige kood üles ja kalibreerige valgusandur
Laadige kood üles ja kalibreerige valgusandur

On aeg meie kood üles laadida.

Kõigepealt laadime alla kõik vajalikud failid ja pakime need lahti. Seejärel avame oma Arduino raamatukogude kausta ja paneme sinna kõik uued raamatukogud.

Nüüd avame valgusanduri kalibreerimise visandi, mis annab meile kella automaatse hämardamisfunktsiooni heledad ja tumedad väärtused. Laadime selle üles, avame jadamonitori ja järgime ekraanil kuvatavaid juhiseid.

Pärast seda avame kahendkellade tegeliku koodi ja asendame need kaks väärtust äsja mõõdetud väärtustega.

Sulgeme kõik muud aknad, laadime koodi oma kellale ja oleme valmis.

Aeg meie uue vidinaga ringi mängida.

10. samm: binaarsüsteemi kiire sissejuhatus

Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist
Lühitutvustus binaarsüsteemist

Enne kui jätkame, tahaksin vastata ühele küsimusele, mis on ilmselt juba teie meelest läbi käinud, "Kuidas maailmas seda kella loete?"

Selleks tahaksin teile lühidalt tutvustada binaarsüsteemi.

Me kõik oleme tuttavad kümnendsüsteemiga, kus igal numbril võib olla 10 erinevat olekut vahemikus 0 kuni 9. Kahendkoodis saab igal numbril olla ainult kaks olekut, kas 1 või 0, mistõttu saate kasutada midagi nii lihtsat kui kuvada kahendarv.

Numbrite kuvamiseks, mis on kümnendkoha võrra suuremad kui 9, lisame rohkem numbreid. Igal numbril on teatud kordaja. Parempoolsest esimesest numbrist tuleb kordaja 1, järgmine on 10 ja järgmine on 100. Iga uue numbri korral on kordaja kümme korda suurem kui eelmine. Nii et me teame, et number kaks asetab ühe numbri vasakule, tähistab numbrit 20. Kui kaks numbrit vasakul, siis 200.

Binaarsüsteemis on igal numbril ka kordaja. Kuna aga igal numbril võib olla ainult kaks erinevat olekut, on iga uus kordaja kaks korda suurem kui eelmine. Oh ja muide, binaarnumbreid nimetatakse bittideks. Nii et vaatame oma esimest näidet, kui asetame 1 madalaimale positsioonile, on see lihtne 1, kuid kui asetame selle järgmisele kõrgemale positsioonile, kus meie kordaja on 2, tähistab see kahendsüsteemis numbrit 2.

Kuidas oleks natuke keerulisema näitega pildi allosas. Kolmas ja esimene osa on sisse lülitatud. Siin esitatud kümnendkoha saamiseks lisame lihtsalt kahe bitti väärtused. Seega 4 * 1 + 1 * 1 või 4 + 1 annab meile numbri 5.

8 bitti nimetatakse baidiks, nii et vaatame, millise arvu saame, kui täidame ühe baidi.1+2+4+8+16+32+64+128, mis on 255, mis on kõrgeim väärtus, mida üks bait võib omada.

Muide, kui kümnendsüsteemis on alati kõrgeima kordajaga number esikohal, on teil kaks võimalust numbri binaarseks kirjutamiseks. Neid kahte meetodit nimetatakse kõigepealt kõige vähem oluliseks baidiks (LSB) ja kõige olulisemaks baidiks kõigepealt (MSB). Kui soovite lugeda kahendnumbrit, peate teadma, millist kahest vormingust kasutatakse. Kuna see on kümnendsüsteemile lähemal, kasutab meie kahendkell MSB varianti.

Tuleme tagasi meie reaalse maailma näite juurde. Nagu kuuendal pildil esile tõstetud, on meie kellal tunni kuvamiseks 4 bitti. Kui meil on minutis 6 bitti ja sekundis ka 6 bitti. Veelgi enam, meil on üks am/pm bit.

Olgu, ütle mulle, mis kell on 6. pildil, kui mine viimasele.. ….

tunnis on meil 2+1, mis on 3 ja pm -bit on sisse lülitatud, nii et on õhtu. Järgmine minut 32+8, see tähendab 40. Sekunditeks on meil 8+4+2, mis on 14. Seega on kell 3:40:14 või 15:40:14.

Palju õnne, õppisite just binaarkella lugema. Loomulikult võtab see harjumist ja alguses peate numbrid kokku panema, iga kord, kui soovite teada, mis kell on, kuid sarnaselt analoogkellale, millel pole valijat, harjute LED -i mustritega aega.

Ja see on osa sellest projektist, võttes reaalsesse maailma midagi nii abstraktset kui binaarsüsteemi ja tutvudes sellega paremini.

Samm: binaarse äratuskella kasutamine

Binaarse äratuskella kasutamine
Binaarse äratuskella kasutamine
Binaarse äratuskella kasutamine
Binaarse äratuskella kasutamine
Binaarse äratuskella kasutamine
Binaarse äratuskella kasutamine

Nüüd tahame lõpuks kellaga ringi mängida, nii et vaatame kiiresti juhtnuppe.

Tarkvara suudab eristada ühe nupuvajutuse, topeltpuudutuse ja pika puudutuse. Seega saab iga nuppu kasutada mitmeks toiminguks.

Topeltpuudutus üles või alla nupule muudab LED -i värvirežiimi. Saate valida erinevate staatiliste ja tuhmuvate värvirežiimide ning temperatuuri režiimi vahel. Kui olete mõnes staatilises värvirežiimis, muudab üles- või allanuppu all hoides värvi muutmine. Tuhmumisrežiimis muudab üks puudutus animatsioonide kiirust.

Hämardusrežiimi seadistamiseks topeltpuudutage nuppu OK. LED -paneel näitab seadistatud režiimi mitu korda vilkudes.

  • Üks kord tähendab, et dimmerit pole.
  • Kaks korda tähendab, et heledust reguleerib valgusandur.
  • Kolm korda ja LED lülitub automaatselt välja pärast 10 -sekundilist tegevusetust.
  • Neli korda ja mõlemad hämardusrežiimid on kombineeritud.

Kui vajutate pikalt nuppu OK, jõuate kellaaja seadistusrežiimi, kus saate numbri muutmiseks kasutada üles- ja allanoolt. Üksainus puudutus nupule OK viib tundide ja minutite vahele, veel ühe puudutuse ja saate määrata sekundid. Pärast seda säästab viimane puudutus uue aja. Kui sisenete tahtlikult aja seadistusrežiimi, võite lihtsalt oodata 10 sekundit ja kell lahkub automaatselt.

Nagu ka OK nupu puhul, võimaldab äratusnupu pikalt vajutamine äratuse seadistada. Alarmi topeltpuudutamine aktiveerib või deaktiveerib alarmi.

Kui kell heliseb, puudutage äratuse desaktiveerimiseks ühekordselt äratusnuppu, et see 5 minutiks magama saata või all hoida.

Need olid kõik kella funktsioonid. Võimalik, et kui lisate alla uusima püsivara versiooni, võin tulevikus neid lisada.

12. samm: koodi mõistmine (valikuline)

Koodist arusaamine (valikuline)
Koodist arusaamine (valikuline)

Ma tean, et paljudele ei meeldi programmeerimine väga. Nende inimeste õnneks pole selle binaarkella ehitamiseks ja kasutamiseks vaja programmeerimisalaseid teadmisi. Nii et kui te ei hooli programmeerimisest, võite selle sammu lihtsalt vahele jätta.

Kui aga olete kodeerimisosast huvitatud, tahaksin teile anda üldise ülevaate programmist.

Kellakoodi iga väikese detaili selgitamine oleks iseenesest juhendatav, nii et ma hoian selle lihtsana, selgitades programmi objektorienteeritud viisil.

Kui te ei tea, mida see tähendab, on objektorienteeritud programmeerimine (OOP) enamiku kaasaegsete programmeerimiskeelte, näiteks C ++, mõiste. See võimaldab teil korraldada erinevaid funktsioone ja muutujaid klassidesse. Klass on mall, millest saate luua ühe või mitu objekti. Igaüks neist objektidest saab nime ja oma muutujate komplekti.

Näiteks kasutab kella kood paari MultiTouchButton objekti, näiteks alarmButton. Need on objektid klassist MultiTouchButton, mis on osa minu nuputeegist. Nende objektide lahe asi on see, et saate nendega liidestada sarnaselt reaalse maailma objektidega. Näiteks saame kontrollida, kas häire nuppu topeltpuudutati, helistades alarmButton.wasDoubleTapped (). Lisaks on selle funktsiooni rakendamine kenasti peidetud teise faili ja me ei pea muretsema selle rikkumise pärast, muutes oma koodis midagi muud. Kiire sisenemine objektorienteeritud programmeerimise maailma leiate Adafruit'i veebisaidilt.

Nagu ülaltoodud graafikult näha, on kellaprogrammis hunnik erinevaid objekte.

Me rääkisime just nupuobjektidest, mis suudavad sisendsignaale tõlgendada kraani, topeltpuudutuse või pika vajutusena.

Jukebox, nagu nimigi ütleb, võib müra tekitada. Sellel on mitu meloodiat, mida saab mängida väikese kõlari kaudu.

BinaryClock objekt haldab aega ja äratuse seadeid, samuti äratuse vaatamist. Lisaks saab see rtc moodulilt aega ja teisendab selle LED -paneeli binaarseks infopuhvriks.

Värvikontroller sisaldab kõiki värviefekti funktsioone ja pakub LED -paneelile colorBufferit. See salvestab ka selle oleku Arduinose EEPromis.

Dimmer hoolitseb kella heleduse eest. Sellel on erinevad režiimid, mida kasutaja saab kasutada. Praegune režiim salvestatakse ka EEPromi.

LEDPanel haldab iga LED -i värvi, heleduse ja binaarse oleku jaoks erinevaid puhvreid. Alati, kui kutsutakse üles funktsioon pushToStrip (), katab see need üle ja saadab need LED -ribale.

Kõik objektid on "ühendatud" põhi kaudu (fail koos seadistus- ja tsüklifunktsioonidega), mis sisaldab ainult paari funktsiooni kolme olulise ülesande täitmiseks.

  1. Kasutaja sisendi tõlgendamine - see saab sisendi nelja nupuga objektidelt ja paneb need loogikale. See loogika kontrollib kella hetkeolekut, et teha kindlaks, kas kell on normaalses, aja seadistamise või helina režiimis, ja kutsub vastavalt üles teiste objektide erinevaid funktsioone.
  2. Objektide vahelise suhtluse haldamine - see küsib pidevalt binaryClock objektilt, kas tal on uut teavet saadaval või kas alarm heliseb (). Kui sellel on uut teavet, saab see teabeBufferi binaarkellast ja saadab selle objektile ledPanel. Kui kell heliseb, käivitab see jukeboxi.
  3. Objektide värskendamine - kõigil programmi objektidel on värskendusprotseduur, mida kasutatakse näiteks sisendite kontrollimiseks või LED -i värvide muutmiseks. Selleks, et kell korralikult töötaks, tuleb neid silmusefunktsioonis korduvalt helistada.

See peaks andma teile üldise arusaama sellest, kuidas üksikud kooditükid koos töötavad. Kui teil on täpsemaid küsimusi, võite lihtsalt minult küsida.

Kuna minu kood pole kindlasti kaugeltki täiuslik, parandan seda tulevikus veelgi, nii et mõned funktsioonid võivad muutuda. OOP -i puhul on lahe see, et see töötab endiselt väga sarnasel viisil ja saate selle mõistmiseks ikkagi graafikat kasutada.

13. samm: lõppsõnad

Lõppsõnad
Lõppsõnad

Mul on hea meel, et lugesite siiani. See tähendab, et minu projekt ei olnud liiga igav:).

Ma panin sellesse väikesesse kella palju tööd ja veel rohkem tööd kogu dokumentatsiooni ja video juurde, et teil oleks lihtsam oma binaarset äratuskella ehitada. Loodan, et minu jõupingutused olid seda väärt ja võin teid haarata suurepärase ideega teie järgmise nädalavahetuse projekti jaoks või vähemalt anda teile inspiratsiooni.

Tahaksin kuulda, mida arvate kellast allpool olevates kommentaarides:).

Isegi kui ma püüdsin kõiki üksikasju käsitleda, oleksin võib -olla kahest asjast ilma jäänud. Nii et küsige julgelt, kui küsimusi on jäänud.

Nagu alati, tänan teid väga lugemise ja rõõmsa tegemise eest.

LED -võistlus 2017
LED -võistlus 2017
LED -võistlus 2017
LED -võistlus 2017

LED -võistluse 2017 teine koht

Soovitan: