Turinys:

„Arduino“dvejetainis žadintuvas: 13 žingsnių (su nuotraukomis)
„Arduino“dvejetainis žadintuvas: 13 žingsnių (su nuotraukomis)

Video: „Arduino“dvejetainis žadintuvas: 13 žingsnių (su nuotraukomis)

Video: „Arduino“dvejetainis žadintuvas: 13 žingsnių (su nuotraukomis)
Video: Lesson 06: Arduino Variables Data Types | Robojax Arduino Step By Step Course 2024, Lapkritis
Anonim
Image
Image

Sekite daugiau autoriaus:

„Pasidaryk pats“lazerinis žmonių skaitiklis
„Pasidaryk pats“lazerinis žmonių skaitiklis
Savarankiško valties statymas („ArduPilot Rover“)
Savarankiško valties statymas („ArduPilot Rover“)
Savarankiško valties statymas („ArduPilot Rover“)
Savarankiško valties statymas („ArduPilot Rover“)
Puiki naktinė lempa ir telefono prijungimo stotelė
Puiki naktinė lempa ir telefono prijungimo stotelė
Puiki naktinė lempa ir telefono prijungimo stotelė
Puiki naktinė lempa ir telefono prijungimo stotelė

Apie: Sveiki, mano vardas Janas, aš esu kūrėjas, man patinka kurti ir kurti daiktus, taip pat gana gerai galiu taisyti daiktus. Kadangi galiu manyti, kad man visada patiko kurti naujus dalykus ir tai darau iki … Daugiau apie „Basement Engineering“»

Ei, šiandien norėčiau parodyti jums, kaip sukurti vieną iš naujausių savo projektų, savo dvejetainį žadintuvą.

Internete yra daugybė skirtingų dvejetainių laikrodžių, tačiau tai iš tikrųjų gali būti pirmasis, pagamintas iš spalvingų adresuojamų šviesos diodų juostos, kuriame taip pat yra aliarmo funkcija ir jutikliniai mygtukai, skirti nustatyti tokius dalykus kaip laikas ir spalva.

Neleisk, kad sudėtinga išvaizda tavęs išgąsdintų. Truputį paaiškinus, skaityti dvejetainį iš tikrųjų nėra taip sunku, kaip atrodo. Ir jei norite išmokti ką nors naujo, norėčiau jums padėti tai padaryti vėliau.

Leiskite šiek tiek papasakoti apie šio projekto istoriją:

Iš pradžių planavau sukurti „įprastą“laikrodį, kuris naudoja šviesos diodus kaip rankas, bet neturėjau pakankamai šviesos diodų.

Taigi, ką darote, kai norite rodyti laiką su kuo mažiau šviesos diodų?

Jūs einate dvejetainiu, ir būtent tai aš čia padariau.

Šis laikrodis yra trečioji tokio tipo versija. Aš sukūriau labai paprastą prototipą iškart po to, kai projekto idėja mane užklupo, ir nunešiau jį į „Maker Faire“Hanoveryje, kad pamatyčiau, ką žmonės apie tai mano. Būdamas ten, gavau daug labai teigiamų ir įdomių atsiliepimų bei tobulinimo idėjų.

Visų šių idėjų ir valandų mąstymo, mąstymo ir programavimo rezultatas yra šis gana įdomiai atrodantis žadintuvas, turintis daug daugiau funkcijų nei 1.0 versija, ir šiandien mes eisime per kiekvieną kūrimo proceso žingsnį, todėl lengvai pasigaminsite patys.

„Youtube“taip pat yra labai išsamus vaizdo įrašas, jei nenorite visko perskaityti.

1 žingsnis: įsigykite savo daiktus

Gaukite savo daiktus
Gaukite savo daiktus
Gaukite savo daiktus
Gaukite savo daiktus
Gaukite savo daiktus
Gaukite savo daiktus

Čia yra nedidelis visų komponentų ir įrankių sąrašas, kurių jums reikės norint sukurti savo dvejetainį laikrodį.

Elektronika:

  • 18 adresų Ws2811 šviesos diodų (pvz., Neopikselių) juostelėje su 60 šviesos diodų per m (ebay)
  • „Arduino Nano“(su „ATMega328“procesoriumi) („ebay“)
  • 1307 RTC modulis („ebay“)
  • 4X talpūs jutikliniai mygtukai („ebay“)
  • bs18b20 skaitmeninis temperatūros jutiklis (ebay)
  • LDR (ebay)
  • nešiojamojo kompiuterio/išmaniojo telefono garsiakalbis arba pjezo garsinis signalas
  • 2222A NPN tranzistorius (arba kažkas panašaus)
  • vyrų antraštės
  • kampuotos moterų antraštės (ebay)
  • 1 kOhm rezistorius
  • 4, 7 kOhm rezistorius
  • 10 kOhm rezistorius
  • Laidai
  • 7x5 cm prototipų spausdinimo plokštės 24x18 skylės („ebay“)
  • sidabrinė viela (juvelyrinė viela) (ebay)
  • 90 ° mini USB adapteris (ebay)

Kitos medžiagos

  • Vinilo plėvelė
  • 4X 45 mm m4 flanšo galvutės varžtai (ebay)
  • 32X m4 metalinės poveržlės
  • 4X m4 fiksavimo veržlė
  • 28X m4 veržlė
  • 4X 10mm m3 žalvario PCB standoff (ebay)
  • 8X 8mm m3 varžtas (ebay)
  • aliuminio lakštas
  • 2 mm pieno akrilo lakštas
  • 2 mm skaidraus akrilo lakštas
  • 3 mm MDF lakštas
  • dvipusė juosta

Įrankiai

  • mini USB kabelis
  • kompiuteris, kuriame veikia „Arduino IDE“
  • 3,5 mm gręžtuvas
  • 4,5 mm gręžtuvas
  • Elektrinis grąžtas
  • pjovimo peilis
  • susidorojimo pjūklas
  • litavimo jonas
  • metalo pjovimo žirklės
  • failą
  • smėlio popierius

Šablonai (dabar su matmenimis)

  • PDF
  • Nemokamas biuro piešimas

Kodas

  • Eskizai
  • Mygtuko biblioteka
  • Laikmačio biblioteka
  • „Jukebox“biblioteka
  • Modifikuotas RTClib
  • „Adafruit Neopixel“biblioteka
  • „Arduino“temperatūros kontrolės biblioteka

2 žingsnis: Iškirpkite priekinį ir galinį skydą

Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą
Iškirpkite priekinį ir galinį skydą

Pirmasis gabalas, kurį ketiname pagaminti, yra akrilo priekinė plokštė. Turime omenyje, kad norime šiek tiek tolerancijos šlifavimui. Tada mes tiesiog nuplėšiame akrilą savo pjovimo peiliu. Atlikę tai 10–20 kartų, turime griovelį. Tada mes galime pastatyti tą giraitę ant stalo krašto ir sulenkti akrilą, kol jis sulaužys.

Po to, kai priekinis skydas yra supjaustytas pagal dydį, galinį skydelį iškirpame iš MDF gabalo. Tam galime naudoti savo pjūklą, tačiau pjovimo peilis taip pat veikia. Mes tiesiog turime užfiksuoti MDF plokštę ant medžio laužo ir nugramdyti jį pjovimo peiliu, kol ašmenys praeis ir turėsime dvi atskiras dalis.

Dabar mes sujungiame abi plokštes kartu ir šlifuojame abi puses, kad jos puikiai derėtų.

Kai tai bus padaryta, mes iškirpome pirmąjį šabloną ir uždėjome ant dviejų plokščių naudodami tam tikrą juostą ir pradėjome gręžti pažymėtas skyles.

Pirmiausia į kiekvieną iš 4 kampų gręžiame 4,5 mm skylę. Kadangi akrilas yra labai trapus ir mes nenorime, kad jis sulūžtų, pradėsime nuo mažo grąžto ir judėsime aukštyn, kol pasieksime norimą skylės skersmenį. Tada mes naudojame šabloną, kad šlifuotume kampus iki reikiamos formos.

3 žingsnis: Užbaikite galinį skydelį

Užbaikite galinį skydelį
Užbaikite galinį skydelį
Užbaikite galinį skydelį
Užbaikite galinį skydelį
Užbaikite galinį skydelį
Užbaikite galinį skydelį
Užbaikite galinį skydelį
Užbaikite galinį skydelį

Kol kas galime atidėti priekinį skydelį ir priklijuoti antrą šabloną ant galinio skydelio, kur turime naudoti 3,5 mm gręžtuvą, kad išgręžtume skyles mūsų 4 pcb atotrūkiams, taip pat 4 skyles, žyminčias kraštus. už mažą galinį langą.

Tada mes panaudojame savo pjūklą, norėdami iškirpti langą ir išlyginti kraštus, naudodami dildę. Taip pat nenorite pamiršti išgręžti skylės mini USB kabeliui (girdėjau apie vieną nelabai sutelktą gamintoją, kuris linkęs daryti tokius dalykus: D).

Kai baigsime pjaustyti galinį skydelį, galime jį suvynioti į vinilo plėvelę. Mes tiesiog supjaustome du tinkamo dydžio gabalus ir pirmąjį uždedame į vieną pusę. Tada nupjauname ratlankius ir atlaisviname langą. Plaukų džiovintuvas gali padėti vėl pamatyti visas skyles, todėl jas taip pat galime iškirpti. Atlikę tą patį kitoje pusėje, mes naudojame kitą šabloną ir savo grandymo bei lūžimo techniką, kad padarytume mažą akrilo langą galiniam skydeliui.

4 žingsnis: padarykite LED skydelį

Padarykite LED skydelį
Padarykite LED skydelį
Padarykite LED skydelį
Padarykite LED skydelį
Padarykite LED skydelį
Padarykite LED skydelį

Dabar mes esame šio projekto akcentas tiesiogine prasme. LED skydelis.

Metalo pjovimo žirklėmis iš metalo lakšto išpjauname 12,2 cm x 8 cm gabalėlį. Tai darydami būkite atsargūs, nes žirklės sukuria labai aštrius kraštus. Mes juos išlyginsime failais ir švitriniu popieriumi. Tada pridedame kitą šabloną, kad gręžtume varžtų ir laidų skyles.

Laikas paruošti tikruosius šviesos diodus.

Pirmiausia juos supjaustome į tris juostas po 6 šviesos diodus. Kai kuriose šviesos diodų juostelėse yra labai plonas lipnus sluoksnis arba jų visai nėra, todėl klijuosime juosteles ant dvipusės juostos gabalo ir peiliu supjaustysime jį iki norimo dydžio. Dėl to jis prilips prie metalinės plokštės ir, nors tai nėra profesionalus sprendimas, izoliuos varines trinkeles nuo metalinio paviršiaus po juo.

Prieš iš tikrųjų klijuodami juosteles ant skydo, jį nuvalysime alkoholiu. Tvirtindami šviesos diodus, turime įsitikinti, kad juos pastatėme reikiamoje vietoje ir teisinga kryptimi. Mažos rodyklės ant LED juostelės rodo kryptį, kuria duomenys keliauja per juostą.

Kaip matote penktame paveikslėlyje, mūsų duomenų eilutė yra iš viršutinio kairiojo skydo kampo, eina per pirmąją juostelę iki dešinės pusės, o ne atgal į kitos juostos pradžią kairėje ir pan.. Taigi visos mūsų rodyklės turi būti nukreiptos į dešinę pusę.

Įkaitinkime litavimo joną ir uždėkime skardą ant varinių pagalvėlių, taip pat ant vielos. Duomenų linijos yra sujungtos, kaip ką tik aprašiau, o mes tiesiog lygiagrečiai sujungiame juostos pliuso ir minuso pagalvėles.

Prijungę juosteles, peiliu atsargiai pakeliame kiekvienos juostelės galus, laikydami šviesos diodus žemyn, kad jie vis tiek būtų nukreipti į viršų. Tada mes dedame šiek tiek karštų klijų, kad izoliuotume litavimo jungtis.

Kai tai bus padaryta, prie laidų, kurie eina į PCB, pridedame keletą antraščių kaiščių. Šie laidai turėtų būti apie 16 cm ilgio. Norėdami būti tikri, kad metalinė plokštė nieko netrumpina, mes naudojame multimetrą, kad išmatuotume visų kaiščių varžą. Jei rodoma daugiau nei 1 kOhm, viskas gerai.

Dabar mes galime jį prijungti prie „Arduino“, paleisti grandinės testą ir mėgautis spalvomis.

5 žingsnis: sukurkite šviesos vadovą

Sukurkite šviesos vadovą
Sukurkite šviesos vadovą
Sukurkite šviesos vadovą
Sukurkite šviesos vadovą
Sukurkite šviesos vadovą
Sukurkite šviesos vadovą
Sukurkite šviesos vadovą
Sukurkite šviesos vadovą

Jei pastatysime savo LED skydelį tiesiai už pieniško akrilo, gali būti gana sunku atskirti atskirus šviesos diodus. Dėl to mūsų laikrodis būtų dar sunkiau skaitomas nei dabar.

Norėdami išspręsti šią problemą, pasidarysime nedidelį šviesos vadovą. Norėdami tai padaryti, mes tiesiog išpjaukime kitą MDF plokštę, kurios dydis yra toks pat kaip ir priekinio skydo. Tada pridedame prie jo dar vieną šabloną ir išgręžiame aštuoniolika 3, 5 mm skylių šviesos diodams, taip pat keturias 4, 5 mm skyles varžtams. Tada galime prispausti jį prie priekinio skydelio ir panaudoti švitrinį popierių, kad abu sulygiuotume.

Kaip matote paskutinėje nuotraukoje, dabar šviesa atrodo daug labiau sufokusuota.

6 veiksmas: sukurkite mygtukų rėmelį

Padarykite mygtuko rėmelį
Padarykite mygtuko rėmelį
Padarykite mygtuko rėmelį
Padarykite mygtuko rėmelį
Padarykite mygtuko rėmelį
Padarykite mygtuko rėmelį

Paskutinis korpuso komponentas, kurį ketiname pagaminti, yra mygtuko rėmas.

Mes, dar kartą, supjaustome reikiamo dydžio MDF gabalėlį ir pridedame prie jo šabloną, tada išgręžiame visas reikalingas skylutes ir, naudodamiesi savo pjūklu, iškirpame vidurinę dalį.

Mūsų rėmas turėtų laikyti 4 jutiklinius mygtukus, šviesos jutiklį ir mažąjį garsiakalbį. Prieš pritvirtindami juos prie rėmo, iš MDF iškirpome porą mažesnių dangtelių. Tada karštai klijuojame komponentus ant tų dangtelių ir pridedame prie jų laidus.

Jutiklinio mygtuko maitinimo blokeliai yra prijungti lygiagrečiai, o kiekviena išvesties linija gauna atskirą laidą. Tai taip pat tinkamas laikas patikrinti, ar jie visi veikia. Kadangi šviesos jutikliui reikia 5 voltų vienoje pusėje, mes galime jį tiesiog prijungti prie signalizacijos mygtukų VCC pagalvėlės ir prilituoti laidą prie kitos kojos.

Po to, kai plokštės yra paruoštos, mes supjaustome rėmo šonus, kad būtų vietos joms ir jų laidams.

Tada dulkių siurbliu pašaliname medienos dulkes nuo visų gabalų ir uždengiame vinilo plėvele.

Mes naudojame tikslų peilį, kad pašalintume vinilo gabalus tiesiai virš jautrių jutiklinių modulių sričių. Naudodami dvipusę juostą, prie MDF galime pritvirtinti savo mygtukus. Savo sagas padariau iš guminių putų, kurios suteikia jiems gražią, minkštą tekstūrą, tačiau galite naudoti bet kokią norimą nemetalinę medžiagą.

Ant rėmo peiliu vėl išlaisviname šiek tiek MDF plokštės, o tai suteikia mums sukibimo paviršių karštųjų klijų gamybai. Tada pagaliau galime klijuoti komponentus prie mūsų rėmo šonų.

7 žingsnis: lituokite pagrindinę PCB

Lituokite pagrindinę PCB
Lituokite pagrindinę PCB
Lituokite pagrindinę PCB
Lituokite pagrindinę PCB
Lituokite pagrindinę PCB
Lituokite pagrindinę PCB

Palikime rėmelį tokį, koks jis yra dabar, ir pereikime prie PCB. Pirmoje nuotraukoje galite pamatyti PCB išdėstymą.

Mes pradedame dedant komponentus su žemiausiu profiliu ant plokštės. Mažiausi komponentai yra vieliniai tiltai, kuriuos prisiminiau šiek tiek per vėlai, todėl pradėjau nuo rezistorių. Lituosime savo komponentus ir pereisime prie kito aukštesnio komponentų rinkinio.

Toliau turime moteriškus antraštės kaiščius. Kad sutaupytume vietos ir galėtume prijungti elektroniką iš šono, montuojame 90 laipsnių kampu.

Tranzistoriai tikrai netinka 2, 54 mm atstumui tarp mūsų PCB skylių, todėl savo replėmis atsargiai sulenkiame kojas iki tokios formos, kaip parodyta antrame paveikslėlyje. Pirmiausia priklijuojame vieną jų koją ir pasukame PCB. Tada mes vėl pašildome litavimo jungtį ir pirštu arba replėmis tinkamai nustatome komponentą. Dabar galime lituoti kitas dvi kojas.

Po visų smulkių komponentų lituosime savo „Arduino“ir realaus laiko laikrodžio modulį. RTC modulis taip pat netinka taip gerai, todėl mes ketiname įrengti tik tą pusę, kurioje yra 7 litavimo pagalvėlės su kaiščiais. Be to, po juo dedame šiek tiek juostos, kad išvengtume trumpojo jungimo.

Kadangi visi mūsų komponentai yra lituoti, dabar atėjo laikas atlikti jungtis kitoje plokštės pusėje. Norėdami tai padaryti, mes ištrauksime izoliuotą laidą. Norėdami ištiesinti, galite naudoti reples. Tada mes supjaustome vielą į mažesnius gabalus ir prilituosime prie PCB.

Norėdami sujungti, įkaitiname litavimo jungtį ir įkišame laidą. Tada ant jo laikome litavimo joną, kol jis pasiekia reikiamą temperatūrą ir lydmetalis jį uždaro, ir gauname jungtį, kuri atrodo kaip paveikslėlyje. Jei nešildysime laido, galų gale susidarys šalta jungtis, kuri atrodytų panaši į kitą pavyzdį ir neveiktų labai gerai. Mes galime naudoti savo vielos pjoviklį, kad litavimo metu stumtume laidą žemyn ir įsitikintume, kad jis yra plokščias ant PCB. Ilgesniuose sujungimo keliuose jį lituojame į vieną trinkelę kas 5–6 skyles, kol pasieksime kampą ar kitą komponentą.

Kampe mes nupjauname vielą virš pirmosios litavimo kilimėlio pusės ir prilijuojame jos galą. Tada paimame naują vielos gabalą ir einame toliau nuo to stačiu kampu.

Šių tuščių laidų sujungimas yra gana sudėtingas ir reikalauja tam tikrų įgūdžių, taigi, jei tai darote pirmą kartą, tikrai nėra bloga mintis tai išbandyti ant PCB laužo, prieš bandant tai padaryti tikrame.

Baigę lituoti, dar kartą patikriname jungtis ir įsitikiname, kad nesukūrėme trumpojo jungimo. Tada mes galime įdėti PCB į mygtuko rėmą ir naudoti jį kaip reikiamo rėmo laido ilgio nuorodą. Tada mes nukirpame tuos laidus iki reikiamo ilgio ir pridedame prie jų vyrių kaiščius.

Visos jutiklinių mygtukų 5 V ir įžeminimo jungtys sujungiamos į 2 kontaktų jungtį. 4 išvesties laidai gauna 4 kontaktų jungtį, o šviesos jutiklio linija ir du garsiakalbių laidai sujungiami į trijų kontaktų jungtį. Nepamirškite kiekvienos lizdo ir jungties pusės pažymėti aštriu įrišimu ar kokia nors juostele, kad netyčia jų neprijungtumėte.

8 žingsnis: Surinkite laikrodį

Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį
Surinkite laikrodį

Po to grįžau prie priekinio skydelio ir paskutinį kartą atsargiai uždėjau lipduką, pagamintą iš skaidrios lazerinio spausdintuvo folijos.

Nors jį taikiau labai kruopščiai, man nepavyko gauti rezultato be burbuliukų, kuris, deja, yra aiškiai matomas atidžiau apžiūrėjus. Folija taip pat nelabai prilimpa prie kampų, todėl tikrai negaliu rekomenduoti šio sprendimo.

Tai tikriausiai būtų galima padaryti su geresniu lipduku arba, jei gerai mokate piešti, galite pridėti skaičius su aštriu pieštuku.

Dabar mes turime visus komponentus ir galime surinkti savo laikrodį.

Mes pradedame sujungdami šviesos kreiptuvą ir priekinį skydelį. Kai visi 4 varžtai yra įkišti, mes išlyginame abi plokštes ir tada priveržkite. Pora riešutų vėliau ateina šviesos skydelis, kuriame turime pažvelgti į kryptį. Kabelis turi būti viršuje.

Trečiasis elementas yra mygtukų rėmas. Atminkite, kad žiūrint iš priekio, garsiakalbis turi būti dešinėje laikrodžio pusėje. Prieš pritvirtindami savo vietą, ištraukite savo LED skydo kabelį per rėmo vidurį.

Dabar mes įdedame priekinį surinkimo elementą ir pereiname prie galinio skydo. Nuotraukoje taip pat galite pamatyti mano gražų 90 laipsnių kampu pagamintą mini USB adapterį. Aš susiejau jums tinkamą adapterį, todėl jums nereikės susidoroti su tokia netvarka. Galite tiesiog prijungti adapterį ir pravesti kabelį per skylę galiniame skydelyje.

Imame M3 varžtus ir PCB tarpiklius, kad pataisytume mažą langelį. Svarbu atsargiai priveržti varžtus, nes nenorime pažeisti akrilo. Tada paimame savo PCB, prijunkite adapterį ir prisukite prie tarpiklių. Komponento pusė turi būti nukreipta į langą, o „Arduino“USB prievadas - į laikrodžio apačią.

Tada mes prijungiame visas jungtis iš priekinio mazgo, nepamiršdami poliškumo ir atsargiai suspauskite visus laidus į laikrodį. Tada galime uždaryti jį galiniu skydeliu ir priveržti 4 likusias fiksavimo veržles.

Galų gale norite turėti skalbyklę kiekvienoje skydelio pusėje, o šviesos kreiptuvas yra tiesiai už priekinio skydelio. Mes turime vieną veržlę tarp šviesos kreiptuvo ir LED skydelio ir dar dvi, atskiriančias ją nuo mygtukų rėmo. Tai taip pat galite pamatyti paskutinėje nuotraukoje.

Kadangi naudojau trumpus 40 mm ilgio varžtus, turiu tik 3 veržles, laikančias galinį skydelį ir rėmą. Naudodami tinkamus 45 mm varžtus, čia pridėtumėte dar vieną veržlę, taip pat vieną ar dvi papildomas poveržles. Surinkimo pabaigoje mes turime savo veržlę, kad viskas liktų savo vietose.

9 veiksmas: įkelkite kodą ir sukalibruokite šviesos jutiklį

Įkelkite kodą ir sukalibruokite šviesos jutiklį
Įkelkite kodą ir sukalibruokite šviesos jutiklį
Įkelkite kodą ir sukalibruokite šviesos jutiklį
Įkelkite kodą ir sukalibruokite šviesos jutiklį
Įkelkite kodą ir sukalibruokite šviesos jutiklį
Įkelkite kodą ir sukalibruokite šviesos jutiklį

Laikas įkelti mūsų kodą.

Pirmiausia atsisiųsime visus reikalingus failus ir išpakuosime juos. Tada atidarome „Arduino“bibliotekų aplanką ir į jį įtraukiame visas naujas bibliotekas.

Dabar atidarome šviesos jutiklio kalibravimo eskizą, kuriame gausime šviesias ir tamsias laikrodžio automatinio pritemdymo funkcijos reikšmes. Įkeliame, atidarome serijinį monitorių ir vykdome ekrane pateikiamas instrukcijas.

Po to mes atidarome faktinį dvejetainių laikrodžių kodą ir pakeičiame dvi vertes tomis, kurias ką tik išmatuosime.

Mes uždarome visus kitus langus, įkeliame kodą į savo laikrodį ir baigiame.

Laikas pažaisti su mūsų naująja programėle.

10 veiksmas: greitas dvejetainės sistemos įvadas

Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas
Trumpas dvejetainės sistemos įvadas

Prieš tęsdamas norėčiau atsakyti į vieną klausimą, kuris tikriausiai jau sukosi tavo galvoje, - Kaip pasaulyje jūs skaitote šį laikrodį?

Na, tam norėčiau trumpai pristatyti dvejetainę sistemą.

Mes visi žinome dešimtainę sistemą, kurioje kiekvienas skaitmuo gali turėti 10 skirtingų būsenų, nuo 0 iki 9. Dvejetainėje sistemoje kiekvienas skaitmuo gali turėti tik dvi būsenas, 1 arba 0, todėl galite naudoti kažką tokio paprasto, kaip rodyti dvejetainį skaičių.

Norėdami rodyti dešimtainius skaičius, didesnius nei 9, pridedame daugiau skaitmenų. Kiekvienas skaitmuo turi tam tikrą daugiklį. Pirmasis skaitmuo iš dešinės ateina su daugikliu 1, kitas - 10, o kitas - 100. Su kiekvienu nauju skaitmeniu daugiklis yra dešimt kartų didesnis nei ankstesnis. Taigi mes žinome, kad skaičius du, vienas skaitmuo į kairę, reiškia skaičių 20. Nors du skaitmenys kairėje, jis reiškia 200.

Dvejetainėje sistemoje kiekvienas skaitmuo taip pat turi daugiklį. Tačiau kadangi kiekvienas skaitmuo gali turėti tik dvi skirtingas būsenas, kiekvienas naujas daugiklis yra du kartus didesnis nei ankstesnis. O ir, beje, dvejetainiai skaitmenys vadinami bitais. Taigi, pažvelkime į savo pirmąjį pavyzdį, jei 1 padedame žemiausioje padėtyje, tai yra paprastas 1, bet jei įdedame į kitą aukštesnę poziciją, kur mūsų daugiklis yra 2, tai reiškia skaičių 2 dvejetainėje.

Kaip apie šiek tiek sudėtingesnį pavyzdį paveikslo apačioje. Įjungtas trečias ir pirmasis bitas. Norėdami gauti čia rodomą dešimtainį skaičių, tiesiog pridedame dviejų bitų reikšmes. Taigi 4 * 1 + 1 * 1 arba 4 + 1 suteikia mums skaičių 5.

8 bitai yra vadinami baitais, todėl pažiūrėkime, kokį skaičių gausime, jei vienais užpildysime visą baitą.1+2+4+8+16+32+64+128, tai yra 255, tai yra didžiausia vieno baito vertė.

Beje, nors dešimtainėje sistemoje skaitmuo su didžiausiu daugikliu visada yra pirmas, turite du būdus, kaip įrašyti skaičių dvejetainiu būdu. Šie du metodai vadinami mažiausiai reikšmingu baitu pirmiausia (LSB) ir reikšmingiausiu baitu pirmiausia (MSB). Jei norite skaityti dvejetainį skaičių, turite žinoti, kuris iš dviejų formatų yra naudojamas. Kadangi jis yra arčiau dešimtainės sistemos, mūsų dvejetainis laikrodis naudoja MSB variantą.

Grįžkime prie realaus pasaulio pavyzdžio. Kaip parodyta šeštoje nuotraukoje, mūsų laikrodis turi 4 bitus, rodančius valandą. Mes turime 6 bitus per minutę, taip pat 6 bitus per sekundę. Be to, mes turime vieną am/pm bitą.

Gerai, pasakyk man, kiek laiko yra 6 paveiksle, nei pereiti prie paskutinio.. ….

valandų skyriuje turime 2+1, kuris yra 3, o pm bitas įjungtas, taigi vakaras. Toliau minutė 32+8, tai yra 40. Sekundėms turime 8+4+2, kuri yra 14. Taigi yra 15:40:14 arba 15:40:14.

Sveikiname, jūs ką tik išmokote skaityti dvejetainį laikrodį. Žinoma, reikia šiek tiek priprasti ir pradžioje turėsite sudėti skaičius, kiekvieną kartą norėdami sužinoti, kiek valandų, bet panašiai kaip analoginis laikrodis be ratuko, pripratote prie šviesos diodų modelių. laikas.

Ir tai yra dalis šio projekto, kai ką nors abstraktaus, kaip dvejetainės sistemos, imti į realų pasaulį ir geriau jį pažinti.

11 veiksmas: dvejetainio žadintuvo naudojimas

Dvejetainio žadintuvo naudojimas
Dvejetainio žadintuvo naudojimas
Dvejetainio žadintuvo naudojimas
Dvejetainio žadintuvo naudojimas
Dvejetainio žadintuvo naudojimas
Dvejetainio žadintuvo naudojimas

Dabar pagaliau norime pažaisti su laikrodžiu, todėl greitai pažvelkime į valdiklius.

Programinė įranga gali atskirti vieno mygtuko paspaudimą, dvigubą ir ilgą palietimą. Taigi kiekvienas mygtukas gali būti naudojamas keliems veiksmams atlikti.

Dukart bakstelėjus aukštyn arba žemyn mygtuką, pasikeičia šviesos diodo spalvų režimas. Galite pasirinkti skirtingus statinius ir išblukusius spalvų režimus, taip pat temperatūros režimą. Jei naudojate vieną iš statinių spalvų režimų, paspaudus aukštyn arba žemyn mygtuką pasikeičia spalva. Išblukimo režimu vienas bakstelėjimas keičia animacijos greitį.

Norėdami nustatyti pritemdymo režimą, dukart bakstelėkite mygtuką Gerai. LED indikatorius keletą kartų mirksėdamas nurodo nustatytą režimą.

  • Vienas kartas reiškia, kad nėra pritemdymo.
  • Du kartus reiškia, kad ryškumą valdo šviesos jutiklis.
  • Tris kartus ir šviesos diodas automatiškai išsijungia po 10 sekundžių neveikimo.
  • Keturis kartus ir abu pritemdymo režimai yra derinami.

Ilgai paspaudus mygtuką „OK“, pateksite į laiko nustatymo režimą, kuriame galite naudoti rodykles aukštyn ir žemyn, kad pakeistumėte skaičių. Vieną kartą bakstelėjus mygtuką „Gerai“, pereinama nuo valandų iki minučių, dar vienas bakstelėjimas ir galite nustatyti sekundes. Po to paskutinis bakstelėjimas taupo naują laiką. Jei įjungsite laiko nustatymo režimą, galite tiesiog palaukti 10 sekundžių ir laikrodis automatiškai jį paliks.

Kaip ir OK mygtuką, ilgai paspaudus žadintuvo mygtuką, galite nustatyti žadintuvą. Dukart palietus žadintuvo mygtuką įjungiamas arba išjungiamas aliarmas.

Jei laikrodis skamba, vieną kartą palieskite žadintuvo mygtuką, kad nusiųstumėte jį 5 minutėms miegoti arba palaikykite nuspaudę, kad išjungtumėte žadintuvą.

Tai buvo visos laikrodžio funkcijos iki šiol. Ateityje galiu pridėti daugiau, ką galite gauti, jei atsisiųsite naujausią programinės įrangos versiją.

12 veiksmas: kodo supratimas (neprivaloma)

Kodo supratimas (neprivaloma)
Kodo supratimas (neprivaloma)

Žinau, kad daugelis žmonių nelabai mėgsta programuoti. Laimei, tiems žmonėms, norint sukurti ir naudoti šį dvejetainį laikrodį, nereikia jokių programavimo žinių. Taigi, jei jums nerūpi programavimo pusė, galite tiesiog praleisti šį veiksmą.

Tačiau, jei jus domina kodavimo dalis, norėčiau jums pateikti bendrą programos apžvalgą.

Kiekvienos mažos laikrodžio kodo detalės paaiškinimas būtų savarankiškas nurodymas, todėl aš jį supaprastinsiu, paaiškindamas programą į objektą.

Jei nežinote, ką tai reiškia, į objektą orientuotas programavimas (OOP) yra daugelio šiuolaikinių programavimo kalbų, tokių kaip C ++, sąvoka. Tai leidžia jums suskirstyti įvairias funkcijas ir kintamuosius į vadinamąsias klases. Klasė yra šablonas, iš kurio galite sukurti vieną ar kelis objektus. Kiekvienas iš šių objektų gauna pavadinimą ir savo kintamųjų rinkinį.

Pavyzdžiui, laikrodžio kodas naudoja keletą „MultiTouchButton“objektų, tokių kaip „alarmButton“. Tai objektai iš klasės „MultiTouchButton“, kuri yra mano mygtuko bibliotekos dalis. Šaunus dalykas apie tuos objektus yra tas, kad galite sąveikauti su jais panašiai kaip realaus pasaulio objektai. Pvz., Galime patikrinti, ar pavojaus signalo mygtukas buvo dukart paspaustas, paskambinus alarmButton.wasDoubleTapped (). Be to, šios funkcijos įgyvendinimas yra gražiai paslėptas kitame faile ir mes neturime jaudintis, kad ją sulaužysime, pakeisdami ką nors kita mūsų kode. Greitą įėjimą į objektinio programavimo pasaulį galima rasti „Adafruit“svetainėje.

Kaip matote aukščiau esančioje grafikoje, laikrodžių programoje yra daugybė skirtingų objektų.

Mes ką tik kalbėjome apie mygtukų objektus, kurie gali suprasti įvesties signalus kaip bakstelėjimas, dukart bakstelėjimas ar ilgas paspaudimas.

„Jukebox“, kaip rodo pavadinimas, gali kelti triukšmą. Jame yra kelios melodijos, kurias galima groti per mažą garsiakalbį.

„BinaryClock“objektas valdo laiką ir žadintuvo nustatymus bei žadintuvo stebėjimą. Be to, jis gauna laiko iš rtc modulio ir paverčia jį dvejetainiu informacijos buferiu „ledPanel“.

„ColorController“apima visas spalvų efekto funkcijas ir suteikia „LEDPanel“„colorBuffer“. Tai taip pat išsaugo būseną „Arduinos EEProm“.

Reguliatorius rūpinasi laikrodžio ryškumu. Jis turi skirtingus režimus, kuriuos vartotojas gali naudoti. Dabartinis režimas taip pat išsaugomas EEProm.

„LEDPanel“valdo skirtingus kiekvieno LED šviesos spalvos, ryškumo ir dvejetainės būsenos buferius. Kai tik iškviečiama „pushToStrip ()“funkcija, ji jas dengia ir siunčia į LED juostą.

Visi objektai yra „sujungti“per pagrindinį (failą su sąrankos ir ciklo funkcijomis), kuris apima tik keletą funkcijų, skirtų 3 pagrindinėms užduotims atlikti.

  1. Vartotojo įvesties aiškinimas - jis gauna įvestį iš 4 mygtukų objektų ir pateikia juos pagal logiką. Ši logika patikrina dabartinę laikrodžio būseną, kad nustatytų, ar laikrodis yra normalus, laiko nustatymo ar skambėjimo režimo ir atitinkamai iškviečia kitas funkcijas iš kitų objektų.
  2. Ryšių tarp objektų valdymas - jis nuolat klausia „binaryClock“objekto, ar jame yra naujos informacijos, ar aliarmas skamba (). Jei ji turi naujos informacijos, ji gauna „informationBuffer“iš „binaryClock“ir siunčia ją į „ledPanel“objektą. Jei laikrodis skamba, jis paleidžia „Jukebox“.
  3. Objektų atnaujinimas - kiekvienas programos objektas turi atnaujinimo procedūrą, kuri naudojama tokiems dalykams kaip įvesties tikrinimas ar šviesos diodų spalvų keitimas. Kad laikrodis veiktų tinkamai, juos reikia pakartotinai iškviesti ciklo funkcijoje.

Tai turėtų suteikti jums bendrą supratimą apie tai, kaip atskiri kodo elementai veikia kartu. Jei turite konkretesnių klausimų, galite tiesiog manęs paklausti.

Kadangi mano kodas tikrai toli gražu nėra tobulas, ateityje jį toliau tobulinsiu, todėl kai kurios funkcijos gali pasikeisti. Šaunus OOP dalykas yra tas, kad jis vis tiek veiks labai panašiai ir jūs vis tiek galite naudoti grafiką, kad ją suprastumėte.

13 žingsnis: paskutiniai žodžiai

Baigiamieji žodžiai
Baigiamieji žodžiai

Džiaugiuosi, kad iki šiol perskaitėte. Tai reiškia, kad mano projektas nebuvo per daug nuobodus:).

Į šį mažą laikrodį įdėjau daug darbo, o dar daugiau - į visus dokumentus ir vaizdo įrašus, kad jums būtų lengviau sukurti savo dvejetainį žadintuvą. Tikiuosi, kad mano pastangos buvo vertos ir galėčiau jus sugalvoti su puikia idėja kitam savaitgalio projektui arba bent jau suteikti jums įkvėpimo.

Norėčiau išgirsti, ką manote apie laikrodį komentaruose žemiau:).

Nors bandžiau apžvelgti kiekvieną detalę, galbūt praleidau vieną ar du dalykus. Taigi nedvejodami klauskite, jei liko klausimų.

Kaip visada, labai ačiū už skaitymą ir laimingą kūrybą.

LED konkursas 2017 m
LED konkursas 2017 m
LED konkursas 2017 m
LED konkursas 2017 m

Antroji vieta LED konkurse 2017 m

Rekomenduojamas: