Sadržaj:

Binarni budilnik na bazi Arduina: 13 koraka (sa slikama)
Binarni budilnik na bazi Arduina: 13 koraka (sa slikama)

Video: Binarni budilnik na bazi Arduina: 13 koraka (sa slikama)

Video: Binarni budilnik na bazi Arduina: 13 koraka (sa slikama)
Video: НАБРАЛ Секретный Код На Телефоне И ОФИГЕЛ!! БАТАРЕЯ НЕ САДИТСЯ! 2024, Juli
Anonim
Image
Image

By Basement EngineeringSledi Još autora:

DIY Laser People Counter
DIY Laser People Counter
Izgradnja čamca za samoupravljanje (ArduPilot Rover)
Izgradnja čamca za samoupravljanje (ArduPilot Rover)
Izgradnja čamca za samoupravljanje (ArduPilot Rover)
Izgradnja čamca za samoupravljanje (ArduPilot Rover)
Savršena noćna lampa i priključna stanica za telefon
Savršena noćna lampa i priključna stanica za telefon
Savršena noćna lampa i priključna stanica za telefon
Savršena noćna lampa i priključna stanica za telefon

O: Zdravo, moje ime je Jan i ja sam proizvođač, volim graditi i stvarati stvari, a također sam prilično dobar u popravljanju stvari. Budući da mogu misliti da sam oduvijek volio stvarati nove stvari i to nastavljam raditi do… Više o podrumskom inženjeringu »

Hej, danas bih vam želio pokazati kako izgraditi jedan od mojih najnovijih projekata, moj binarni budilnik.

Na internetu postoji gomila različitih binarnih satova, ali ovo bi mogao biti prvi sat, napravljen od trake šarenih adresabilnih LED dioda, koja također ima funkciju alarma i tipke na dodir, za postavljanje stvari poput vremena i boje.

Molimo vas da ne dopustite da vas komplikovan izgled uplaši. Uz malo objašnjenja, čitanje binarnih datoteka zapravo nije tako teško kao što se čini. A ako ste voljni naučiti nešto novo, volio bih vam kasnije pomoći u tome.

Dopustite mi da vam ispričam nešto o priči iza ovog projekta:

Prvobitno sam planirao da napravim "normalan" sat koji koristi LED diode kao ruke, ali nisam imao dovoljno LED dioda pri ruci.

Pa, šta radite kada želite prikazati vrijeme sa što manje LED dioda?

Vi idete binarno, a to sam upravo i uradio ovdje.

Ovaj sat je treća verzija ove vrste. Napravio sam vrlo jednostavan prototip odmah nakon što me je ideja projekta snašla i odnio ga na Maker Faire u Hannoveru, da vidim šta ljudi misle o tome. Dok sam bio tamo, dobio sam mnogo vrlo pozitivnih i zanimljivih povratnih informacija, kao i ideja za poboljšanje.

Rezultat svih tih ideja i sati razmišljanja, petljanja i programiranja, je ovaj prilično budan mali budilnik, koji ima mnogo više funkcija od verzije 1.0, a danas ćemo proći svaki korak procesa izgradnje, tako da možete lako izgradite sami.

Na Youtube -u postoji i vrlo detaljan video zapis, u slučaju da ne želite pročitati sve.

Korak 1: Nabavite svoje stvari

Nabavite svoje stvari
Nabavite svoje stvari
Nabavite svoje stvari
Nabavite svoje stvari
Nabavite svoje stvari
Nabavite svoje stvari

Evo male liste svih komponenti i alata koji će vam trebati za izradu vlastitog binarnog sata.

Elektronika:

  • 18 Ws2811 LED adresa (na primjer neopiksela) za adresiranje na traci sa 60 LED dioda po m (eBay)
  • Arduino Nano (sa ATMega328 procesorom) (ebay)
  • 1307 RTC modul (ebay)
  • 4X kapacitivna dodirna dugmeta (ebay)
  • bs18b20 digitalni senzor temperature (ebay)
  • LDR (ebay)
  • zvučnik za laptop/pametni telefon ili piezo zujalica
  • 2222A NPN tranzistor (ili nešto slično)
  • muška zaglavlja
  • ugaona ženska zaglavlja (ebay)
  • 1kOhm otpornik
  • 4, 7kOhm otpornik
  • 10kOhm otpornik
  • Žice
  • 7x5cm prototip PCB 24x18 rupa (ebay)
  • srebrna žica (žica za nakit) (ebay)
  • 90 ° mini usb adapter (ebay)

Ostali materijali

  • Vinilni omot
  • 4X 45 mm vijci s prirubničkom glavom m4 (ebay)
  • Metalne podloške 32X m4
  • 4X m4 kontra matica
  • 28X m4 matica
  • 4X 10mm m3 mesing PCB standoff (ebay)
  • 8X 8mm m3 vijak (ebay)
  • aluminijumski lim
  • 2 mm list mliječnog akrila
  • List prozirnog akrila od 2 mm
  • 3 mm list MDF -a
  • dvostrana traka

Alati

  • mini USB kabl
  • računara na kojem radi Arduino IDE
  • Svrdlo 3,5 mm
  • Svrdlo 4,5 mm
  • električna bušilica
  • nož za rezanje
  • testera za suočavanje
  • lemni jon
  • škare za rezanje metala
  • file
  • brusni papir

Predlošci (sada s dimenzijama)

  • PDF
  • Libre Office Draw

Kod

  • Skice
  • Biblioteka dugmadi
  • Biblioteka tajmera
  • Biblioteka džuboksa
  • Modifikovani RTClib
  • Biblioteka Adafruit Neopixel
  • Arduino-Biblioteka za kontrolu temperature

Korak 2: Odrežite prednju i zadnju ploču

Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču
Odrežite prednju i zadnju ploču

Prvi komad koji ćemo napraviti je prednja ploča od akrila. Označavamo gdje želimo da naši rezovi idu, imajući na umu da želimo malo tolerancije za brušenje. Zatim jednostavno ostružemo akril nožem za rezanje. Nakon što smo to učinili 10 do 20 puta imamo utor. Zatim možemo postaviti taj gaj na ivicu stola i saviti akril dok se ne slomi.

Nakon što smo prednju ploču izrezali po veličini, izrezali smo zadnju ploču iz komada MDF -a. Za to možemo koristiti našu testeru za suočavanje, ali nož za rezanje također funkcionira. Moramo samo pričvrstiti MDF na komad drveta i strugati ga nožem za rezanje dok oštrica ne prođe i dobijemo dva pojedinačna komada.

Sada spajamo dvije ploče zajedno i brušimo svaku stranu kako bi se savršeno poravnale.

Nakon što smo to učinili, izrezali smo prvi predložak i stavili ga na dvije ploče pomoću trake i počeli bušiti označene rupe.

Prvo izbušimo rupu od 4,5 mm u svaki od 4 ugla. Budući da je akril vrlo lomljiv i ne želimo da se lomi, počet ćemo s malom bušilicom i ići ćemo gore sve dok ne postignemo željeni promjer rupe. Zatim pomoću predloška brusimo uglove u pravi oblik.

Korak 3: Završite stražnju ploču

Završite zadnju ploču
Završite zadnju ploču
Završite zadnju ploču
Završite zadnju ploču
Završite zadnju ploču
Završite zadnju ploču
Završite zadnju ploču
Završite zadnju ploču

Za sada možemo odložiti prednju ploču i zalijepiti drugi predložak na stražnju ploču, gdje moramo upotrijebiti svrdlo od 3, 5 mm za bušenje rupa za naša odstupanja od 4 ploče, kao i 4 rupe koje označavaju rubove za mali zadnji prozor.

Zatim smo našom testerom za izrezivanje izrezali prozor i poravnali rubove turpijom. Također ne želite zaboraviti izbušiti rupu za mini USB kabel (čuo sam za jednog ne tako fokusiranog proizvođača, koji ima tendenciju da radi takve stvari: D).

Kako smo sada završili s rezanjem stražnje ploče, možemo nastaviti s umotavanjem u vinil foliju. Jednostavno izrežemo dva komada odgovarajuće veličine i nanesemo prvi na jednu stranu. Zatim odrežemo naplatke i oslobodimo prozor. Sušilo za kosu može pomoći da se sve rupe ponovo vide, pa ih možemo i izrezati. Nakon što smo učinili istu stvar za drugu stranu, koristimo naš sljedeći predložak i našu tehniku struganja i lomljenja kako bismo napravili mali akrilni prozor za našu stražnju ploču.

Korak 4: Napravite LED ploču

Napravite LED panel
Napravite LED panel
Napravite LED panel
Napravite LED panel
Napravite LED panel
Napravite LED panel

Sada dolazimo do vrhunca ovog projekta, u doslovnom smislu. LED panel.

Koristimo naše škare za rezanje metala da izrežemo komad 12, 2cm x 8cm iz lima metala. Budite oprezni dok to radite jer škare stvaraju vrlo oštre rubove. Izgladit ćemo ih našom datotekom i malo brusnog papira. Zatim dodajemo naš sljedeći predložak za bušenje rupa za vijke i žice.

Vrijeme je za pripremu stvarnih LED dioda.

Prvo smo ih izrezali na tri trake od po 6 LED dioda. Neke LED trake dolaze s vrlo tankim ljepljivim slojem ili bez ljepila, pa ćemo naše trake zalijepiti na komad dvostrane trake i izrezati nožem po veličini. Tako će se zalijepiti za metalnu ploču i, iako ovo nije profesionalno rješenje, izolirat će bakrene jastučiće od metalne površine ispod.

Prije nego što zaista zalijepimo trake na ploču, očistimo je alkoholom. Dok pričvršćujemo LED diode, moramo paziti da ih postavimo na pravo mjesto, kao i u pravom smjeru. Male strelice na LED traci pokazuju smjer u kojem podaci putuju kroz traku.

Kao što možete vidjeti na petoj slici, naša linija podataka dolazi iz gornjeg lijevog kuta ploče, prolazi kroz prvu traku sve do desne strane, pa natrag do početka sljedeće trake s lijeve strane i tako dalje. Dakle, sve naše strelice moraju biti usmjerene na desnu stranu.

Zagrijmo naš ion za lemljenje i stavimo malo kositra na bakrene jastučiće, kao i na našu žicu. Linije za podatke su povezane kako sam upravo opisao, dok jednostavno povezujemo plus i minus jastučiće trake paralelno.

Nakon što su trake ožičene, nožem pažljivo podižemo krajeve svake trake držeći LED diode prema dolje, tako da i dalje pokazuju prema gore. Zatim ispod stavimo malo vrućeg ljepila kako bismo izolirali naše lemne spojeve.

Nakon što to učinite i dodamo nekoliko iglica zaglavlja žicama koje idu na PCB. Te žice trebaju biti dugačke oko 16 cm. Da bismo bili sigurni da metalna ploča ne krati ništa, koristimo multimetar za mjerenje otpora između svih pinova. Ako pokazuje nešto iznad 1 kOhm, sve je u redu.

Sada ga možemo spojiti na Arduino, pokrenuti najsuvremenije i uživati u bojama.

Korak 5: Napravite svjetlosni vodič

Napravite svjetlosni vodič
Napravite svjetlosni vodič
Napravite svjetlosni vodič
Napravite svjetlosni vodič
Napravite svjetlosni vodič
Napravite svjetlosni vodič
Napravite svjetlosni vodič
Napravite svjetlosni vodič

Ako naš LED panel stavimo odmah iza mliječnog akrila, može biti prilično teško razlikovati pojedinačne LED diode. Ovo bi dodatno otežalo čitanje našeg sata nego što već jeste.

Da bismo riješili ovaj problem, napravit ćemo si mali svjetlosni vodič. Za to smo jednostavno izrezali drugi komad MDF -a, koji ima istu veličinu kao i prednja ploča. Zatim mu dodamo još jedan predložak i izbušimo osamnaest rupa od 3,5 mm za LED diode, kao i četiri rupe od 4,5 mm za vijke u njih. Zatim ga možemo pričvrstiti na prednju ploču i upotrijebiti neki brusni papir za poravnanje dvaju.

Kao što možete vidjeti na posljednjoj slici, svjetlo sada izgleda mnogo fokusiranije.

Korak 6: Napravite okvir dugmeta

Napravite okvir dugmeta
Napravite okvir dugmeta
Napravite okvir dugmeta
Napravite okvir dugmeta
Napravite okvir dugmeta
Napravite okvir dugmeta

Posljednja komponenta kućišta koju ćemo napraviti je okvir dugmeta.

Mi smo opet izrezali komad MDF -a na odgovarajuću veličinu i dodali mu predložak, a zatim izbušili sve potrebne rupe i našom testerom za izrezivanje izrezali srednji dio.

Naš okvir bi trebao držati 4 dodirna dugmeta, senzor svjetla i naš mali zvučnik na mjestu. Prije nego što ih možemo pričvrstiti na okvir, izrezali smo nekoliko manjih poklopca iz MDF -a. Zatim vruće lijepimo naše komponente na te poklopce i dodajemo im žice.

Jastučići za napajanje dodirnog dugmeta spojeni su paralelno, dok svaka izlazna linija dobija zasebnu žicu. Ovo je također dobar trenutak za testiranje rade li svi. Kako svjetlosnom senzoru treba 5 volti s jedne strane, jednostavno ga možemo priključiti na VCC jastučić za alarmne tipke i lemiti žicu na drugu nogu.

Nakon što se ploče pripreme, izrežemo stranice okvira, kako bismo napravili mjesta za njih i njihove žice.

Zatim uklanjamo drvenu prašinu sa svih komada usisavačem i prekrivamo ih vinilskom folijom.

Preciznim nožem uklanjamo komade vinila, neposredno iznad osjetljivih područja naših modula na dodir. Pomoću neke dvostrane trake možemo pričvrstiti vlastite tipke na MDF. Napravio sam gumbe od pjene od gume koja im daje lijepu, meku teksturu, ali možete koristiti bilo koji nemetalni materijal koji želite.

Na okviru nožem ponovo oslobađamo malo MDF -a, što nam daje gripnu površinu za vruće ljepilo. Zatim konačno možemo zalijepiti komponente na stranice okvira.

Korak 7: Lemite glavnu PCB

Lemite glavnu PCB
Lemite glavnu PCB
Lemite glavnu PCB
Lemite glavnu PCB
Lemite glavnu PCB
Lemite glavnu PCB

Ostavimo okvir onako kako je sada i pređimo na PCB. Raspored PCB -a možete vidjeti na prvoj slici.

Započinjemo postavljanjem komponenti s najnižim profilom na pločicu. Najmanje komponente su žičani mostovi, kojih sam se sjetio malo prekasno, pa sam počeo s otpornicima. Lemimo naše komponente na mestu i prelazimo na sledeći viši skup komponenti.

Sljedeće imamo naše ženske igle zaglavlja. Da bismo uštedjeli malo prostora i mogli priključiti našu elektroniku sa strane, montiramo je pod kutom od 90 stupnjeva.

Tranzistori zapravo ne odgovaraju razmaku rupa od 2, 54 mm na našoj PCB -u, pa pomoću kliješta pažljivo savijamo noge prema obliku prikazanom na drugoj slici. Prvo smo im lemili jednu nogu i okrenuli PCB. Zatim ponovno zagrijavamo lemni spoj i prstom ili kliještem ispravno postavimo komponentu. Sada možemo lemiti ostale dvije noge na mjestu.

Nakon svih malih komponenti lemili smo naš Arduino i naš modul sata u stvarnom vremenu. RTC modul također ne odgovara tako dobro razmaku rupa, pa ćemo opremiti samo onu stranu koja ima 7 lemilica s zaglavljima. Nadalje, ispod njega stavljamo traku kako bismo spriječili kratke spojeve.

Budući da su sve naše komponente lemljene na mjestu, vrijeme je za povezivanje s druge strane ploče. Za to ćemo izvaditi našu neizoliranu žicu. Za ispravljanje se mogu koristiti kliješta. Zatim režemo žicu na manje komade i lemimo je na PCB.

Za povezivanje zagrijavamo lemni spoj i umetnemo žicu. Zatim držimo lemni ion na njemu, dok ne postigne odgovarajuću temperaturu i lem ga ne zatvori i dobijemo spoj, koji izgleda kao onaj na slici. Ako ne zagrijemo žicu, mogli bismo završiti hladnim spojem, koji bi izgledao slično kao u drugom primjeru i ne vodi se baš najbolje. Možemo koristiti naš rezač žice da gurnemo žicu prema dolje tijekom lemljenja i provjerimo je li položena ravno na PCB. Na dužim putevima povezivanja lemimo ga na jednu podlogu svakih 5 do 6 rupa dok ne dođemo do ugla ili sljedeće komponente.

U kutu smo prerezali žicu iznad prve polovice lemilice i lemimo joj kraj. Zatim uzmemo novi komad žice i odatle nastavimo pod pravim kutom.

Uspostavljanje tih praznih žičanih veza prilično je lukavo i zahtijeva određenu vještinu, pa ako ovo radite prvi put, definitivno nije loša ideja vježbati ga na otpadnom PCB -u, prije nego što to pokušate učiniti na pravom.

Nakon što završimo sa lemljenjem, ponovo provjeravamo veze i provjeravamo da nismo izazvali kratke spojeve. Zatim možemo staviti PCB unutar okvira dugmeta i koristiti ga kao referencu za potrebne dužine žica okvira. Zatim smo odrezali te žice na pravu duljinu i dodali im muške zaglavlje.

Svi priključci od 5 V i uzemljenja dodirnih tipki spajaju se u 2 -pinski konektor, 4 izlazne žice dobivaju 4 -pinski konektor i liniju svjetlosnog senzora, kao i dvije žice zvučnika spojene u tropolni konektor. Ne zaboravite označiti jednu stranu svake utičnice i priključka oštricom ili trakom kako ih slučajno ne biste priključili na pogrešan način.

Korak 8: Sastavite sat

Sastavite sat
Sastavite sat
Sastavite sat
Sastavite sat
Sastavite sat
Sastavite sat
Sastavite sat
Sastavite sat

Nakon toga vratio sam se na prednju ploču i pažljivo nanio naljepnicu, napravljenu od prozirne laserske folije za štampač, kao posljednji dodir.

Iako sam ga nanosio vrlo oprezno, nisam uspio dobiti rezultat bez mjehurića, što je nažalost jasno vidljivo pomnijim pregledom. Folija se također ne lijepi dobro za uglove, pa ne mogu preporučiti ovo rješenje.

To bi se vjerovatno moglo učiniti boljom naljepnicom ili, ako dobro crtate, brojeve možete dodati oštricom.

Sada imamo sve komponente i možemo sastaviti sat.

Počinjemo tako da spojimo svjetlosni vodič i prednju ploču zajedno. Nakon što su umetnuta sva 4 vijka, poravnamo dvije ploče i zatim ih zategnemo. Nekoliko oraha kasnije dolazi svjetlosna ploča, gdje moramo pogledati smjer. Kabel bi trebao biti na vrhu.

Treći dio je okvir dugmeta. Imajte na umu da bi, gledajući s prednje strane, zvučnik trebao biti s desne strane sata. Povucite kabel svoje LED ploče kroz sredinu okvira, prije nego što ga pričvrstite na mjesto.

Sada stavljamo prednji sklop u pomoć i prelazimo na stražnju ploču. Na slici možete vidjeti i moj lijepi mini USB adapter od 90 stepeni koji sam napravio. Povezao sam vam odgovarajući adapter, pa nećete morati da se nosite sa ovakvim neredom. Možete jednostavno priključiti adapter i provesti kabel kroz rupu na stražnjoj ploči.

Uzimamo naše vijke M3 i odstojnike za PCB, da popravimo mali prozor. Važno je pažljivo zategnuti vijke jer ne želimo oštetiti naš akril. Zatim uzimamo našu tiskanu ploču, priključujemo naš adapter i pričvršćujemo ga na odstojnike. Komponentna strana bi trebala biti okrenuta prema prozoru, dok USB priključak Arduina gleda prema dnu sata.

Zatim priključujemo sve konektore s prednjeg sklopa, imajući na umu polaritet i pažljivo uguramo sve žice u sat. Zatim ga možemo zatvoriti stražnjom stranom i zategnuti 4 preostale matice.

Na kraju, želite imati podlošku sa svake strane svake ploče, dok je vodič za svjetlo postavljen neposredno iza prednje ploče. Imamo jednu maticu između svjetlosnog vodiča i LED ploče i još dvije, koje je odvajaju od okvira dugmeta. To možete vidjeti i na posljednjoj slici.

Kako sam koristio kratke vijke duljine 40 mm, imam samo 3 matice koje drže stražnju ploču i okvir odvojene. S desnim vijcima od 45 mm ovdje biste dodali još jednu maticu, kao i jednu ili dvije dodatne podloške. Na kraju montaže imamo našu maticu za zaključavanje, tako da sve ostane na svom mjestu.

Korak 9: Postavite kôd i kalibrirajte svjetlosni senzor

Otpremite kôd i kalibrirajte svjetlosni senzor
Otpremite kôd i kalibrirajte svjetlosni senzor
Otpremite kôd i kalibrirajte svjetlosni senzor
Otpremite kôd i kalibrirajte svjetlosni senzor
Otpremite kôd i kalibrirajte svjetlosni senzor
Otpremite kôd i kalibrirajte svjetlosni senzor

Vrijeme je za učitavanje našeg koda.

Prvo preuzimamo sve potrebne datoteke i raspakiramo ih. Zatim otvaramo mapu Arduino biblioteka i u nju stavljamo sve nove biblioteke.

Sada otvaramo skicu kalibracije senzora svjetla koja će nam dati svijetle i tamne vrijednosti za funkciju automatskog zatamnjivanja sata. Prenosimo ga, otvorimo serijski monitor i slijedimo upute na ekranu.

Nakon što to učinimo, otvaramo stvarni kod binarnih satova i zamjenjujemo dvije vrijednosti s onima koje smo upravo izmjerili.

Zatvaramo sve ostale prozore, učitavamo kôd na sat i gotovi smo.

Vrijeme je za igru s našim novim gadžetom.

Korak 10: Brzi uvod u binarni sistem

Kratak uvod u binarni sistem
Kratak uvod u binarni sistem
Kratak uvod u binarni sistem
Kratak uvod u binarni sistem
Kratak uvod u binarni sistem
Kratak uvod u binarni sistem
Kratak uvod u binarni sistem
Kratak uvod u binarni sistem

Prije nego nastavimo, želio bih odgovoriti na jedno pitanje koje vam je vjerojatno već prošlo kroz glavu, "Kako, za ime svijeta, čitate ovaj sat?"

Pa, za ovo bih vam želio dati kratak uvod u binarni sistem.

Svima nam je poznat decimalni sistem, gdje svaka znamenka može imati 10 različitih stanja, u rasponu od 0 do 9. U binarnom obliku svaka znamenka može imati samo dva stanja, bilo 1 ili 0, zato možete koristiti nešto tako jednostavno kao što je prikazati binarni broj.

Za prikaz brojeva koji su veći od 9 u decimalnim mjestima, dodajemo još znamenki. Svaka znamenka dolazi s određenim množiteljem. Prva znamenka s desne strane dolazi s množiteljem 1, sljedeća je 10, a sljedeća 100. Sa svakom novom znamenkom množitelj je deset puta veći od onog na prethodnoj znamenci. Dakle, znamo da broj dva postavljen jednu znamenku lijevo predstavlja broj 20. Dok dvije znamenke lijevo predstavljaju 200.

U binarnom sistemu svaka cifra dolazi sa množiteljem. Međutim, kako svaka znamenka može imati samo dva različita stanja, svaki novi množitelj je dva puta veći od prethodnog. Oh i usput, binarne znamenke se zovu bitovi. Pa pogledajmo naš prvi primjer, ako stavimo 1 na najnižu poziciju, to je jednostavna 1, ali ako je postavimo na sljedeću višu poziciju, gdje je naš množitelj 2, predstavlja broj 2 u binarnom obliku.

Što kažete na malo lukaviji primjer na dnu slike. Treći i prvi bit su uključeni. Da bismo dobili decimalni broj koji je ovdje predstavljen, jednostavno zbrajamo vrijednosti dva bita. Dakle 4 * 1 + 1 * 1 ili 4 + 1 daje nam broj 5.

8 bita se naziva bajtom, pa da vidimo koji ćemo broj dobiti ako cijeli bajt ispunimo jedinicama.1+2+4+8+16+32+64+128 to je 255 što je najveća vrijednost koju jedan bajt može imati.

Usput, dok je u decimalnom sistemu cifra sa najvećim množiteljem uvijek na prvom mjestu, imate dva načina zapisivanja broja u binarnom obliku. Ove dvije metode se nazivaju najmanji značajni prvi bajt (LSB) i prvi najznačajniji bajt (MSB). Ako želite čitati binarni broj, morate znati koji se od dva formata koristi. Kako je bliži decimalnom sistemu, naš binarni sat koristi MSB varijantu.

Vratimo se našem primjeru iz stvarnog svijeta. Kao što je istaknuto na šestoj slici, naš sat ima 4 bita za prikaz sata. Zatim imamo 6 bita za minutu i 6 bita za drugu. Nadalje, imamo jedan am/pm bit.

U redu, reci mi koliko je sati na šestoj slici, pa pređi na posljednju.. ….

u odjeljku sati imamo 2+1 što je 3 i bit za pm je uključen pa je večer. Slijedi minuta 32+8, to jest 40. Za sekunde imamo 8+4+2 što je 14. Dakle, to je 15:40:14 popodne ili 15:40:14.

Čestitamo, upravo ste naučili čitati binarni sat. Naravno da je potrebno neko navikavanje i na početku ćete morati zbrajati brojeve, svaki put kad želite znati koliko je sati, ali slično analognom satu bez brojčanika, naviknete se na LED obrasce vrijeme.

I to je dio onoga o čemu se radi u ovom projektu, uzimajući nešto tako apstraktno kao što je binarni sistem u stvarni svijet i bolje ga upoznajući.

Korak 11: Upotreba binarnog budilnika

Upotreba binarnog budilnika
Upotreba binarnog budilnika
Upotreba binarnog budilnika
Upotreba binarnog budilnika
Upotreba binarnog budilnika
Upotreba binarnog budilnika

Sada se konačno želimo poigrati sa satom, pa bacimo brzi pogled na kontrole.

Softver može razlikovati jedan dodir dugmeta, dvostruki dodir i dugi dodir. Tako se svako dugme može koristiti za više radnji.

Dvostrukim dodirom na tipku gore ili dolje mijenja se način rada LED -a u boji. Možete birati između različitih statičkih i nestajućih načina boje, kao i temperaturnog načina. Ako se nalazite u jednom od statičkih načina rada boje, držanjem tipke gore ili dolje mijenjate boju. U načinu gašenja, jednim dodirom mijenja se brzina animacije.

Da biste postavili način zatamnjivanja, dvaput dodirnite dugme ok. LED ploča označava postavljeni način rada trepćući više puta.

  • Jednom znači da nema prigušivača.
  • Dva puta znači da svjetlinu kontrolira senzor svjetla.
  • Tri puta i LED se automatski isključuju nakon 10 sekundi neaktivnosti.
  • Četiri puta i oba načina zatamnjivanja su kombinirana.

Dugim pritiskom na tipku ok doći ćete u način postavljanja vremena, gdje možete koristiti strelice gore i dolje za promjenu broja. Jednim dodirom na dugme u redu prelazite sa sati na minute, još jednim dodirom i možete postaviti sekunde. Nakon toga, posljednji dodir sprema novo vrijeme. Ako ubrzano uđete u način podešavanja vremena, možete jednostavno pričekati 10 sekundi i sat će ga automatski napustiti.

Kao i kod dugmeta ok, dugim pritiskom na dugme za alarm možete postaviti alarm. Dvostruki dodir dugmeta za alarm aktivira ili deaktivira alarm.

Ako sat zvoni, jednom dodirnete dugme za alarm, da biste ga prebacili u stanje mirovanja 5 minuta ili ga držali, da biste deaktivirali deaktiviranje alarma.

To su sve funkcije koje je sat do sada imao. U budućnosti bih mogao dodati još nešto što možete dobiti ako preuzmete najnoviju verziju firmvera.

Korak 12: Razumijevanje koda (izborno)

Razumijevanje koda (izborno)
Razumijevanje koda (izborno)

Znam da mnogi ljudi ne vole mnogo programiranje. Srećom za te ljude, za izradu i korištenje ovog binarnog sata nije potrebno znanje programiranja. Dakle, ako vas ne zanima programska strana, možete jednostavno preskočiti ovaj korak.

Međutim, ako vas zanima dio o kodiranju, želio bih vam dati opći pregled programa.

Objašnjenje svakog sitnog detalja koda satova bilo bi samo za Instructable, pa ću ga držati jednostavnim objašnjavajući program na objektno orijentiran način.

U slučaju da ne znate što to znači, objektno orijentirano programiranje (OOP) koncept je većine modernih programskih jezika poput C ++. Omogućuje vam organiziranje različitih funkcija i varijabli u takozvane klase. Klasa je predložak iz kojeg možete stvoriti jedan ili više objekata. Svaki od ovih objekata dobiva Ime i vlastiti skup varijabli.

Na primjer, kôd sata koristi nekoliko objekata MultiTouchButton, kao što je alarmButton. To su objekti iz klase MultiTouchButton, koja je dio moje biblioteke Button. Zgodna stvar u vezi s tim objektima je ta što s njima možete sučeljavati slično sa objektima u stvarnom svijetu. Na primjer, možemo provjeriti je li dugme za alarm dvaput dodirnuto pozivom alarmButton.wasDoubleTapped (). Nadalje, implementacija ove funkcije lijepo je skrivena u drugoj datoteci i ne moramo brinuti da li ćemo je slomiti promjenom bilo čega drugog u našem kodu. Brzi ulazak u svijet objektno orijentiranog programiranja možete pronaći na web stranici Adafruit.

Kao što možete vidjeti na gornjoj slici, program satova ima hrpu različitih objekata.

Upravo smo govorili o objektima dugmadi koji mogu interpretirati ulazne signale kao dodir, dvostruki dodir ili dugi pritisak.

Džuboks, kako mu ime govori, može stvarati buku. Ima nekoliko melodija koje se mogu puštati kroz mali zvučnik.

Objekat binaryClock upravlja postavkama vremena i alarma, kao i nadgledanjem alarma. Nadalje, dobiva vrijeme iz rtc modula i pretvara ga u binarni informacijski bafer za ledPanel.

ColorController inkapsulira sve funkcije efekata boje i pruža colorBuffer za ledPanel. Takođe čuva svoje stanje u Arduinos EEPromu.

Prigušivač brine o svjetlini satova. Ima različite načine rada kroz koje se korisnik može kretati. Trenutni način rada također se sprema u EEProm.

LEDPanel upravlja različitim međuspremnicima za vrijednost boje, vrijednost svjetline i binarno stanje svake LED. Kad god se pozove funkcija pushToStrip (), ona ih prekriva i šalje na LED traku.

Svi objekti su "povezani" kroz glavni (datoteka s postavkama i funkcijama petlje), koja uključuje samo nekoliko funkcija za obavljanje 3 bitna zadatka.

  1. Tumačenje korisničkog unosa - dobiva ulaz od 4 objekta dugmeta i stavlja ih kroz logiku. Ova logika provjerava trenutno stanje sata kako bi utvrdila je li sat u normalnom stanju, postavku vremena ili način zvonjenja te u skladu s tim poziva različite funkcije od drugih objekata.
  2. Upravljanje komunikacijom između objekata - Stalno pita objekt binaryClock, ima li na raspolaganju nove informacije ili je alarmRinging (). Ako ima nove informacije, dobiva informationBuffer iz binaryClock -a i šalje ih objektu ledPanel. Ako sat zvoni, pokreće džuboks.
  3. Ažuriranje objekata - Svaki od objekata programa ima proceduru ažuriranja, koja se koristi za stvari poput provjere unosa ili mijenjanja boja LED dioda. Njih je potrebno više puta pozivati u funkciji petlje kako bi sat ispravno radio.

To bi vam trebalo dati opće razumijevanje o tome kako pojedini dijelovi koda rade zajedno. Ako imate konkretnija pitanja, možete me jednostavno pitati.

Kako je moj kôd definitivno daleko od savršenog, u budućnosti ću ga dodatno poboljšati, pa bi se nekoliko funkcija moglo promijeniti. Zgodna stvar kod OOP -a je to što će i dalje raditi na vrlo sličan način i još uvijek možete koristiti grafiku da biste ga razumjeli.

Korak 13: Završne riječi

Završne riječi
Završne riječi

Drago mi je da ste čitali do ove tačke. To znači da moj projekt nije bio previše dosadan:).

Uložio sam gomilu posla u ovaj mali sat, a još više u svu dokumentaciju i video zapise, kako bih vam olakšao izradu vlastitog binarnog budilnika. Nadam se da se moj trud isplatio i da bih vas mogao spojiti sa sjajnom idejom za vaš sljedeći vikend projekat ili vam barem dati inspiraciju.

Volio bih čuti šta mislite o satu u komentarima ispod:).

Iako sam pokušao obuhvatiti svaki detalj, možda sam propustio nešto. Zato slobodno pitajte, ako imate još pitanja.

Kao i uvek, hvala vam na čitanju i srećnom stvaranju.

LED takmičenje 2017
LED takmičenje 2017
LED takmičenje 2017
LED takmičenje 2017

Drugoplasirani na LED takmičenju 2017

Preporučuje se: