Mündəricat:
- Addım 1: Materiallar Bill
- Addım 2: Oyma və Oyma
- Addım 3: Zımpara və lak tətbiq edin
- Addım 4: Dövrə qurun
- Addım 5: Proqramı yükləyin
- Addım 6: LED -lərin yerləşdirilməsi
- Addım 7: LEDlərin bağlanması
- Addım 8: Dövrə lövhəsini LED -lərə bağlayın
- Addım 9: Mərmərlərin qoyulması
Video: İkili masa saatı: 9 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:44
İ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
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
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
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
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
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
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ı
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
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ı
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!
Make It Glow Yarışmasında 2 -ci yeri tutun
Tövsiyə:
CPE 133 İkili İkili Onlu Final Layihəsi: 5 Addım
CPE 133 Final Projesi İkili İkili: İkili Nömrələr rəqəmsal məntiq düşünərkən ağla gələn ilk şeylərdən biridir. Bununla birlikdə, İkili Nömrələr yeni başlayanlar üçün çətin bir anlayış ola bilər
Təqaüd Saatı / Sayma / Dn Saatı: 4 Adım (Şəkillərlə)
Təqaüd Saatı / Sayma / Dn Saatı: Çekmecede bu 8x8 LED nöqtə matrisli ekranlardan bir neçəsi vardı və onlarla nə edəcəyimi düşünürdüm. Digər təlimatlardan ilhamlanaraq, gələcək bir tarixə/saata qədər saymaq üçün geri sayma/yuxarı göstərici qurmaq fikrinə sahib oldum və əgər hədəf vaxt
İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: 6 Addım
İnternet Saatı: NTP Protokolu ilə ESP8266 NodeMCU istifadə edərək OLED ilə Tarixi və Saatı Göstərin: Salam uşaqlar, bu təlimatlarda internetdən vaxt alacaq bir internet saatı quracağıq, bu layihənin işləməsi üçün heç bir RTC lazım olmayacaq, yalnız işləyən internet bağlantısı Və bu layihə üçün bir esp8266 ehtiyacınız olacaq
Heç bir RTC olmadan ESP8266 Şəbəkə Saatı - Nodemcu NTP Saatı RTC yoxdur - İNTERNET SAAT PROJESİ: 4 addım
Heç bir RTC olmadan ESP8266 Şəbəkə Saatı | Nodemcu NTP Saatı RTC yoxdur | İNTERNET SAAT PROJESİ: Layihədə RTC olmadan bir saat layihəsi olacaq, wifi istifadə edərək internetdən vaxt alacaq və st7735 ekranında göstərəcək
Audio Vizualizasiya, İkili Saat və FM Alıcısı olan Masa Gücləndiricisi: 8 addım (şəkillərlə)
Səs Vizualizasiyası, İkili Saat və FM Alıcısı olan Masa Gücləndiricisi: Gücləndiriciləri sevirəm və bu günlərdə bu yaxınlarda hazırladığım aşağı güclü masa gücləndiricisini paylaşacam. Hazırladığım gücləndiricinin bəzi maraqlı xüsusiyyətləri var. İnteqrasiya edilmiş ikili saata malikdir və vaxt və tarix verə bilər və tez -tez səs adlandırılan səsi görüntüləyə bilər