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, Srpanj
Anonim
Image
Image

By Basement EngineeringSlijedi Više od 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 svjetiljka i priključna stanica za telefon
Savršena noćna svjetiljka i priključna stanica za telefon
Savršena noćna svjetiljka i priključna stanica za telefon
Savršena noćna svjetiljka i priključna stanica za telefon

O: Bok, 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 radim do … Više o podrumskom inženjeringu »

Hej, danas bih vam želio pokazati kako izgraditi jedan od svojih najnovijih projekata, svoju binarnu budilicu.

Na internetu postoji mnoštvo različitih binarnih satova, ali ovo bi zapravo mogao biti prvi, 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 komplicirani 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:

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

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

Vi idete binarno, a to sam upravo i učinio ovdje.

Ovaj sat je treća takva verzija. Napravio sam vrlo jednostavan prototip odmah nakon što me projektna ideja pogodila i odnio ga u Maker Faire u Hannoveru, da vidim što ljudi misle o tome. Dok sam bio tamo, dobio sam puno 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 budilica, koji ima mnogo više značajki 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

Ovdje je mali popis svih komponenti i alata koji će vam trebati za izradu vlastitog binarnog sata.

Elektronika:

  • 18 Ws2811 LED adresa (npr. Neopikseli) za adresiranje na traci sa 60 LED dioda po m (eBay)
  • Arduino Nano (s procesorom ATMega328) (ebay)
  • 1307 RTC modul (ebay)
  • 4X kapacitivni gumbi na dodir (ebay)
  • bs18b20 digitalni senzor temperature (ebay)
  • LDR (ebay)
  • zvučnik za prijenosno računalo/pametni telefon ili piezo zujalica
  • 2222A NPN tranzistor (ili nešto slično)
  • muški zaglavlja
  • zakrivljena ženska zaglavlja (ebay)
  • 1kOhm otpornik
  • 4, 7kOhm otpornik
  • 10kOhm otpornik
  • Žice
  • 7x5 cm 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 mjedeno PCB stajanje (ebay)
  • 8X 8mm m3 vijak (ebay)
  • aluminijski lim
  • 2 mm list mliječnog akrila
  • List prozirnog akrila od 2 mm
  • 3 mm list MDF -a
  • dvostrana traka

Alati

  • mini USB kabel
  • računalo koje pokreće Arduino IDE
  • Svrdlo 3,5 mm
  • Svrdlo promjera 4,5 mm
  • bušilica
  • nož za rezanje
  • testera za suočavanje
  • lemni ion
  • škare za rezanje metala
  • datoteka
  • brusni papir

Predlošci (sada s dimenzijama)

  • PDF
  • Besplatno izvlačenje ureda

Kodirati

  • Skice
  • Biblioteka gumba
  • Biblioteka mjerača vremena
  • Biblioteka džuboksa
  • Izmijenjeni RTClib
  • Knjižnica Adafruit Neopixel
  • Arduino-Biblioteka za kontrolu temperature

Korak 2: Izrežite prednju i stražnju ploču

Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju ploču
Izrežite prednju i stražnju 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 rub stola i saviti akril dok se ne slomi.

Nakon što je prednja ploča izrezana po veličini, izrezali smo stražnju ploču iz komada MDF -a. Za to možemo koristiti našu pilu za suočavanje, ali nož za rezanje također radi. Moramo samo stegnuti MDF na otpadni komad drveta i strugati ga nožem za rezanje dok oštrica ne prođe i dok ne 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 probijati se dok ne dosegnemo željeni promjer rupe. Zatim pomoću predloška brusimo kutove u pravi oblik.

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

Završite stražnju ploču
Završite stražnju ploču
Završite stražnju ploču
Završite stražnju ploču
Završite stražnju ploču
Završite stražnju ploču
Završite stražnju ploču
Završite stražnju 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 4 razdjelnika, kao i 4 rupe koje označavaju rubove za mali stražnji prozor.

Zatim smo našom testerom za rezanje 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 raditi takve stvari: D).

Kako smo sada završili s rezanjem stražnje ploče, možemo je nastaviti umotati u vinilni omot. 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 ponovno 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 ploču
Napravite LED ploču
Napravite LED ploču
Napravite LED ploču
Napravite LED ploču
Napravite LED ploču

Sada dolazimo do vrhunca ovog projekta, u doslovnom smislu. LED ploča.

Koristimo naše škare za rezanje metala da izrežemo komad 12, 2cm x 8cm iz lima metala. Pri tome budite oprezni 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 sa po 6 LED dioda. Neke LED trake dolaze s vrlo tankim ljepljivim slojem ili bez ikakvog ljepila, pa ćemo svoje trake zalijepiti na komad dvostrane trake i rezati 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 zapravo 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 podatkovna linija dolazi iz gornjeg lijevog kuta ploče, prolazi kroz prvu traku sve do desne strane, zatim 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 žicu. Podatkovne linije su spojene kako sam upravo opisao, dok jednostavno paralelno spojimo plus i minus jastučiće trake.

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činimo, žicama koje idu na PCB dodamo nekoliko zaglavlja igle. Te bi žice trebale biti dugačke oko 16 cm. Kako bismo bili sigurni da metalna ploča ništa ne kratki, 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šu LED ploču stavimo odmah iza mliječnog akrila, može biti prilično teško razlikovati pojedine LED diode. Time bi naš sat bio još teži za čitanje, nego što već jest.

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 njega. Zatim ga možemo pričvrstiti na prednju ploču i upotrijebiti neki brusni papir za poravnavanje dvaju.

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

Korak 6: Napravite okvir gumba

Napravite okvir gumba
Napravite okvir gumba
Napravite okvir gumba
Napravite okvir gumba
Napravite okvir gumba
Napravite okvir gumba

Posljednja komponenta kućišta koju ćemo izraditi je okvir gumba.

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 trebao bi držati 4 tipke na dodir, senzor svjetla i naš mali zvučnik na mjestu. Prije nego što ih možemo pričvrstiti na okvir, izrezali smo nekoliko manjih pokrova iz MDF -a. Zatim vruće lijepimo naše komponente na te poklopce i dodajemo im žice.

Jastučići za napajanje dodirnog gumba spojeni su paralelno, dok svaki izlazni vod dobiva zasebnu žicu. Ovo je također dobar trenutak za testiranje rade li svi. Budući da svjetlosnom senzoru s jedne strane treba 5 volti, jednostavno ga možemo spojiti na VCC jastučić alarmnih gumba i lemiti žicu na drugu nogu.

Nakon što su ploče pripremljene, izrezali smo strane 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, izravno iznad osjetljivih područja naših modula na dodir. Pomoću neke dvostrane trake možemo pričvrstiti vlastite gumbe na MDF. Gumbe sam izradio od pjene od gume koja im daje lijepu, mekanu teksturu, ali možete koristiti bilo koji nemetalni materijal koji želite.

Na okviru nožem ponovno 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 prijeđimo na PCB. Na prvoj slici možete vidjeti izgled PCB -a.

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 mjestu i prelazimo na sljedeći viši skup komponenti.

Sljedeće imamo naše ženske igle zaglavlja. Kako 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 na mjestu 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 klinovima zaglavlja. Nadalje, ispod nje stavljamo traku kako bismo spriječili kratke spojeve.

Kako su sve naše komponente lemljene na mjestu, sada je vrijeme za povezivanje s druge strane ploče. Za to ćemo izvaditi našu neizoliranu žicu. Za ravnanje 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 ion za lemljenje na njemu, dok ne dosegne 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 s hladnim spojem, koji bi izgledao slično kao u drugom primjeru i ne vodi se baš najbolje. Možemo upotrijebiti rezač žice za guranje žice prema dolje tijekom lemljenja i pobrinuti se da leži ravno na PCB -u. Na duljim stazama povezivanja lemimo ga na jedan jastučić 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 nastavimo odatle 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 s lemljenjem, ponovno provjeravamo spojeve i provjeravamo nismo li izazvali kratke spojeve. Zatim možemo staviti PCB unutar okvira gumba i koristiti ga kao referencu za potrebne duljine žica okvira. Zatim smo odrezali te žice na odgovarajuću duljinu i dodali im muške zaglavlje.

Svi 5V i uzemljeni spojevi dodirnih gumba 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 pisač, kao posljednji dodir.

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

To bi se vjerojatno moglo učiniti boljom naljepnicom ili, ako ste dobri u crtanju, 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 uđu sva 4 vijka, poravnamo dvije ploče i zatim ih zategnemo. Par 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 učvrstite na mjestu.

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 stupnjeva koji sam napravio. Povezao sam vam odgovarajući adapter pa se nećete morati nositi s ovakvim neredom. Možete jednostavno priključiti adapter i provesti kabel kroz rupu na stražnjoj ploči.

Uzimamo naše vijke M3 i naše razmaknice 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 trebala bi 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 uvlačimo 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 izravno iza prednje ploče. Imamo jednu maticu između svjetlosnog vodiča i LED ploče i još dvije, odvajajući je od okvira gumba. 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 odvojeno. S pravim 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: Prenesite kôd i kalibrirajte svjetlosni senzor

Prenesite kôd i kalibrirajte svjetlosni senzor
Prenesite kôd i kalibrirajte svjetlosni senzor
Prenesite kôd i kalibrirajte svjetlosni senzor
Prenesite kôd i kalibrirajte svjetlosni senzor
Prenesite kôd i kalibrirajte svjetlosni senzor
Prenesite kôd i kalibrirajte svjetlosni senzor

Vrijeme je za učitavanje našeg koda.

Prvo preuzimamo sve potrebne datoteke i raspakiramo ih. Zatim otvorimo mapu Arduino knjižnica i u nju ispuštamo sve nove knjižnice.

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, otvorimo stvarni kod binarnih satova i zamijenimo 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 gadgetom.

Korak 10: Brzi uvod u binarni sustav

Kratak uvod u binarni sustav
Kratak uvod u binarni sustav
Kratak uvod u binarni sustav
Kratak uvod u binarni sustav
Kratak uvod u binarni sustav
Kratak uvod u binarni sustav
Kratak uvod u binarni sustav
Kratak uvod u binarni sustav

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

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

Svima nam je poznat decimalni sustav, 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 iz znamenke prije. Dakle, znamo da broj dva postavljen jednu znamenku lijevo predstavlja broj 20. Dok dvije znamenke lijevo predstavljaju 200.

U binarnom sustavu svaka znamenka također dolazi s množiteljem. No, kako svaka znamenka može imati samo dva različita stanja, svaki novi množitelj dva je puta veći od prethodnog. Oh i usput, binarne znamenke se zovu Bitovi. Pogledajmo dakle naš prvi primjer, ako stavimo 1 na najnižu poziciju to je jednostavan 1, ali ako ga postavimo na sljedeću višu poziciju, gdje nam je množitelj 2, predstavlja broj 2 u binarnom obliku.

Što kažete na malo lukaviji primjer na dnu slike. Uključeni su treći i prvi dio. 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 bitova naziva se 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 sustavu znamenka s najvećim množiteljem uvijek na prvom mjestu, imate dva načina zapisivanja broja u binarnom obliku. Te se dvije metode nazivaju najmanji prvi bajt (LSB) i najznačajniji prvi bajt (MSB). Ako želite čitati binarni broj, morate znati koji se od dva formata koristi. Kako je bliži decimalnom sustavu, 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 bit am/pm.

U redu, reci mi koliko je sati na 6. slici, pa preskoč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 ili 15:40:14.

Čestitamo, upravo ste naučili čitati binarni sat. Naravno da je potrebno neko privikavanje 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 uzorke LED dioda vrijeme.

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

Korak 11: Korištenje binarnog budilnika

Korištenje binarnog budilnika
Korištenje binarnog budilnika
Korištenje binarnog budilnika
Korištenje binarnog budilnika
Korištenje binarnog budilnika
Korištenje binarnog budilnika

Sada se napokon želimo poigrati sa satom pa bacimo brzi pogled na kontrole.

Softver može razlikovati jedan dodir jednim gumbom, dvostruki dodir i dugi dodir. Tako se svaki gumb može koristiti za više radnji.

Dvostruki dodir gumba za gore ili dolje mijenja 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čnih načina rada boje, držanjem gumba za gore ili dolje mijenja se boja. U načinu blijeđenja jednim dodirom mijenja se brzina animacije.

Za postavljanje načina zatamnjivanja dvaput dodirnite gumb ok. LED ploča označava postavljeni način rada više puta trepćući.

  • Jedno vrijeme 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 pomoću strelica gore i dolje možete promijeniti broj. Jednim dodirom na gumb u redu prelazite sa sati u minute, još jednim dodirom i možete postaviti sekunde. Nakon toga, posljednji dodir sprema novo vrijeme. Ako brzo uđete u način podešavanja vremena, možete jednostavno pričekati 10 sekundi i sat će ga automatski napustiti.

Kao i kod gumba ok, dugim pritiskom na gumb alarma možete postaviti alarm. Dvostrukim dodirom gumba alarma aktivira se ili deaktivira alarm.

Ako sat zvoni, jednom dodirnite gumb alarma, da biste ga poslali u stanje mirovanja 5 minuta ili ga držali, da biste deaktivirali deaktiviranje alarma.

To su bile 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 baš 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 ste zainteresirani za dio kodiranja, želio bih vam dati opći pregled programa.

Objašnjenje svakog sitnog detalja koda satova bilo bi samo za Instructable pa ću to pojednostaviti 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 naziv 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 knjižnice Button. Zgodna stvar u vezi s tim objektima je to što se možete sučeliti s njima slično objektima iz stvarnog svijeta. Na primjer, možemo provjeriti je li gumb za alarm dvaput dodirnut pozivom alarmButton.wasDoubleTapped (). Nadalje, implementacija ove funkcije lijepo je skrivena u drugoj datoteci i ne moramo brinuti o njezinom razbijanju, 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 razgovarali o objektima gumba 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 reproducirati kroz mali zvučnik.

Objekt binaryClock upravlja vremenom i postavkama alarma, kao i promatranjem alarma. Nadalje, dobiva vrijeme od rtc modula i pretvara ga u binarni informacijski međuspremnik za ledPanel.

ColorController inkapsulira sve funkcije efekata boje i osigurava colorBuffer za ledPanel. Također sprema svoje stanje u Arduinos EEProm.

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 su objekti "povezani" kroz glavni (datoteka s postavkama i funkcijama petlje), koja uključuje samo nekoliko funkcija za izvršavanje 3 bitna zadatka.

  1. Tumačenje korisničkog unosa - dobiva ulaz od 4 objekta gumba i stavlja ih kroz logiku. Ova logika provjerava trenutno stanje sata kako bi utvrdila je li sat u normalnom stanju, vrijeme podešavanja ili način zvonjenja te u skladu s tim poziva različite funkcije od ostalih 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 u objekt ledPanel. Ako sat zvoni, pokreće džuboks.
  3. Ažuriranje objekata - Svaki od objekata programa ima postupak ažuriranja, koji 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 moglo promijeniti nekoliko funkcija. 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 sada. 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, kako bih vam olakšao izradu vlastitog binarnog budilnika. Nadam se da se moj trud isplatio i da bih vam mogao spojiti sjajnu ideju za vaš sljedeći vikend projekt ili vam barem dati inspiraciju.

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

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

Kao i uvijek, puno vam hvala na čitanju i sretnom stvaranju.

LED natjecanje 2017
LED natjecanje 2017
LED natjecanje 2017
LED natjecanje 2017

Drugoplasirani na LED natjecanju 2017

Preporučeni: