Mündəricat:

İkili masa saatı: 9 addım (şəkillərlə)
İkili masa saatı: 9 addım (şəkillərlə)

Video: İkili masa saatı: 9 addım (şəkillərlə)

Video: İkili masa saatı: 9 addım (şəkillərlə)
Video: “Ölü” morqda belə dirildi Anba An 2024, Noyabr
Anonim
İkili masa saatı
İkili masa saatı
İkili masa saatı
İkili masa saatı
İkili masa saatı
İkili masa saatı

İkili saatlar möhtəşəmdir və yalnız ikili (rəqəmsal cihazların dili) bilənlər üçündür. Texniki birisinizsə, bu qəribə saat sizin üçündür. Odur ki, vaxtınızı özünüz edin və vaxtınızı gizli saxlayın!

İnternetdə müxtəlif növ çoxlu ikili saatlar tapa bilərsiniz. Hətta amazon.com kimi onlayn mağazadan ikili saat ala bilərsiniz. Ancaq bu saat hər şeydən fərqlidir və burada zərif bir görünüş vermək üçün mərmərdən istifadə etdim.

Enməzdən əvvəl demo videosuna baxın.

Addım 1: Materiallar Bill

Materiallar Bill
Materiallar Bill
Materiallar Bill
Materiallar Bill
Materiallar Bill
Materiallar Bill

Avadanlıq Komponentləri

1. Arduino Pro Micro (aliexpress.com saytından satın alın): Bu saatın əsas ürəyidir və vaxtı RTC -dən oxuyur və buna uyğun olaraq LED -ləri idarə etmək üçün təlimat verir. Ölçünün sizin üçün əhəmiyyəti yoxdursa, Pro Micro əvəzinə Arduino Nano -dan da istifadə edə bilərsiniz.

2. DS3231 RTC Modulu (aliexpress.com saytından satın alın): DS3231 RTC, elektrik kəsildikdə belə vaxtı izləyir. DS1307 kimi digər RTC istifadə edilə bilsə də, DS3231 daha dəqiqdir.

3. MAX7219CNG LED Sürücü IC (aliexpress.com saytından alın): Arduino -da məhdud sayda sancaqlar var. Beləliklə, Arduino sancaqlarını israf etmədən tonlarla LED idarə etmək istəyirsinizsə MAX7219 xilaskardır. Serial məlumatları alır və müstəqil olaraq 64 LED idarə edə bilir.

4. 20 ADET Mavi LED, 5mm (aliexpress.com saytından alın): Mavi mənim üçün ən yaxşı nəticəni verdi. Digər rənglərlə də cəhd edə bilərsiniz.

5. 20 ADET Mərmər Oynayan (aliexpress.com saytından alın): Standart ölçüdə mərmərdən istifadə edilmişdir. Mərmər işığı keçmək üçün şəffaf olmalıdır.

6. Rezistor 10K: MAX7219 IC -nin seqment cərəyanını idarə etmək üçün istifadə olunur. Fərqli seqment cərəyanının dəqiq dəyərini bilmək üçün məlumat cədvəlinə baxın.

7. Tellər

8. Prototip PCB Kartı (aliexpress.com saytından alın): IC bazası olan MAX7219 IC üçün prototip PCB lövhəsindən istifadə etdim. Xüsusi PCB lövhənizi də dizayn edə bilərsiniz.

Avadanlıq Alətləri

1. CNC 3018 PRO Laser Engraver Wood CNC Router Machine (aliexpress.com saytından alın): Theis DIY CNG maşını mərmər və LED üçün ağac üzərində oyma üçün istifadə edilmişdir. Bu, hər hansı bir istehsalçı və hobbi üçün aşağı qiymətə malik əla bir maşındır.

2. Lehim İstasyonu (aliexpress.com saytından satın alın): Layihə üçün bir az lehim lazımdır və yaxşı bir lehimləmə dəmiri istehsalçı üçün mütləq bir vasitədir. 60W DIY lehimləmə üçün yaxşı bir seçimdir.

3. Tel kəsici (aliexpress.com saytından alın)

4. CNC üçün Titanyum Kaplı Karbür Uç Freze (aliexpress.com saytından alın): Maşınla təmin edilən bitlə də cəhd edə bilərsiniz. Bu vəziyyətdə dizaynda bəzi dəyişikliklər etməlisiniz.

Addım 2: Oyma və Oyma

Oyma və oyma
Oyma və oyma
Oyma və oyma
Oyma və oyma
Oyma və oyma
Oyma və oyma

Saatın LED -lərini yerləşdirmək üçün 165X145X18.8 mm ölçülü Yumşaq Ağcaqayın ağac parçası götürdüm. Hər bir ledin üstünə bir mərmər qoyacağam və standart bir mərmərin ölçüsü 15.5 mm diametrindədir. Beləliklə, dərinliyi 7 mm olan 15.7 mm deşiklər etdim. Çuxurun ortasında, LED -i yerləşdirmək üçün 5 mm -lik bir qazma etdim. Bütün mətn 2 mm dərinlikdə hazırlanmışdır. Seçdiyiniz dərinliyi artıra və ya azalda bilərsiniz. Mətn üçün lazer oymağı da sınaya bilərsiniz.

Tam dizayn, Inventables -dən Easel tərəfindən hazırlanmışdır. Easel, tək, sadə bir proqramdan dizayn etməyə və oymağa imkan verən veb xüsusiyyətli bir proqram platformasıdır və əksər xüsusiyyətlərdən istifadə pulsuzdur. Yalnız bir hesab yaratmaq və ya Gmail istifadə etməklə sistemə daxil olmalısınız.

Easel Pro, Inventables-in pulsuz Easel proqramına əsaslanan üzvlüyə əsaslanan bulud proqramdır. Easel və Easel Pro, istifadəçilərin fiziki məhsullar istehsal etmələrini asanlaşdıran mürəkkəb CAD və CAM məhsul istehsal proqramları ilə əlaqəli maneələri minimuma endirir.

Easel-dən istifadə edərək dizayn faylını G-kod formatında ixrac edə bilərsiniz və ya CNC-ni birbaşa Easel mühitindən qura və əmri CNC-ə göndərə bilərsiniz. Bu vəziyyətdə, şezlong üçün sürücünü quraşdırmalısınız. Ayrıca əvvəllər yaradılmış bir G kodu Easel IDE-yə idxal edə və dəyişdirə bilərsiniz. Dizayn faylını bura daxil etdim. Easel istifadə edərək dizaynı seçdiyinizə görə asanlıqla dəyişə bilərsiniz.

Addım 3: Zımpara və lak tətbiq edin

Zımpara və lak tətbiqi
Zımpara və lak tətbiqi
Zımpara və lak tətbiqi
Zımpara və lak tətbiqi
Zımpara və lak tətbiqi
Zımpara və lak tətbiqi
Zımpara və lak tətbiqi
Zımpara və lak tətbiqi

Vernik, ağac layihələrinə və rəsmlərə gözəl bir nəticə verə bilər. Ağaca lak tətbiq etməzdən əvvəl parçanı zımparalayın və iş sahənizi təmizləyin. Zımpara hamar bir görünüş verir və ağacı lak üçün hazırlayır. Lakı bir neçə nazik təbəqədə tətbiq edin, hər birinin digərinə keçməzdən əvvəl yaxşıca qurumasına icazə verin. Rəsmi laklamaq üçün tamamilə qurudun və sonra lakı diqqətlə fırçalayın. Bir çox rəsm üçün bir qat kifayətdir, ancaq əvvəlkisini yaxşıca qurutduğunuz müddətdə əlavə bir qat əlavə edə bilərsiniz.

Lak tətbiq etməzdən əvvəl qüsurları və ləkələri aradan qaldırmalısınız. Bunu etmək üçün bitməmiş parçalar üçün 100 qranit zımpara istifadə edin və taxta dənəsi ilə işləyin. Parça hamar olana qədər yumşaq bir şəkildə zımpara edin. Taxta parçanı təmizlədikdən sonra lakı yaxşı havalandırılan bir yerə tətbiq edin.

Lak, ağacı ətraf mühitin tozundan və nəmindən qoruyur, ancaq ağacın rəngini təsir edə bilər.

Addım 4: Dövrə qurun

Dövr qurmaq
Dövr qurmaq
Dövr qurmaq
Dövr qurmaq
Dövr qurmaq
Dövr qurmaq
Dövr qurmaq
Dövr qurmaq

Saatın əsas komponenti Arduino Pro Mini mikrokontrolör lövhəsi və DS3231 RTC moduludur. Arduino Pro Mini ilə RTC modulunun bağlantısı çox sadədir. RTC modulunun SDA pinini Arduinonun SDA pininə və RTC modulunun SCL pinini Arduinonun SCL pininə bağlamalısınız. SDA və SCL sancaqları əslində A4 və A5 pinləridir Arduino. Arduino və RTC modulları arasında ümumi bir əlaqə qurmalısınız. Bağlantı qurmaq üçün keçid tellərindən istifadə etdim.

Arduino ilə DS3231 RTC arasındakı əlaqə:

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

Saat, dəqiqə və saniyəni göstərmək üçün ikili saat 20 LED tələb edir. Tarixi göstərmək istəyirsinizsə, daha çox şey tələb olunur. Arduino lövhəsində GPIO pinləri məhduddur. Beləliklə, Arduino lövhəsinin yalnız üç sancağından istifadə edərək tonlarla LED idarə etmək üçün MAX7219CNG LED sürücüsü IC istifadə etdim.

MAX7219 sürücüsü IC, Arduino ilə ünsiyyət qurmaq üçün yalnız 3 teldən istifadə edərkən 64 fərdi LED idarə edə bilir və bundan əlavə, birdən çox sürücünü və matrisini bağlaya bilərik və yenə də eyni 3 teldən istifadə edə bilərik.

64 LED, IC -nin 16 çıxış pimi ilə idarə olunur. İndi sual bunun necə mümkün olmasıdır. Yaxşı, eyni anda yanan maksimum LED sayı əslində səkkizdir. LED -lər 8 × 8 sıra və sütunlar şəklində düzülmüşdür. Beləliklə, MAX7219 hər bir sütunu çox qısa müddətə aktivləşdirir və eyni zamanda hər bir satırı hərəkətə gətirir. Sütun və cərgələri sürətlə keçərək insan gözü yalnız davamlı bir işığı görəcək.

MAX7219 -un VCC və GND, Arduinonun 5V və GND pinlərinə, digər üç pin, DIN, CLK və CS, Arduino lövhəsinin istənilən rəqəmsal pininə keçir. Birdən çox modul bağlamaq istəsək, əvvəlki modulun çıxış pinlərini yeni modulun giriş pinlərinə bağlayırıq. Əslində, bu sancaqlar əvvəlki lövhənin DOUT pininin yeni lövhənin DIN pininə getməsi istisna olmaqla eynidır.

Arduino ilə MAX7219CNG arasındakı əlaqə:

Arduino MAX7219
D12 DIN
D11 CLK
D10 YÜKLƏ
GND GND

Addım 5: Proqramı yükləyin

Proqram yüklənir
Proqram yüklənir

Bütün proqram Arduino mühitində yazılmışdır. Eskiz üçün iki xarici kitabxana istifadə edilmişdir. Biri RTC modulu, digəri MAX7219 IC üçündür. Kitabxanaları linkdən yükləyin və proqramı tərtib etməzdən əvvəl Arduino IED -ə əlavə edin.

Arduino Pro Mini -də proqram yükləmək bir az çətindir. Arduino Pro Mini -ni əvvəllər heç istifadə etməmisinizsə, təlimata baxın:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* İndi işləmək üçün bir LedControl lazımdır. ***** Bu pin nömrələri, ehtimal ki, aparatınızla işləməyəcək ***** pin 12 DataIn pininə bağlıdır CLK pininə bağlanmışdır 10 Yüklə bağlıdır Yalnız bir MAX72XX var. */ DS3231 saatı; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int saniyə, dəqiqə, saat; bayt nömrəsi [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX başlanğıcda enerji qənaət rejimindədir, oyanış çağırışı etməliyik */ lc.shutdown (0, false); / * Parlaqlığı orta dəyərlərə təyin edin */ lc.setIntensity (0, 15); / * və ekranı silin */ lc.clearDisplay (0); //lc.setLed(0, satır, col, doğru); // 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); // DS3231 clock.begin () başlatın; // Eskiz tərtib vaxtını təyin edin //clock.setDateTime(_DATE_, _TIME_); pinMode (5, INPUT_PULLUP); pinMode (6, INPUT_PULLUP); pinMode (7, INPUT_PULLUP); } int menyu = 0, yuxarı, aşağı; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int seconds_one; int seconds_ten; void loop () {if (digitalRead (5) == 0) {gecikmə (300); menyu ++; əgər (menyu> 3) menyu = 0; } əgər (menyu == 0) {dt = clock.getDateTime (); saat = dt.saat; dəqiqə = dt.dəqiqə; saniyə = dt.second; əgər (saat> 12) saat = saat - 12; əgər (saat == 0) saat = 1; hours_one = saat%10; hours_ten = saat/10; minutes_one = dəqiqə%10; minutes_ten = dəqiqə/10; seconds_one = saniyə%10; seconds_ten = saniyə/10; lc.setRow (0, 0, sayı [seconds_one]); lc.setRow (0, 1, sayı [seconds_ten]); lc.setRow (0, 2, sayı [minutes_one]); lc.setRow (0, 3, sayı [minutes_ten]); lc.setRow (0, 4, sayı [hours_one]); lc.setRow (0, 5, sayı [hours_ten]); } if (menyu == 1) {if (digitalRead (6) == 0) {gecikmə (300); saat ++; əgər (saat> = 24) saat = 0; } if (digitalRead (7) == 0) {gecikmə (300); saat-; əgər (saat = 60) dəqiqə = 0; } if (digitalRead (7) == 0) {gecikmə (300); dəqiqə-; əgər (dəqiqə <0) dəqiqə = 0; } dəqiqə_ bir = dəqiqə%10; minutes_ten = dəqiqə/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, sayı [minutes_one]); lc.setRow (0, 3, sayı [minutes_ten]); } əgər (menyu == 3) {clock.setDateTime (2020, 4, 13, saat, dəqiqə, 01); menyu = 0; } //lc.setLed(0, satır, col, yalan); //lc.setLed(0, satır, col, doğru); //lc.setColumn (0, col, B10100000); //lc.setRow (0, 4, B11111111); //lc.setRow(0, satır, (bayt) 0); //lc.setColumn (0, col, (bayt) 0); // DS3231_dateformat nümunəsinə sıfırdan baxmaq üçün // Serial.print ("Raw data:"); // Serial. çap (dt.il); Serial.print ("-"); // Serial. çap (dt.ay); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Serial. çap (dt.hour); Serial.print (":"); // Serial. çap (dt.dəqiqə); Serial.print (":"); // Serial.print (dt.second); Serial.println (""); // // gecikmə (1000); }

Addım 6: LED -lərin yerləşdirilməsi

LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi
LED -lərin yerləşdirilməsi

Bu mərhələdə bütün LED -ləri taxta lövhənin deliklərinə qoyacağam. LED -lərin əlaqələri sxematik şəkildə göstərilmişdir. LEDləri idarə etmək üçün MAX7219 LED sürücüsündən istifadə edəcəyimiz üçün bütün LEDlər matris şəklində bağlanmalıdır. Beləliklə, hər bir sütundakı bütün LED -lərin anod pinlərini və hər cərgədəki bütün katot pinlərini sxematik olaraq bir -birinə bağladım. İndi sütun sancaqlarımız əslində LED -lərin anod pinləridir və sıra pinləri əslində LED -lərin katot pinləridir.

LED -lərin MAX7219 -dan istifadə etməsi üçün bir ledin katot pinini IC -nin rəqəm pininə və anod pinini IC -nin seqment pininə bağlamalısınız. Beləliklə, sütun sancaqlarımız seqment sancaqlarına və satır pinləri MAX7219 -un rəqəm pininə bağlanmalıdır.

ISET pimi ilə MAX7219 IC -nin VCC arasına bir rezistor bağlamalısınız və bu rezistor seqment pinlərinin cərəyanını idarə edir. Hər seqment pinində 20mA saxlamaq üçün 10K rezistor istifadə etdim.

Addım 7: LEDlərin bağlanması

LEDlərin birləşdirilməsi
LEDlərin birləşdirilməsi
LEDlərin birləşdirilməsi
LEDlərin birləşdirilməsi
LEDlərin birləşdirilməsi
LEDlərin birləşdirilməsi

Bu mərhələdə bütün LED-ləri bir sıra sütun matris formatında bağladım. LED -ləri bağlamaq üçün əlavə keçid tellərindən istifadə etməliydim, ancaq LED -lərin ucları bir -birinə toxunmaq üçün kifayət qədər uzunsa, əlavə tellərin köməyi olmadan əlaqə qura bilərsiniz.

Bu konfiqurasiyada heç bir rezistor tələb olunmur, çünki MAX7219 cərəyanı idarə edəcək. Sizin vəzifəniz ISET rezistoru üçün doğru dəyəri seçmək və bu rezistorla ISET pinini çəkməkdir. LEDləri yerləşdirmədən və bağlamadan əvvəl hər bir LED -i yoxlamağı məsləhət görürəm. Çünki pis LED yerləşdirmək çox vaxt itirəcək. Növbəti addımda satır və sütun tellərini MAX ic -ə bağlayacağıq.

Addım 8: Dövrə lövhəsini LED -lərə bağlayın

LED -lərlə Devre Kartına Bağlama
LED -lərlə Devre Kartına Bağlama
LED -lərlə Devre Kartına Bağlama
LED -lərlə Devre Kartına Bağlama
LED -lərlə Devre Kartına Bağlama
LED -lərlə Devre Kartına Bağlama

RTC, Arduino və MAX7219 daxil olmaqla elektron kartımız uzun müddət hazırdır və biz də LED matrisini əvvəlki mərhələdə hazırlamışıq. İndi hər şeyi sxematik şəkildə birləşdirməliyik. Əvvəlcə satır və sütun tellərini MAX7219IC -ə bağlamalıyıq. Bağlantı sxematik olaraq qeyd edildi. Daha aydın olmaq üçün aşağıdakı cədvələ əməl edin.

LED Matrix MAX7219CNG
ROW0 Rəqəm 0
1. sıra Rəqəm 1
2. sıra Rəqəm 2
3. sıra Rəqəm 3
SÜTUN0 SEGA
SÜTUN 1 SEGB
SÜTUN 2 SEGC
SÜTUN 3 SEGD
SÜTUN 4 SEGE
SÜTUN 5 SEGF

ROW0-> Ən üst sırada

COLUMN0 -> Ən sağdakı sütun (SS COLUMN)

Bağlantı qurduqdan sonra, əlaqəni pozmamaq üçün PCB lövhəsini və Arduinonu taxta parçası ilə düzəltməlisiniz. Bütün sxemləri yerində düzəltmək üçün isti yapışqan istifadə etdim. Qısaqapanmanın qarşısını almaq üçün lehim birləşməsini PCB -nin alt tərəfində gizlətmək üçün böyük miqdarda yapışqan istifadə edin.

Bir saatı istifadə etmək üçün lazım olduqda vaxtı tənzimləmək üçün bir seçim saxlamalısınız. Vaxtı tənzimləmək üçün üç düymə açarı əlavə etdim. Biri seçimi dəyişmək üçün, ikisini isə saatı və dəqiqəni artırmaq və azaltmaq üçün. Düymələr sağ üst küncdə yerləşdirilir ki, onlara asanlıqla daxil olun.

Addım 9: Mərmərlərin qoyulması

Mərmərlərin yerləşdirilməsi
Mərmərlərin yerləşdirilməsi
Mərmərlərin yerləşdirilməsi
Mərmərlərin yerləşdirilməsi
Mərmərlərin yerləşdirilməsi
Mərmərlərin yerləşdirilməsi

Bu, layihəmizin son mərhələsidir. Bütün dövrə bağlantısı tamamlandı. İndi mərməri taxta saatın üst tərəfinə qoymalısınız. Mərmərləri yerləşdirmək üçün isti yapışqan istifadə etdim. Bunun üçün ağ rəngli şəffaf yapışqan çubuq istifadə edin. Üst tərəfdən hər çuxura isti yapışqan tətbiq etdim və LED -lərin üstünə yumşaq bir şəkildə hər çuxura mərmər qoydum. Düzgün yapışqan əlavə etmək, ledin parıltısını artıracaq. Saatım üçün MAVİ LED istifadə etdim. Mənə ən yaxşı nəticəni verdi.

Saata güc verin. Vaxt göstərirsə Təbrik edirəm !!!

Sən bunu etdin!

Zövq alın!

Glow Yarışması olun
Glow Yarışması olun
Glow Yarışması olun
Glow Yarışması olun

Make It Glow Yarışmasında 2 -ci yeri tutun

Tövsiyə: