Satura rādītājs:

Binārais galda pulkstenis: 9 soļi (ar attēliem)
Binārais galda pulkstenis: 9 soļi (ar attēliem)

Video: Binārais galda pulkstenis: 9 soļi (ar attēliem)

Video: Binārais galda pulkstenis: 9 soļi (ar attēliem)
Video: CS50 2013 - Week 2 2024, Novembris
Anonim
Binārais galda pulkstenis
Binārais galda pulkstenis
Binārais galda pulkstenis
Binārais galda pulkstenis
Binārais galda pulkstenis
Binārais galda pulkstenis

Binārie pulksteņi ir lieliski un paredzēti tikai personai, kas zina bināro (digitālo ierīču valodu). Ja esat tehnoloģiju puisis, šis dīvainais pulkstenis ir domāts jums. Tātad, izveidojiet to pats un noslēpiet savu laiku!

Internetā atradīsit daudz dažādu veidu bināro pulksteņu. Pat jūs varat iegādāties bināro pulksteni no tiešsaistes veikala, piemēram, amazon.com. Bet šis pulkstenis atšķiras no visiem, un šeit es izmantoju marmora spēlēšanu, lai piešķirtu tai elegantu izskatu.

Pirms došanās lejā, lūdzu, noskatieties demonstrācijas video.

1. darbība: materiālu saraksts

Materiālu rēķins
Materiālu rēķins
Materiālu rēķins
Materiālu rēķins
Materiālu rēķins
Materiālu rēķins

Aparatūras komponenti

1. Arduino Pro Micro (pirkt no aliexpress.com): Šī ir galvenā pulksteņa sirds un nolasa laiku no RTC un dod norādījumus atbilstoši vadīt gaismas diodes. Ja izmērs jums nav svarīgs, varat izmantot Arduino Nano, pat Arduino Uno, nevis Pro Micro.

2. DS3231 RTC modulis (pirkt no aliexpress.com): DS3231 RTC seko līdzi laikam pat tad, kad strāvas padeve tiek pārtraukta. Lai gan var izmantot citus RTC, piemēram, DS1307, DS3231 ir precīzāks.

3. MAX7219CNG LED draivera IC (pirkt no aliexpress.com): Arduino ir ierobežots tapas skaits. Tātad, ja vēlaties vadīt tonnas gaismas diodes, netērējot Arduino tapas, MAX7219 ir glābējs. Tas aizņem sērijas datus un var patstāvīgi vadīt 64 gaismas diodes.

4. 20 PCS Blue LED, 5mm (pirkt no aliexpress.com): zilais man deva vislabāko rezultātu. Jūs varat mēģināt ar citām krāsām.

5. 20 PCS Playing Marble (pirkt no aliexpress.com): Tika izmantots standarta izmēra marmora spēlēšana. Marmoram jābūt caurspīdīgam, lai izietu gaismu.

6. Rezistors 10K: izmanto, lai kontrolētu MAX7219 IC segmenta strāvu. Skatiet datu lapu, lai uzzinātu precīzu dažādu segmentu strāvas vērtību.

7. Vadi

8. PCB plates prototips (pirkt no aliexpress.com): es izmantoju prototipa PCB plāksni MAX7219 IC ar IC bāzi. Jūs varat arī izveidot savu pielāgoto PCB plāksni.

Aparatūras rīki

1. CNC 3018 PRO lāzera graviera koka CNC maršrutētāja iekārta (nopirkt no aliexpress.com): Theis DIY CNG mašīna tika izmantota kokgriezumam uz koka marmoram un gaismas diodēm. Šī ir lieliska mašīna ar zemu cenu jebkuram ražotājam un hobijam.

2. Lodēšanas stacija (iegādājieties to vietnē aliexpress.com): projektam ir nepieciešama zināma lodēšana, un labs lodāmurs ir obligāts rīks makerniekam. 60W ir laba izvēle DIY lodēšanai.

3. Stiepļu griezējs (nopirkt no aliexpress.com)

4. Titāna pārklājuma karbīda gala frēzmašīna CNC (nopirkt no aliexpress.com): Jūs varat arī izmēģināt ar mašīnas komplektā iekļauto uzgali. Tādā gadījumā jums ir jāveic dažas izmaiņas dizainā.

2. darbība: gravēšana un griešana

Gravēšana un griešana
Gravēšana un griešana
Gravēšana un griešana
Gravēšana un griešana
Gravēšana un griešana
Gravēšana un griešana

Es paņēmu 165X145X18.8 mm mīkstu kļavas koka gabalu pulksteņa gaismas diodes novietošanai. Katras gaismas diodes augšpusē es ievietošu marmoru, un standarta marmora izmērs ir 15,5 mm diametrā. Tātad, es izveidoju 15,7 mm caurumus ar 7 mm dziļumu. Cauruma centrā es izveidoju 5 mm urbi LED novietošanai. Viss teksts tika veidots ar 2 mm dziļumu. Jūs varat palielināt vai samazināt dziļumu pēc savas izvēles. Varat arī izmēģināt teksta gravēšanu.

Pilnu dizainu izgatavoja Easel no Inventables. Molberts ir tīmeklī bāzēta programmatūras platforma, kas ļauj veidot un veidot vienotu, vienkāršu programmu, un lielāko daļu funkciju var izmantot bez maksas. Jums tikai jāpiesakās sistēmā, izveidojot kontu vai izmantojot Gmail.

Easel Pro ir uz dalību balstīta mākoņa programmatūra, kuras pamatā ir Inventables bezmaksas easel programmatūra. Easel un Easel Pro samazina šķēršļus, kas saistīti ar sarežģītu CAD un CAM produktu ražošanas programmatūru, ļaujot lietotājiem viegli izgatavot fiziskus produktus.

Izmantojot molbertu, varat eksportēt dizaina failu G-koda formātā vai tieši iestatīt savu CNC no molberta vides un nosūtīt komandu uz CNC. Tādā gadījumā jums jāinstalē molberta draiveris. Jūs varat arī importēt iepriekš izveidotu G-kodu Easel IDE un modificēt. Šeit es iekļāvu dizaina failu. Jūs varat viegli mainīt dizainu pēc savas izvēles, izmantojot molbertu.

3. solis: slīpēšana un lakas uzklāšana

Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana
Slīpēšana un lakas uzklāšana

Laka var nodrošināt skaistu koka projektu un gleznu apdari. Pirms lakas uzklāšanas kokam, noslīpējiet gabalu un notīriet darba vietu. Slīpēšana nodrošina gludu izskatu un sagatavo koksni lakai. Uzklājiet laku vairākos plānos slāņos, ļaujot katram kārtīgi nožūt, pirms turpināt nākamo. Lai krāsotu laku, ļaujiet tai pilnībā nožūt un pēc tam uzmanīgi notīriet laku. Daudzām gleznām pietiek ar vienu kārtu, bet jūs varat pievienot papildu slāni, ja iepriekšējo kārtīgi ļaujat kārtīgi nožūt.

Pirms lakas uzklāšanas pirms lakas uzklāšanas ir jānoņem visi trūkumi un plankumi. Lai to izdarītu, nepabeigtiem gabaliem izmantojiet 100 smilšpapīru un strādājiet ar koksnes graudiem. Viegli slīpējiet, līdz gabals ir gluds. Pēc koka gabala tīrīšanas uzklājiet laku labi vēdināmā vietā.

Laka ietaupa koksni no vides putekļiem un mitruma, bet var ietekmēt koksnes krāsu.

4. solis: ķēdes izveidošana

Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana
Ķēdes veidošana

Pulksteņa galvenā sastāvdaļa ir Arduino Pro Mini mikrokontrolleru plate un DS3231 RTC modulis. Arduino Pro Mini un RTC moduļa savienojums ir ļoti vienkāršs. Jums ir jāpievieno RTC moduļa SDA tapa ar Arduino SDA tapu un RTC moduļa SCL tapa ar Arduino SCL tapu. SDA un SCL tapas faktiski ir attiecīgi Arduino A4 un A5 tapas. Jums arī jāizveido kopīgs zemes savienojums starp Arduino un RTC moduļiem. Savienojumu veidošanai es izmantoju džemperu vadus.

Savienojums starp Arduino un DS3231 RTC:

Arduino DS3231
SCL (A5) SCL
SDA (A4) SDA
5V VCC
GND GND

Lai rādītu stundu, minūti un sekundi, binārajam pulkstenim bija nepieciešami 20 gaismas diodes. Ja vēlaties parādīt datumu, tas prasa vairāk. Arduino plāksnei ir GPIO tapas ierobežojums. Tātad, es izmantoju MAX7219CNG LED draivera IC, lai vadītu tonnas gaismas diodes, izmantojot tikai trīs Arduino plates tapas.

MAX7219 draivera IC spēj vadīt 64 atsevišķas gaismas diodes, vienlaikus izmantojot tikai 3 vadus saziņai ar Arduino, un turklāt mēs varam savienot vairākus draiverus un matricas un joprojām izmantot tos pašus 3 vadus.

64 gaismas diodes darbina 16 IC izejas tapas. Jautājums tagad ir, kā tas ir iespējams. Maksimālais vienlaicīgi iedegto LED skaits ir astoņi. Gaismas diodes ir sakārtotas kā 8 × 8 rindu un kolonnu komplekts. Tātad MAX7219 aktivizē katru kolonnu ļoti īsā laika periodā, un tajā pašā laikā tā arī virza katru rindu. Tātad, strauji pārslēdzoties pa kolonnām un rindām, cilvēka acs pamanīs tikai nepārtrauktu gaismu.

MAX7219 VCC un GND iet uz Arduino 5V un GND tapām, un trīs pārējās tapas - DIN, CLK un CS - uz jebkuru Arduino plates digitālo tapu. Ja mēs vēlamies savienot vairāk nekā vienu moduli, mēs vienkārši pievienojam iepriekšējā sadalīšanas paneļa izejas tapas pie jaunā moduļa ieejas tapām. Patiesībā šīs tapas ir vienādas, izņemot to, ka iepriekšējās plates DOUT tapa iet uz jaunās plates DIN tapu.

Savienojums starp Arduino un MAX7219CNG:

Arduino MAX7219
D12 DIN
D11 CLK
D10 LOAD
GND GND

5. darbība. Programmas augšupielāde

Programmas augšupielāde
Programmas augšupielāde

Visa programma ir uzrakstīta Arduino vidē. Skicei tika izmantotas divas ārējās bibliotēkas. Viens ir paredzēts RTC modulim, bet otrs - MAX7219 IC. Pirms programmas apkopošanas lejupielādējiet bibliotēkas no saites un pievienojiet to Arduino IED.

Programmas augšupielāde Arduino Pro Mini ir nedaudz sarežģīta. Apskatiet apmācību, ja nekad iepriekš neizmantojāt Arduino Pro Mini:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Tagad mums ir nepieciešama LedControl, ar kuru strādāt. ***** Šie pin numuri, iespējams, nedarbosies ar jūsu aparatūru ***** pin 12 ir pievienots DataIn pin 11 ir savienots ar CLK pin 10 ir pievienots LOAD Mums ir tikai viens MAX72XX. */ DS3231 pulkstenis; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int sekundes, minūtes, stundas; baitu numurs [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX ieslēgšanas brīdī ir enerģijas taupīšanas režīmā, mums jāveic modināšanas zvans */ lc.shutdown (0, false); / * Iestatiet spilgtumu uz vidējām vērtībām */ lc.setIntensity (0, 15); / * un notīriet displeju */ lc.clearDisplay (0); //lc.setLed(0, row, col, true); // lc.setRow (0, 0, B11111111); // lc.setRow (0, 1, B11111111); // lc.setRow (0, 2, B11111111); // lc.setRow (0, 3, B11111111); // lc.setRow (0, 4, B11111111); // lc.setRow (0, 5, B11111111); // lc.setColumn (0, 2, B11111111); // lc.setColumn (0, 3, B11111111); // lc.setColumn (0, 4, B11111111); // lc.setColumn (0, 5, B11111111); // Inicializēt DS3231 pulksteni.begin (); // Iestatīt skices apkopošanas laiku //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int izvēlne = 0, uz augšu, uz leju; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int sekundes_viens; int sekundes_ten; void loop () {if (digitalRead (5) == 0) {kavēšanās (300); izvēlne ++; ja (izvēlne> 3) izvēlne = 0; } if (menu == 0) {dt = clock.getDateTime (); stundas = dt.stunda; minūtes = dt.minute; sekundes = dt.second; ja (stundas> 12) stundas = stundas - 12; ja (stundas == 0) stundas = 1; hours_one = stundas%10; hours_ten = stundas/10; minutes_one = minūtes%10; minutes_ten = minūtes/10; seconds_one = sekundes%10; seconds_ten = sekundes/10; lc.setRow (0, 0, skaitlis [sekundes_viens]); lc.setRow (0, 1, skaitlis [sekundes_sens]); lc.setRow (0, 2, skaitlis [minutes_one]); lc.setRow (0, 3, skaitlis [minutes_ten]); lc.setRow (0, 4, skaitlis [stundas_viens]); lc.setRow (0, 5, skaitlis [stundas_s]); } ja (izvēlne == 1) {ja (digitalRead (6) == 0) {kavēšanās (300); stundas ++; ja (stundas> = 24) stundas = 0; } ja (digitalRead (7) == 0) {delay (300); stundas-; ja (stundas = 60) minūtes = 0; } ja (digitalRead (7) == 0) {delay (300); minūtes-; ja (minūtes <0) minūtes = 0; } minutes_one = minūtes%10; minutes_ten = minūtes/10; lc.setRow (0, 4, B00000000); lc.setRow (0, 5, B00000000); lc.setRow (0, 1, B00000000); lc.setRow (0, 0, B00000000); lc.setRow (0, 2, skaitlis [minutes_one]); lc.setRow (0, 3, skaitlis [minutes_ten]); } ja (izvēlne == 3) {clock.setDateTime (2020, 4, 13, stundas, minūtes, 01); izvēlne = 0; } //lc.setLed(0, row, col, false); //lc.setLed(0, row, col, true); //lc.setColumn(0, col, B10100000); //lc.setRow(0, 4, B11111111); //lc.setRow(0, rinda, (baits) 0); //lc.setColumn(0, col, (baits) 0); // Sākotnējo nulli meklējiet DS3231_dateformat piemērā // Serial.print ("Neapstrādāti dati:"); // Sērijas nospiedums (dt.gads); Serial.print ("-"); // Serial.print (dt.month); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Sērijas nospiedums (dt.stunda); Serial.print (":"); // Sērijas nospiedums (dt.minute); Serial.print (":"); // Sērijas nospiedums (dt.second); Serial.println (""); // // kavēšanās (1000); }

6. darbība: gaismas diodes ievietošana

Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana

Šajā posmā es ievietošu visas gaismas diodes pie koka dēļa caurumiem. Gaismas diodes savienojumi ir parādīti shematiski. Tā kā gaismas diodes darbināsim ar MAX7219 LED draiveri, visām gaismas diodēm jābūt savienotām matricas formā. Tātad, es savienoju visu gaismas diožu anoda tapas katrā kolonnā kopā un visas katras rindas katoda tapas kopā saskaņā ar shēmu. Tagad mūsu kolonnu tapas patiesībā ir gaismas diožu anoda tapas, un rindu tapas faktiski ir gaismas diožu katoda tapas.

Lai vadītu gaismas diodes, izmantojot MAX7219, jums ir jāpievieno LED katoda tapa ar IC ciparu tapu un LED anoda tapa ar IC segmenta tapu. Tātad, mūsu kolonnu tapas ir jāpievieno segmenta tapām, un rindu tapas jāpievieno MAX7219 ciparu tapai.

Jums ir jāpievieno rezistors starp ISET tapu un MAX7219 IC VCC, un šis rezistors kontrolē segmenta tapas strāvu. Es izmantoju 10K rezistoru, lai uzturētu 20mA katrā segmenta tapā.

7. darbība: gaismas diožu savienošana

LED savienošana
LED savienošana
LED savienošana
LED savienošana
LED savienošana
LED savienošana

Šajā posmā es savienoju visas gaismas diodes rindas-kolonnas matricas formātā. Lai savienotu gaismas diodes, man vajadzēja izmantot dažus papildu vadus, bet jūs varat izveidot savienojumu bez papildu vadu palīdzības, ja gaismas diodes vadi ir pietiekami gari, lai pieskartos viens otram.

Šajā konfigurācijā nav nepieciešams rezistors, jo par strāvu rūpēsies MAX7219. Jūsu pienākums ir izvēlēties pareizo ISET rezistora vērtību un ar šo rezistoru izvilkt ISET tapu. Pirms gaismas diodes ievietošanas un pievienošanas es iesaku jums pārbaudīt katru LED. Tā kā sliktas gaismas diodes ievietošana nogalinās daudz laika. Nākamajā solī mēs savienosim rindu un kolonnu vadus ar MAX ic.

8. darbība: shēmas plates pievienošana ar gaismas diodēm

Ieslēgšanas shēma ar gaismas diodēm
Ieslēgšanas shēma ar gaismas diodēm
Ieslēgšanas shēma ar gaismas diodēm
Ieslēgšanas shēma ar gaismas diodēm
Ieslēgšanas shēma ar gaismas diodēm
Ieslēgšanas shēma ar gaismas diodēm

Mūsu shēmas plate, ieskaitot RTC, Arduino un MAX7219, ir gatava ilgu laiku, un mēs arī iepriekšējā posmā sagatavojām LED matricu. Tagad mums ir jāsavieno visas lietas saskaņā ar shēmu. Pirmkārt, mums ir jāpievieno rindu un kolonnu vadi ar MAX7219IC. Savienojums tika minēts shēmā. Lai padarītu to skaidrāku, ievērojiet tālāk sniegto tabulu.

LED matrica MAX7219CNG
0 Rinda DIGIT0
1. Rinda CIGTS1
2. Rinda DIGIT2
3. Rinda DIGIT3
SLEJA0 SEGA
1. SLEJA SEGB
2. SLEJA SEGC
3. SLEJA SEGD
4. SLEJA SEGE
5. SLEJA SEGF

ROW0-> Augstākā rinda

COLUMN0 -> Labākā kolonna (SS COLUMN)

Pēc savienojuma izveidošanas jums ir jānostiprina PCB plāksne un Arduino ar koka gabalu, lai izvairītos no savienojuma pārtraukšanas. Visu ķēžu nostiprināšanai es izmantoju karstu līmi. Lai izvairītos no īssavienojuma, izmantojiet lielu daudzumu līmes, lai paslēptu lodēšanas savienojumu PCB apakšējā pusē.

Lai padarītu pulksteni lietojamu, jums ir jāsaglabā iespēja laika pielāgošanai, kad tas ir nepieciešams. Es pievienoju trīs pogu slēdžus laika pielāgošanai. Viens - opcijas maiņai un divi - stundas un minūtes palielināšanai un samazināšanai. Pogas ir novietotas augšējā labajā stūrī, lai tās būtu viegli pieejamas.

9. solis: Marmora ievietošana

Marmora ievietošana
Marmora ievietošana
Marmora ievietošana
Marmora ievietošana
Marmora ievietošana
Marmora ievietošana

Šis ir mūsu projekta pēdējais posms. Viss ķēdes savienojums ir pabeigts. Tagad jums ir jānovieto marmors koka pulksteņa augšējā pusē. Marmora ievietošanai es izmantoju karstu līmi. Šim nolūkam izmantojiet caurspīdīgu baltas krāsas līmi. Es uzliku karstu līmi katrā caurumā no augšējās puses, un virs gaismas diodēm es viegli ievietoju marmoru katrā caurumā. Vienmērīga līmes pievienošana palielinās LED spīdumu. Es savam pulkstenim izmantoju ZILO LED. Tas man deva vislabāko rezultātu.

Dodiet spēku pulkstenim. Ja rāda laiku, tad apsveicu !!!

Tu to izdarīji!

Izbaudi!

Padariet to par spīduma konkursu
Padariet to par spīduma konkursu
Padariet to par spīduma konkursu
Padariet to par spīduma konkursu

Otrās vietas ieguvējs konkursā Make it Glow

Ieteicams: