Cuprins:

Ceas cu alarmă binară bazat pe Arduino: 13 pași (cu imagini)
Ceas cu alarmă binară bazat pe Arduino: 13 pași (cu imagini)

Video: Ceas cu alarmă binară bazat pe Arduino: 13 pași (cu imagini)

Video: Ceas cu alarmă binară bazat pe Arduino: 13 pași (cu imagini)
Video: Ceas binar cu PIC 16F877A 2024, Iulie
Anonim
Image
Image

De Basement Engineering Urmăriți mai multe de la autor:

DIY Laser People Counter
DIY Laser People Counter
Construirea unei bărci cu conducere automată (ArduPilot Rover)
Construirea unei bărci cu conducere automată (ArduPilot Rover)
Construirea unei bărci cu conducere automată (ArduPilot Rover)
Construirea unei bărci cu conducere automată (ArduPilot Rover)
Lampa de noptieră perfectă și stația de telefon
Lampa de noptieră perfectă și stația de telefon
Lampa de noptieră perfectă și stația de telefon
Lampa de noptieră perfectă și stația de telefon

Despre: Bună, mă numesc Jan și sunt un producător, îmi place să construiesc și să creez lucruri și sunt, de asemenea, destul de bun la repararea lucrurilor. Din moment ce pot să cred că mi-a plăcut întotdeauna să creez lucruri noi și asta continuă să fac până … Mai multe despre Ingineria subsolului »

Hei, astăzi aș vrea să vă arăt cum să construiesc unul dintre cele mai recente proiecte ale mele, ceasul meu de alarmă binar.

Există o mulțime de ceasuri binare diferite pe internet, dar acesta ar putea fi de fapt primul, realizat dintr-o bandă de LED-uri colorabile adresabile, care are, de asemenea, o funcție de alarmă și butoane tactile, pentru a seta lucruri precum ora și culoarea.

Vă rugăm să nu lăsați aspectul complicat al acestuia să vă sperie. Cu o mică explicație, citirea binarului nu este de fapt atât de dificilă pe cât pare. Și dacă sunteți dispus să aflați ceva nou, aș dori să vă ajut să faceți acest lucru mai târziu.

Permiteți-mi să vă povestesc puțin despre povestea din spatele acestui proiect:

Inițial am planificat să construiesc un ceas „normal”, care să folosească LED-urile așa cum sunt mâinile, dar nu aveam suficiente LED-uri la îndemână.

Sooo, ce faci când vrei să afișezi ora cu cât mai puține LED-uri?

Mergi binar și exact asta am făcut aici.

Acest ceas este a treia versiune de acest gen. Am construit un prototip foarte simplu imediat după ce m-a lovit ideea de proiect și l-am dus la Maker Faire din Hanovra, pentru a vedea ce cred oamenii despre asta. În timp ce am fost acolo, am primit o mulțime de feedback-uri foarte pozitive și interesante, precum și idei de îmbunătățire.

Rezultatul tuturor acestor idei și ore de gândire, bricolaj și programare este acest ceas cu alarmă destul de interesant, care are mult mai multe caracteristici decât versiunea 1.0 și astăzi vom parcurge fiecare etapă a procesului de construcție, astfel încât să puteți construiește cu ușurință unul singur.

Există, de asemenea, un videoclip foarte detaliat pe Youtube, în cazul în care nu doriți să citiți totul.

Pasul 1: Obțineți lucrurile

Ia-ți lucrurile
Ia-ți lucrurile
Ia-ți lucrurile
Ia-ți lucrurile
Ia-ți lucrurile
Ia-ți lucrurile

Iată o mică listă cu toate componentele și instrumentele de care veți avea nevoie pentru a vă construi propriul ceas binar.

Electronică:

  • 18 LED-uri Ws2811 adresabile (de ex. Neopixeli) pe o bandă cu 60 de LED-uri pe m (ebay)
  • Arduino Nano (cu procesor ATMega328) (ebay)
  • Modulul 1307 RTC (eBay)
  • 4X butoane tactile capacitive (eBay)
  • Senzor digital de temperatură bs18b20 (ebay)
  • LDR (ebay)
  • difuzor laptop / smartphone sau buzzer piezo
  • 2222A tranzistor NPN (sau ceva similar)
  • anteturi masculine
  • anteturi feminine unghiulare (eBay)
  • Rezistor 1kOhm
  • Rezistor de 4, 7kOhm
  • Rezistor de 10kOhm
  • Fire
  • 7x5cm PCB de prototipare 24x18 găuri (eBay)
  • sârmă de argint (sârmă de bijuterii) (eBay)
  • Mini adaptor usb 90 ° (ebay)

Alte materiale

  • Folie de vinil
  • Șuruburi cu cap flanșă 4X 45mm m4 (ebay)
  • Șaibe metalice 32X m4
  • Piuliță de blocare 4X m4
  • Piuliță de 28X m4
  • 4X 10mm m3 alamă PCB standoff (ebay)
  • Șurub 8X 8mm m3 (eBay)
  • foaie de aluminiu
  • Foaie de 2 mm din acrilic lăptos
  • Foaie de 2 mm din acrilic transparent
  • Foaie de MDF de 3 mm
  • bandă cu două fețe

Instrumente

  • mini cablu USB
  • computer care rulează Arduino IDE
  • Burghie de 3, 5 mm
  • Burghie de 4, 5 mm
  • burghiu electric
  • cuțit de tăiat
  • ferăstrău de coping
  • ion de lipit
  • foarfece de tăiere a metalelor
  • fişier
  • hârtie de nisip

Șabloane (acum cu dimensiuni)

  • PDF
  • Libre Office Draw

Cod

  • Schițe
  • Biblioteca de butoane
  • Biblioteca cu temporizator
  • Biblioteca Jukebox
  • RTClib modificat
  • Biblioteca Adafruit Neopixel
  • Biblioteca Arduino-Controlul temperaturii

Pasul 2: Tăiați panoul frontal și posterior

Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior
Tăiați panoul frontal și posterior

Prima piesă pe care o vom face este panoul frontal din acril. Marcăm încotro vrem să plece tăieturile noastre, ținând cont de faptul că dorim un pic de toleranță la șlefuire. Apoi, pur și simplu răzuim acrilul cu cuțitul tăietor. După ce am făcut asta de 10 până la 20 de ori avem o canelură. Putem apoi așeza acel boschet pe marginea unei mese și îndoim acrilul până când se sparge.

După ce panoul frontal este tăiat la dimensiune, tăiem panoul din spate dintr-o bucată de MDF. Pentru aceasta putem folosi ferăstrăul de coping, dar funcționează și un cuțit de tăiere. Trebuie doar să fixăm MDF pe o bucată de lemn și să o răzuim cu cuțitul tăietor până când lama trece și avem două bucăți individuale.

Acum punem cele două panouri împreună și șlefuim fiecare parte pentru a alinia perfect.

După ce se termină acest lucru, decupăm primul șablon și îl punem pe cele două panouri folosind niște bandă și începem să găurim găurile marcate.

Mai întâi forăm o gaură de 4, 5 mm în fiecare dintre cele 4 colțuri. Deoarece acrilul este foarte fragil și nu vrem să se rupă, vom începe cu un burghiu mic și ne vom îndrepta până vom atinge diametrul dorit al găurii. Apoi folosim șablonul pentru a șlefui colțurile la forma potrivită.

Pasul 3: Finalizați panoul din spate

Finalizați panoul din spate
Finalizați panoul din spate
Finalizați panoul din spate
Finalizați panoul din spate
Finalizați panoul din spate
Finalizați panoul din spate
Finalizați panoul din spate
Finalizați panoul din spate

Deocamdată, putem lăsa panoul frontal deoparte și lipim cel de-al doilea șablon pe panoul din spate, unde trebuie să folosim un burghiu de 3, 5 mm pentru a găuri găurile pentru standurile noastre de 4 buc, precum și 4 găuri care marchează marginile pentru fereastra din spate.

Apoi, folosim ferăstrăul nostru pentru a tăia fereastra și a netezi marginile, cu o pila. De asemenea, nu doriți să uitați să faceți gaura pentru cablul mini USB (am auzit de un producător nu atât de concentrat, care tinde să facă astfel de lucruri: D).

Deoarece acum am terminat de tăiat panoul din spate, putem continua să îl înfășurăm în folie de vinil. Pur și simplu tăiem două bucăți la dimensiunea potrivită și aplicăm prima pe o parte. Apoi tăiem jantele și eliberăm fereastra. Un uscător de păr vă poate ajuta să faceți din nou toate găurile vizibile, astfel încât să le putem tăia. După ce am făcut același lucru pentru cealaltă parte, folosim următorul nostru șablon și tehnica noastră de răzuire și rupere pentru a face fereastra acrilică pentru panoul nostru din spate.

Pasul 4: Faceți panoul LED

Faceți panoul LED
Faceți panoul LED
Faceți panoul LED
Faceți panoul LED
Faceți panoul LED
Faceți panoul LED

Acum venim punctul culminant al acestui proiect, în sensul cel mai literal. Panoul LED.

Folosim foarfecele noastre de tăiere a metalelor pentru a tăia o bucată de 12, 2cm pe 8cm dintr-o foaie de metal. Aveți grijă în timp ce faceți acest lucru, deoarece foarfeca creează muchii foarte ascuțite. O să le netezim pe cele cu fișierul nostru și niște șmirghel. Apoi adăugăm următorul nostru șablon pentru a face găuri pentru șuruburi și fire.

Este timpul să pregătiți LED-urile reale.

Mai întâi, le tăiem în trei benzi de câte 6 LED-uri fiecare. Unele benzi LED vin cu un strat adeziv foarte subțire sau deloc adeziv, așa că vom lipi benzile noastre pe o bucată de bandă dublă și o vom tăia la dimensiune cu un cuțit. Acest lucru îl va face să se lipească de placa metalică și, deși aceasta nu este o soluție profesională, va izola tampoanele de cupru de pe suprafața metalică de dedesubt.

Înainte de a lipi de fapt benzile pe panou, le curățăm cu alcool. În timp ce atașăm LED-urile, trebuie să ne asigurăm că le așezăm în locul potrivit, precum și în direcția corectă. Micile săgeți de pe banda LED indică direcția, în care datele se deplasează prin bandă.

După cum puteți vedea în imaginea a cincea, linia noastră de date vine din colțul din stânga sus al panoului, trece prin prima bandă până la partea dreaptă, decât înapoi la începutul benzii următoare din stânga și așa mai departe. Deci, toate săgețile noastre trebuie să indice spre partea dreaptă.

Să ne încălzim ionul de lipit și să punem niște staniu pe tampoanele de cupru, precum și pe firul nostru. Liniile de date sunt conectate așa cum tocmai am descris, în timp ce conectăm pur și simplu tampoanele plus și minus ale benzii în paralel.

După ce benzile sunt conectate, folosim cuțitul pentru a ridica cu grijă capetele fiecărei benzi în timp ce ținem LED-urile în jos, astfel încât acestea să fie îndreptate în sus. Apoi punem adeziv fierbinte dedesubt pentru a ne izola îmbinările de lipit.

După ce s-a făcut acest lucru și, adăugăm câțiva pini de antet la firele care merg la PCB. Aceste fire trebuie să aibă o lungime de aproximativ 16cm. Pentru a fi mai siguri că panoul metalic nu scurtcircuită nimic, folosim un multimetru pentru a măsura rezistența dintre toți ace. Dacă arată ceva peste 1kOhm, totul este în regulă.

Acum îl putem conecta la un Arduino, putem rula un test de testare și ne putem bucura de culori.

Pasul 5: Faceți un ghid ușor

Faceți un ghid ușor
Faceți un ghid ușor
Faceți un ghid ușor
Faceți un ghid ușor
Faceți un ghid ușor
Faceți un ghid ușor
Faceți un ghid ușor
Faceți un ghid ușor

Dacă punem panoul nostru direct în spatele acrilului lăptos, poate deveni destul de dificil să distingem LED-urile individuale. Acest lucru ne-ar face ceasul și mai greu de citit decât este deja.

Pentru a rezolva această problemă, ne vom face un mic ghid ușor. Pentru aceasta, am tăiat pur și simplu o altă bucată de MDF, care are aceeași dimensiune ca și panoul frontal. Apoi adăugăm încă un șablon și forăm optsprezece găuri de 3, 5 mm pentru LED-uri, precum și patru găuri de 4, 5 mm pentru șuruburile din el. Apoi îl putem fixa pe panoul frontal și putem folosi niște șmirghel pentru a le alinia pe cele două.

După cum puteți vedea în ultima imagine, lumina apare mult mai concentrată acum.

Pasul 6: Realizați cadrul butonului

Realizați cadrul butonului
Realizați cadrul butonului
Realizați cadrul butonului
Realizați cadrul butonului
Realizați cadrul butonului
Realizați cadrul butonului

Ultima componentă a carcasei, pe care o vom realiza, este cadrul butonului.

Noi, cei din nou, tăiem o bucată de MDF la dimensiunea potrivită și adăugăm un șablon la acesta, apoi forăm toate găurile necesare și folosim ferăstrăul nostru de coping, pentru a tăia secțiunea din mijloc.

Cadrul nostru ar trebui să țină cele 4 butoane tactile, senzorul de lumină și difuzorul nostru în poziție. Înainte de a le putea atașa la cadru, tăiem câteva piese de acoperire mai mici din MDF. Apoi, lipim componentele noastre pe acele huse și le adăugăm fire.

Tampoanele de alimentare ale butonului tactil sunt conectate în paralel, în timp ce fiecare linie de ieșire primește un fir individual. Acesta este, de asemenea, un moment bun pentru a testa dacă toate funcționează. Deoarece senzorul de lumină are nevoie de 5 volți pe o parte, îl putem conecta pur și simplu la butoanele de alarmă VCC pad și să lipim un fir pe celălalt picior.

După ce panourile sunt pregătite, tăiem în părțile laterale ale cadrului, pentru a le face loc lor și firelor lor.

Apoi îndepărtăm praful de lemn din toate piesele cu un aspirator și le acoperim în folie de vinil.

Folosim cuțitul de precizie pentru a elimina bucăți de vinil, direct deasupra zonelor sensibile ale modulelor noastre tactile. Cu o bandă dublă, putem atașa propriile butoane la MDF. Mi-am făcut butoanele din spumă de cauciuc, ceea ce le conferă o textură plăcută și moale, dar puteți folosi orice material nemetalic doriți.

Pe cadru, folosim cuțitul pentru a elibera din nou un pic din MDF, ceea ce ne oferă o suprafață aglomerată pentru hotglue. Apoi putem lipi în cele din urmă componentele pe laturile cadrului nostru.

Pasul 7: lipiți placa principală

Lipiți PCB-ul principal
Lipiți PCB-ul principal
Lipiți PCB-ul principal
Lipiți PCB-ul principal
Lipiți PCB-ul principal
Lipiți PCB-ul principal

Să lăsăm cadrul așa cum este acum și să trecem la PCB. Puteți vedea aspectul PCB în prima imagine.

Începem prin plasarea componentelor cu cel mai mic profil pe placa de circuit. Cele mai mici componente sunt podurile de sârmă, pe care mi le-am amintit puțin prea târziu, așa că am început cu rezistoarele. Ne lipim componentele la locul nostru și trecem la următorul set de componente mai mare.

În continuare, avem pinii antetului feminin. Pentru a economisi puțin spațiu și pentru a ne putea conecta dispozitivele electronice din lateral, le montăm într-un unghi de 90 de grade.

Tranzistoarele nu se potrivesc cu adevărat la distanța dintre gauri de 2, 54 mm a PCB-ului nostru, așa că folosim cleștele pentru a îndoi cu grijă picioarele în formă, prezentată în a doua imagine. Mai întâi am lipit unul dintre picioarele lor în loc și întoarcem PCB-ul. Apoi reîncălzim îmbinarea de lipit și folosim degetul sau o clește pentru a poziționa corect componenta. Acum putem lipi celelalte două picioare la locul lor.

După toate componentele mici, am lipit Arduino și modulul nostru de ceas în timp real. De asemenea, modulul RTC nu se potrivește atât de bine cu spațiul dintre gauri, așa că vom echipa doar lateralul, care are 7 tampoane de lipit cu știfturi de antet. Mai mult, așezăm o bandă sub ea, pentru a preveni orice scurtcircuit.

Deoarece toate componentele noastre sunt lipite la locul lor, este momentul să facem conexiunile de cealaltă parte a plăcii. Pentru aceasta vom scoate firul nostru neizolat. Se poate folosi o pereche de clești, pentru a o îndrepta. Apoi tăiem firul în bucăți mai mici și îl lipim pe PCB.

Pentru a face o conexiune, încălzim o îmbinare de lipit și introducem firul. Apoi păstrăm ionul de lipit pe el, până când atinge temperatura potrivită și lipirea îl închide și obținem o îmbinare, care arată ca cea din imagine. Dacă nu încălzim firul, am putea ajunge la o îmbinare rece, care ar arăta similar cu celălalt exemplu și nu se comportă foarte bine. Putem folosi tăietorul de sârmă pentru a împinge firul în jos în timpul lipirii și pentru a ne asigura că este așezat plat pe PCB. Pe căile de conectare mai lungi, îl lipim pe un singur tampon la fiecare 5 până la 6 găuri până când ajungem la un colț sau la următoarea componentă.

Într-un colț, tăiem firul de deasupra primei jumătăți a unui tampon de lipit și lipim capătul acestuia. Luăm apoi o bucată nouă de sârmă și continuăm de acolo în unghi drept.

Efectuarea acelor conexiuni de sârmă necompletată este destul de dificilă și necesită o anumită abilitate, așa că, dacă faceți acest lucru pentru prima dată, cu siguranță nu este o idee proastă să o practicați pe o bucată de PCB, înainte de a încerca să o faceți pe cea reală.

După ce am terminat lipirea, verificăm din nou conexiunile și ne asigurăm că nu am produs niciun scurtcircuit. Apoi putem pune PCB-ul în cadrul butonului și îl putem folosi ca referință pentru lungimile necesare ale firului cadrului. Apoi tăiem aceste fire la lungimea potrivită și le adăugăm știfturi masculine.

Toate conexiunile de 5V și de masă ale butoanelor tactile se reunesc într-un conector de 2 pini, cele 4 fire de ieșire primesc un conector de 4 pini și linia senzorului de lumină, precum și cele două fire de difuzor îmbinate într-un conector cu trei pini. Nu uitați să marcați o parte a fiecărei prize și conector cu un sharpie sau cu o bandă, astfel încât să nu le conectați accidental în mod greșit.

Pasul 8: Asamblați ceasul

Asamblați ceasul
Asamblați ceasul
Asamblați ceasul
Asamblați ceasul
Asamblați ceasul
Asamblați ceasul
Asamblați ceasul
Asamblați ceasul

După aceasta, m-am întors la panoul frontal și am aplicat cu atenție un autocolant, realizat din folie de imprimantă laser transparentă, ca ultimă atingere.

Chiar dacă l-am aplicat foarte atent, nu am putut obține un rezultat fără bule, care din păcate este clar vizibil la o inspecție mai atentă. De asemenea, folia nu se lipeste foarte bine de colțuri, așa că nu prea pot recomanda această soluție.

Probabil s-ar putea face cu un autocolant mai bun sau, dacă sunteți bun la desen, puteți adăuga numerele cu un sharpie.

Acum avem toate componentele și ne putem asambla ceasul.

Începem prin a pune împreună ghidajul luminii și panoul frontal. După ce toate cele 4 șuruburi sunt introduse, aliniem cele două panouri și apoi le strângem. Câteva nuci mai târziu vine panoul luminos, unde trebuie să aruncăm o privire asupra direcției. Cablul ar trebui să fie în partea de sus.

A treia piesă este cadrul butonului. Rețineți că, atunci când priviți din partea frontală, difuzorul trebuie să fie în partea dreaptă a ceasului. Trageți cablul panoului led prin mijlocul cadrului, înainte de al fixa în poziție.

Acum așezăm ansamblul frontal și trecem la panoul din spate. În imagine, puteți vedea, de asemenea, frumosul meu adaptor mini USB de 90 de grade. Ți-am legat un adaptor adecvat, așa că nu va trebui să te descurci cu acest gen de mizerie. Puteți pur și simplu să conectați adaptorul și să treceți cablul printr-o gaură din panoul din spate.

Luăm șuruburile M3 și distanțierele PCB pentru a repara fereastra mică. Este important să strângeți cu atenție șuruburile, deoarece nu vrem să ne deteriorăm acrilul. Apoi ne luăm PCB-ul, conectăm adaptorul și îl înșurubăm pe distanțieri. Partea componentă ar trebui să fie orientată spre fereastră, în timp ce portul USB al Arduino este orientat spre partea de jos a ceasului.

Apoi, conectăm toți conectorii din ansamblul frontal, păstrând în același timp polaritatea în minte și strângem cu grijă toate firele în ceas. Apoi îl putem închide cu panoul din spate și strângeți cele 4 piulițe de blocare rămase.

În cele din urmă, doriți să aveți o șaibă pe fiecare parte a fiecărui panou, în timp ce ghidajul luminii este plasat direct în spatele panoului frontal. Avem o piuliță între ghidajul luminii și panoul led și încă două, separând-o de cadrul butonului. Puteți vedea, de asemenea, în ultima poză.

Deoarece am folosit șuruburi scurte cu o lungime de 40 mm, am doar 3 piulițe care țin panoul din spate și cadrul separat. Cu șuruburile de 45 mm potrivite, ați adăuga o altă piuliță aici, precum și una sau două șaibe suplimentare. La sfârșitul ansamblului avem piulița de blocare, astfel încât totul să rămână la locul său.

Pasul 9: Încărcați codul și calibrați senzorul de lumină

Încărcați codul și calibrați senzorul de lumină
Încărcați codul și calibrați senzorul de lumină
Încărcați codul și calibrați senzorul de lumină
Încărcați codul și calibrați senzorul de lumină
Încărcați codul și calibrați senzorul de lumină
Încărcați codul și calibrați senzorul de lumină

Este timpul să încărcați codul nostru.

Mai întâi descărcăm toate fișierele necesare și le dezarhivăm. Apoi deschidem folderul Arduino biblioteci și aruncăm toate bibliotecile noi în el.

Acum deschidem schița de calibrare a senzorului de lumină, care ne va aduce valorile luminoase și întunecate pentru funcția de estompare automată a ceasului. Îl încărcăm, deschidem monitorul serial și urmăm instrucțiunile de pe ecran.

După aceasta, deschidem codul real al ceasurilor binare și înlocuim cele două valori cu cele pe care tocmai le-am măsurat.

Închidem toate celelalte ferestre, încărcăm codul în ceas și am terminat.

E timpul să ne jucăm cu noul nostru gadget.

Pasul 10: Introducere rapidă în sistemul binar

O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar
O introducere rapidă la sistemul binar

Înainte de a continua, aș vrea să răspund la singura întrebare care probabil ți-a trecut deja prin minte, „Cum în lume citești acest ceas?”

Ei bine, aș dori să vă fac o scurtă introducere în sistemul binar.

Toți suntem familiarizați cu sistemul zecimal, în care fiecare cifră poate avea 10 stări diferite, variind de la 0 la 9. În binar fiecare cifră poate avea doar două stări, fie 1, fie 0 de aceea puteți utiliza ceva la fel de simplu ca un afișează un număr binar.

Pentru a afișa numere mai mici decât 9 în zecimal, adăugăm mai multe cifre. Fiecare cifră vine cu un anumit multiplicator. Prima cifră din dreapta vine cu un multiplicator de 1, următoarea este 10 și următoarea este 100. Cu fiecare cifră nouă multiplicatorul este de zece ori mai mare decât cel al cifrei de mai înainte. Deci știm că numărul doi plasat o cifră la stânga, reprezintă numărul 20. În timp ce două cifre la stânga, reprezintă 200.

În sistemul binar fiecare cifră vine de asemenea cu un multiplicator. Cu toate acestea, deoarece fiecare cifră poate avea doar două stări diferite, fiecare multiplicator nou este de două ori mai mare decât precedentul. A și apropo, cifrele binare se numesc biți. Deci, să aruncăm o privire la primul nostru exemplu, dacă plasăm un 1 în poziția cea mai joasă este un 1 simplu, dar dacă îl plasăm pe următoarea poziție mai înaltă, unde multiplicatorul nostru este 2, acesta reprezintă numărul 2 în binar.

Ce zici de exemplul puțin mai complicat din partea de jos a imaginii. Al treilea și primul bit sunt pornite. Pentru a obține numărul zecimal care este reprezentat aici, pur și simplu adăugăm valorile celor doi biți. Deci 4 * 1 + 1 * 1 sau 4 + 1 ne dă numărul 5.

8 biți sunt denumiți octet, deci să vedem ce număr obținem dacă umplem un octet întreg cu unii.1 + 2 + 4 + 8 + 16 + 32 + 64 + 128, adică 255, care este cea mai mare valoare pe care o poate avea un singur octet.

Apropo, în timp ce în sistemul zecimal cifra cu cel mai mare multiplicator este întotdeauna pe primul loc, aveți două moduri de a scrie un număr în binar. Aceste două metode sunt numite octetul cel mai puțin semnificativ (LSB) și cel mai semnificativ primul octet (MSB). Dacă doriți să citiți un număr binar, trebuie să știți care dintre cele două formate este utilizat. Deoarece este mai aproape de sistemul zecimal, ceasul nostru binar folosește varianta MSB.

Să revenim la exemplul nostru din lumea reală. După cum este evidențiat în a șasea imagine, ceasul nostru are 4 biți pentru a afișa ora. Deci avem 6 biți pentru minut și, de asemenea, 6 biți pentru al doilea. Mai mult, avem un singur bit am / pm.

Bine, spune-mi ce oră este în a 6-a poză, decât să treci la ultima.. ….

în secțiunea oră avem 2 + 1, care este 3 și bitul pm este activat, deci este seară. Urmează minutul 32 + 8, adică 40. Pentru secunde avem 8 + 4 + 2 care este 14. Deci sunt 15:40:14 pm sau 15:40:14.

Felicitări, tocmai ai învățat să citești un ceas binar. Desigur, este nevoie să vă obișnuiți și la început va trebui să adăugați numerele împreună, de fiecare dată când doriți să știți ce oră este, dar similar cu un ceas analogic fără cadran, vă obișnuiți cu modelele LED-urilor peste timp.

Și aceasta face parte din ceea ce înseamnă acest proiect, luând ceva la fel de abstract ca sistemul binar în lumea reală și cunoscându-l mai bine.

Pasul 11: Utilizarea ceasului cu alarmă binară

Utilizarea ceasului cu alarmă binară
Utilizarea ceasului cu alarmă binară
Utilizarea ceasului cu alarmă binară
Utilizarea ceasului cu alarmă binară
Utilizarea ceasului cu alarmă binară
Utilizarea ceasului cu alarmă binară

Acum vrem, în sfârșit, să ne jucăm cu ceasul, așa că haideți să aruncăm o privire rapidă asupra comenzilor.

Software-ul poate distinge între o atingere cu un singur buton, o atingere dublă și o atingere lungă. Deci, fiecare buton poate fi utilizat pentru mai multe acțiuni.

O atingere dublă pe butonul sus sau jos modifică modul de culoare al LED-ului. Puteți alege între diferite moduri de culoare statice și decolorate, precum și un mod de temperatură. Dacă vă aflați într-unul dintre modurile de culoare statice, menținerea butonului sus sau jos schimbă culoarea. Într-un mod de decolorare, o singură atingere modifică viteza animațiilor.

Pentru a seta modul dimmer, atingeți de două ori butonul ok. Panoul LED indică modul setat, clipind de mai multe ori.

  • O singură dată nu înseamnă nici un estompator.
  • De două ori înseamnă că luminozitatea este controlată de senzorul de lumină.
  • De trei ori, LED-urile se sting automat după 10 secunde de inactivitate.
  • De patru ori și ambele moduri de estompare sunt combinate.

Apăsarea lungă a butonului ok vă va aduce în modul de setare a timpului, unde puteți utiliza săgețile sus și jos pentru a modifica numărul. O singură atingere pe butonul ok vă aduce de la ore la minute, încă o atingere și puteți seta secundele. După aceea, o ultimă atingere salvează noul timp. Dacă accesați în mod accesibil modul de setare a orei, puteți aștepta pur și simplu 10 secunde și ceasul îl va părăsi automat.

Ca și în cazul butonului ok, apăsarea lungă a butonului de alarmă vă permite să setați alarma. Atingând de două ori butonul de alarmă se activează sau se dezactivează alarma.

Dacă ceasul sună, atingeți o singură dată butonul de alarmă, pentru al trimite la repaus timp de 5 minute sau pentru a-l ține apăsat, pentru a dezactiva dezarmarea alarmei.

Acestea au fost toate funcțiile pe care le are ceasul până acum. Aș putea adăuga mai multe pe viitor, pe care le puteți obține, dacă descărcați cea mai recentă versiune de firmware.

Pasul 12: Înțelegerea codului (opțional)

Înțelegerea codului (opțional)
Înțelegerea codului (opțional)

Știu că multor oameni nu le place prea mult programarea. Din fericire pentru acei oameni, nu sunt necesare cunoștințe de programare pentru a construi și utiliza acest ceas binar. Deci, dacă nu vă pasă de partea de programare, puteți sări peste acest pas.

Cu toate acestea, dacă sunteți interesat de partea de codare, aș dori să vă ofer o prezentare generală a programului.

Explicarea fiecărui mic detaliu al codului ceasurilor ar fi un instructable pe cont propriu, așa că o voi păstra simplu explicând programul într-un mod orientat obiect.

În cazul în care nu știți ce înseamnă asta, programarea orientată pe obiecte (OOP) este un concept al majorității limbajelor de programare moderne, cum ar fi C ++. Vă permite să organizați diferite funcții și variabile în așa-numitele clase. O clasă este un șablon din care puteți crea unul sau mai multe obiecte. Fiecare dintre aceste obiecte primește un nume și propriul set de variabile.

De exemplu, codul ceasului folosește câteva obiecte MultiTouchButton, cum ar fi alarmButton. Acestea sunt obiecte din clasa MultiTouchButton, care face parte din biblioteca mea de butoane. Interesantul despre aceste obiecte este că poți interfața cu ele similar cu obiectele din lumea reală. De exemplu, putem verifica dacă butonul de alarmă a fost atins dublu apelând alarmButton.wasDoubleTapped (). În plus, implementarea acestei funcții este bine ascunsă într-un fișier diferit și nu trebuie să ne facem griji cu privire la ruperea acesteia, schimbând orice altceva din codul nostru. O intrare rapidă în lumea programării orientate obiect poate fi găsită pe site-ul web Adafruit.

După cum puteți vedea în graficul de mai sus, programul de ceasuri are o grămadă de obiecte diferite.

Tocmai am vorbit despre obiectele butonului, care pot interpreta semnalele de intrare ca o atingere, o atingere dublă sau o apăsare lungă.

Tonomatul, așa cum sugerează și numele, poate face zgomot. Are mai multe melodii, care pot fi redate printr-un difuzor mic.

Obiectul binaryClock gestionează setarea timpului și a alarmelor, precum și vizionarea alarmelor. În plus, obține timpul de la modulul RTC și îl convertește într-un buffer de informații binare pentru ledPanel.

ColorController încapsulează toate funcțiile efectului de culoare și oferă colorBuffer pentru ledPanel. De asemenea, salvează starea sa în Arduinos EEProm.

Dimmerul are grijă de luminozitatea ceasurilor. Are diferite moduri pe care utilizatorul le poate parcurge. Modul curent este, de asemenea, salvat în EEProm.

LedPanel gestionează diferite tampoane pentru valoarea culorii, valoarea luminozității și starea binară a fiecărui LED. Ori de câte ori este apelată funcția pushToStrip (), aceasta le suprapune și le trimite la banda led.

Toate obiectele sunt „conectate” prin main (fișierul cu funcțiile de configurare și buclă), care include doar câteva funcții pentru a efectua 3 sarcini esențiale.

  1. Interpretarea intrării utilizatorului - Obține intrarea din obiectele cu 4 butoane și le plasează printr-o logică. Această logică verifică starea curentă a ceasului pentru a determina, dacă ceasul este în mod normal, setarea orei sau modul de apel și apelează diferite funcții de la celelalte obiecte în consecință.
  2. Gestionarea comunicării între obiecte - Întreabă în mod constant obiectul binaryClock, dacă are informații noi disponibile sau dacă alarma este Ringing (). Dacă are informații noi, primește informationBuffer de la binaryClock și îl trimite la obiectul ledPanel. Dacă ceasul sună, pornește tonomatul.
  3. Actualizarea obiectelor - Fiecare dintre obiectele programului are o procedură de actualizare, care este utilizată pentru lucruri precum verificarea intrărilor sau schimbarea culorilor LED-urilor. Acestea trebuie apelate în mod repetat în funcția de buclă pentru ca ceasul să funcționeze corect.

Acest lucru ar trebui să vă ofere o înțelegere generală a modului în care piesele de cod individuale funcționează împreună. Dacă aveți întrebări mai specifice, puteți să mă întrebați pur și simplu.

Deoarece Codul meu este cu siguranță departe de a fi perfect, îl voi îmbunătăți în viitor, așa că s-ar putea schimba câteva funcții. Interesantul despre OOP este că va funcționa în continuare într-un mod foarte asemănător și puteți utiliza în continuare grafica pentru ao înțelege.

Pasul 13: Cuvinte finale

Cuvinte finale
Cuvinte finale

Mă bucur că ați continuat să citiți până în acest punct. Asta înseamnă că proiectul meu nu a fost prea plictisitor:).

Am pus o grămadă de lucru în acest mic ceas și chiar mai mult în toată documentația și videoclipul, pentru a vă ușura construirea propriului ceas cu alarmă binară. Sper că efortul meu a meritat și aș putea să vă conectez cu o idee minunată pentru proiectul dvs. de weekend următor sau cel puțin să vă dau inspirație.

Mi-ar plăcea să aud ce părere aveți despre ceas în comentariile de mai jos:).

Chiar dacă am încercat să acopăr fiecare detaliu, s-ar putea să fi ratat un lucru sau două. Așadar, nu ezitați să întrebați, dacă mai există întrebări.

Ca întotdeauna, vă mulțumesc foarte mult pentru lectură și pentru realizarea fericită.

Concurs LED 2017
Concurs LED 2017
Concurs LED 2017
Concurs LED 2017

Locul doi în concursul LED 2017

Recomandat: