Mundarija:

Ikkilik stol soati: 9 qadam (rasmlar bilan)
Ikkilik stol soati: 9 qadam (rasmlar bilan)

Video: Ikkilik stol soati: 9 qadam (rasmlar bilan)

Video: Ikkilik stol soati: 9 qadam (rasmlar bilan)
Video: Romantic 2024, Noyabr
Anonim
Ikkilik stol soati
Ikkilik stol soati
Ikkilik stol soati
Ikkilik stol soati
Ikkilik stol soati
Ikkilik stol soati

Ikkilik soatlar ajoyib va faqat ikkilik (raqamli qurilmalar tili) ni biladigan odam uchun. Agar siz texnik odam bo'lsangiz, bu g'alati soat siz uchun. Shunday qilib, o'zingizni o'zingiz qiling va vaqtingizni sir saqlang!

Internetda siz har xil turdagi ikkilik soatlarni topasiz. Hatto amazon.com kabi onlayn -do'kondan ham ikkilik soatni sotib olishingiz mumkin. Ammo bu soat hamma narsadan farq qiladi va men marmar o'ynab, unga nafis ko'rinish berdim.

Pastga tushishdan oldin, demo videoni tomosha qiling.

1 -qadam: materiallar ro'yxati

Materiallar hisobi
Materiallar hisobi
Materiallar hisobi
Materiallar hisobi
Materiallar hisobi
Materiallar hisobi

Uskuna komponentlari

1. Arduino Pro Micro (aliexpress.com saytidan sotib oling): Bu soatning asosiy yuragi va RTC vaqtini o'qiydi va shunga mos ravishda LEDlarni haydash bo'yicha ko'rsatma beradi. Agar o'lcham siz uchun ahamiyatli bo'lmasa, siz Pro Micro o'rniga Arduino Nano -dan foydalanishingiz mumkin.

2. DS3231 RTC moduli (aliexpress.com saytidan sotib oling): DS3231 RTC hatto elektr quvvati o'chganda ham vaqtni kuzatib boradi. DS1307 kabi boshqa RTC -dan foydalanish mumkin bo'lsa -da, DS3231 aniqroq.

3. MAX7219CNG LED drayveri IC (aliexpress.com saytidan sotib oling): Arduino -da cheklangan miqdordagi pim bor. Shunday qilib, agar siz Arduino pinlarini behuda sarflamasdan tonna LEDlarni boshqarishni xohlasangiz, MAX7219 - bu qutqaruvchi. U ketma -ket ma'lumotlarni oladi va mustaqil ravishda 64 LEDni boshqarishi mumkin.

4. 20 PCS Blue LED, 5mm (aliexpress.com saytidan sotib oling): Moviy rang men uchun eng yaxshi natijani berdi. Siz boshqa ranglar bilan sinab ko'rishingiz mumkin.

5. 20 ta marmar o'ynaydigan kompyuter (aliexpress.com saytidan sotib oling): standart o'lchamdagi marmar ishlatilgan. Yorug'lik o'tishi uchun marmar shaffof bo'lishi kerak.

6. Rezistor 10K: MAX7219 IC segment oqimini boshqarish uchun ishlatiladi. Har xil segment oqimi uchun aniq qiymatni bilish uchun ma'lumotlar jadvaliga qarang.

7. Simlar

8. Prototipli tenglikni kartasi (aliexpress.com saytidan sotib oling): Men IC bazasi bilan MAX7219 IC uchun PCB prototipli platasini ishlatardim. Siz o'zingizning shaxsiy PCB kartangizni ham loyihalashingiz mumkin.

Uskuna vositalari

1. CNC 3018 PRO lazerli o'yma yog'och yog'och CNC router mashinasi (aliexpress.com saytidan sotib oling): Theis DIY CNG mashinasi marmar va diodli yog'ochlarni o'yishda ishlatilgan. Bu har qanday ishlab chiqaruvchi va havaskorlar uchun arzon narxga ega ajoyib mashina.

2. Lehimlash stantsiyasi (aliexpress.com saytidan sotib oling): Loyihani tayyorlash uchun bir oz lehim kerak bo'ladi va yaxshi lehimlanadigan temir ishlab chiqaruvchi uchun zarur vositadir. 60W - DIY lehim uchun yaxshi tanlov.

3. Tel kesuvchi (aliexpress.com saytidan sotib oling)

4. CNC uchun titanium qoplamali karbidli frezalashtiruvchi (aliexpress.com saytidan sotib oling): Siz mashinada berilgan bit bilan ham urinib ko'rishingiz mumkin. Bunday holda siz dizaynga biroz o'zgartirish kiritishingiz kerak.

2 -qadam: o'yma va o'yma

Oyma va o'yma
Oyma va o'yma
Gravür va o'yma
Gravür va o'yma
Gravür va o'yma
Gravür va o'yma

Men soatning LEDlarini joylashtirish uchun 165X145X18,8 mm yumshoq Maple yog'och qismini oldim. Har bir chiroqning yuqori qismiga men marmar qo'yaman va standart marmar diametri 15,5 mm. Shunday qilib, men chuqurligi 7 mm bo'lgan 15,7 mm teshiklar qildim. Teshikning markazida men LEDni joylashtirish uchun 5 mm matkap qildim. Barcha matn 2 mm chuqurlikda qilingan. Siz tanlagan chuqurlikni oshirishingiz yoki kamaytirishingiz mumkin. Bundan tashqari, siz matnni lazer bilan o'yib ko'rishingiz mumkin.

To'liq dizayn Inventables -dan Easel tomonidan qilingan. Easel-bu bitta oddiy dasturdan loyihalash va o'yish imkonini beradigan veb-asosidagi dasturiy platforma va ko'pgina funktsiyalar bepul. Siz tizimga faqat hisob qaydnomasi yoki Gmail yordamida kirishingiz kerak edi.

Easel Pro-bu a'zolikka asoslangan bulutli dastur bo'lib, u Inventables-ning bepul Easel dasturiga asoslanadi. Easel va Easel Pro SAPR va CAM mahsulotlarini ishlab chiqarishning murakkab dasturlari bilan bog'liq to'siqlarni kamaytiradi, bu foydalanuvchilarga jismoniy mahsulotlarni ishlab chiqarishni osonlashtiradi.

Easel-dan foydalanib siz dizayn faylini G-kod formatida eksport qilishingiz yoki CNC-ni to'g'ridan-to'g'ri Easel muhitidan sozlashingiz va CNC-ga buyruq yuborishingiz mumkin. Bunday holda, siz Easel uchun drayverni o'rnatishingiz kerak. Siz ilgari yaratilgan G-kodni Easel IDE-ga import qilishingiz va o'zgartirishingiz mumkin. Men bu erda dizayn faylini qo'shdim. Easel yordamida siz xohlaganingizcha dizaynni osongina o'zgartirishingiz mumkin.

3 -qadam: Zımpara va lak surtish

Zımpara va lakni qo'llash
Zımpara va lakni qo'llash
Zımpara va lakni qo'llash
Zımpara va lakni qo'llash
Zımpara va lakni qo'llash
Zımpara va lakni qo'llash
Zımpara va lakni qo'llash
Zımpara va lakni qo'llash

Vernik yog'ochdan yasalgan loyihalar va rasmlarni chiroyli bezashni ta'minlay oladi. Yog'ochga lak surtishdan oldin, bo'lagingizni zımparalang va ish joyingizni tozalang. Zımpara silliq ko'rinish beradi va yog'ochni lak uchun tayyorlaydi. Lakni bir necha ingichka qatlamlarga surting, ikkinchisiga o'tishdan oldin yaxshilab quriting. Rasmni lak bilan bo'yash uchun uni to'liq quritib turing va keyin lakni yaxshilab tarang. Ko'p rasm uchun bitta palto kifoya qiladi, lekin avvalgisini yaxshilab quritishga ruxsat berganingizda, siz qo'shimcha qatlam qo'shishingiz mumkin.

Lakni bo'yashdan oldin, har qanday nuqson va nuqsonlarni olib tashlash kerak. Buning uchun tugallanmagan qismlar uchun 100 dona zımpara qog'ozidan foydalaning va yog'och donasi bilan ishlang. Parcha silliq bo'lguncha muloyimlik bilan qumlang. Yog'och qismini tozalashdan so'ng, lakni yaxshi gazlangan joyda surting.

Vernik yog'ochni atrofdagi chang va namlikdan saqlaydi, lekin bu yog'och rangiga ta'sir qilishi mumkin.

4 -qadam: O'chirish sxemasini tuzish

O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish
O'chirish

Soatning asosiy komponenti - Arduino Pro Mini mikrokontroller platasi va DS3231 RTC moduli. Arduino Pro Mini va RTC modulining ulanishi juda oddiy. RTC modulining SDA pinini Arduino SDA piniga va RTC modulining SCL piniga Arduino SCL piniga ulashingiz kerak. SDA va SCL pinlari mos ravishda A4 va A5 pinlari Arduino. Bundan tashqari, Arduino va RTC modullari o'rtasida umumiy aloqa o'rnatishingiz kerak. Ulanish uchun men o'tish simlarini ishlatardim.

Arduino va DS3231 RTC o'rtasidagi aloqa:

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

Soat, daqiqa va soniyani ko'rsatish uchun ikkilik soat 20 LEDni talab qiladi. Agar siz sanani ko'rsatmoqchi bo'lsangiz, bu ko'proq narsani talab qiladi. Arduino kartasida GPIO pinlari cheklangan. Shunday qilib, men MAX7219CNG LED drayveri IC -dan Arduino kartasining faqat uchta pinidan foydalanib, tonna LEDlarni haydash uchun ishlatardim.

MAX7219 IC drayveri Arduino bilan aloqa qilish uchun atigi 3 ta simdan foydalangan holda 64 ta individual LEDni boshqarishga qodir, bundan tashqari, biz bir nechta drayverlar va matritsalarni zanjirlay olamiz va bir xil 3 simni ishlatamiz.

64 ta LED, ICning 16 chiqish pimi bilan boshqariladi. Endi qanday qilib bu mumkin degan savol tug'iladi. Xo'sh, LEDlarning maksimal soni bir vaqtning o'zida yonadi - sakkiztasi. LEDlar 8 × 8 qator va ustunlar to'plami sifatida joylashtirilgan. Shunday qilib, MAX7219 har bir ustunni juda qisqa vaqt ichida faollashtiradi va shu bilan birga har bir qatorni harakatga keltiradi. Shunday qilib, ustunlar va qatorlarni tez aylantirish orqali inson ko'zi faqat doimiy nurni sezadi.

MAX7219 VCC va GND Arduino -ning 5V va GND pinlariga, qolgan uchta DIN, CLK va CS pinlariga Arduino kartasining istalgan raqamli piniga o'tadi. Agar biz bir nechta modulni ulamoqchi bo'lsak, avvalgi uzilish taxtasining chiqish pinlarini yangi modulning kirish pimlariga ulashimiz kifoya. Aslida, bu pinlar bir xil, faqat oldingi taxtaning DOUT pimi yangi taxtaning DIN piniga o'tadi.

Arduino va MAX7219CNG o'rtasidagi aloqa:

Arduino MAX7219
D12 Din
D11 CLK
D10 YUKLASH
GND GND

5 -qadam: Dasturni yuklash

Dasturni yuklash
Dasturni yuklash

Butun dastur Arduino muhitida yozilgan. Eskiz uchun ikkita tashqi kutubxona ishlatilgan. Ulardan biri RTC moduli uchun, ikkinchisi MAX7219 IC uchun. Kutubxonalarni havoladan yuklab oling va dasturni tuzishdan oldin Arduino IED -ga qo'shing.

Arduino Pro Mini -ga dasturni yuklash biroz murakkab. Agar siz ilgari Arduino Pro Mini -ni hech qachon ishlatmagan bo'lsangiz, qo'llanmani ko'rib chiqing:

/*

GIT: https://github.com/jarzebski/Arduino-DS3231> GIT: https://github.com/jarzebski/Arduino-DS3231> */#include "Wire.h" #include "DS3231.h" #include "LedControl.h" /* Endi biz bilan ishlash uchun LedControl kerak. ***** Bu pin raqamlari sizning apparatingiz bilan ishlamasligi mumkin ***** pin 12 DataInga ulangan CLK piniga ulangan 10 LOADga ulangan Bizda faqat bitta MAX72XX bor. */ DS3231 soati; RTCDateTime dt; LedControl lc = LedControl (12, 11, 10, 1); int soniya, daqiqa, soat; bayt raqami [10] = {B00000000, B01000000, B00100000, B01100000, B00010000, B01010000, B00110000, B01110000, B00001000, B01001000}; void setup () {//Serial.begin(9600); / * MAX72XX ishga tushganda quvvatni tejash rejimida, biz uyg'onish qo'ng'irog'ini qilishimiz kerak */ lc.shutdown (0, noto'g'ri); / * Yorqinlikni o'rta qiymatlarga o'rnating */ lc.setIntensity (0, 15); / * va displeyni tozalang */ lc.clearDisplay (0); //lc.setLed(0, qator, ustun, to'g'ri); // 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 () ni ishga tushiring; // Eskizni tuzish vaqtini belgilang //clock.setDateTime(_DATE_, _TIME_); pinMod (5, INPUT_PULLUP); pinMod (6, INPUT_PULLUP); pinMod (7, INPUT_PULLUP); } int menyusi = 0, yuqoriga, pastga; int hours_one; int hours_ten; int minutes_one; int minutes_ten; int seconds_one; int seconds_ten; void loop () {if (digitalRead (5) == 0) {kechiktirish (300); menyu ++; agar (menyu> 3) menyu = 0; } agar (menyu == 0) {dt = clock.getDateTime (); soat = dt.soat; daqiqa = dt.minute; soniya = dt.sekund; agar (soat> 12) soat = soat - 12; agar (soat == 0) soat = 1; hours_one = soat%10; hours_ten = soat/10; minutes_one = daqiqa%10; minutes_ten = daqiqa/10; soniya_onasi = soniya%10; seconds_ten = soniya/10; lc.setRow (0, 0, son [sonlar_on]); lc.setRow (0, 1, raqam [seconds_ten]); lc.setRow (0, 2, raqam [minutes_one]); lc.setRow (0, 3, raqam [minutes_ten]); lc.setRow (0, 4, raqam [hours_one]); lc.setRow (0, 5, raqam [hours_ten]); } if (menyu == 1) {if (digitalRead (6) == 0) {kechiktirish (300); soat ++; agar (soat> = 24) soat = 0; } if (digitalRead (7) == 0) {kechiktirish (300); soat-; agar (soat = 60) daqiqa = 0; } if (digitalRead (7) == 0) {kechiktirish (300); daqiqa-; agar (daqiqa <0) daqiqa = 0; } daqiqa_ bir = daqiqa%10; minutes_ten = daqiqa/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, raqam [minutes_one]); lc.setRow (0, 3, raqam [minutes_ten]); } agar (menyu == 3) {clock.setDateTime (2020, 4, 13, soat, daqiqa, 01); menyu = 0; } //lc.setLed(0, qator, ustun, noto'g'ri); //lc.setLed(0, qator, ustun, to'g'ri); //lc.setColumn (0, col, B10100000); //lc.setRow (0, 4, B11111111); //lc.setRow(0, qator, (bayt) 0); //lc.setColumn (0, col, (bayt) 0); // DS3231_dateformat misoliga nolni kiritish uchun // Serial.print ("Xom ma'lumotlar:"); // Seriyali bosma (keyingi yil); Serial.print ("-"); // ketma -ket chop etish (dt. oy); Serial.print ("-"); // Serial.print (dt.day); Serial.print (""); // Serial.print (dt.soat); Serial.print (":"); // Serial.print (dt.minute); Serial.print (":"); // Serial.print (dt.sekund); Serial.println (""); // // kechikish (1000); }

6 -qadam: LEDlarni joylashtirish

LEDlarni joylashtirish
LEDlarni joylashtirish
LEDlarni joylashtirish
LEDlarni joylashtirish
LEDlarni joylashtirish
LEDlarni joylashtirish
LEDlarni joylashtirish
LEDlarni joylashtirish

Ushbu bosqichda men barcha LEDlarni yog'och taxtaning teshiklariga qo'yaman. LEDlarning ulanishi sxemada ko'rsatilgan. LEDlarni boshqarish uchun biz MAX7219 LED drayveridan foydalanamiz, barcha LEDlar matritsa shaklida ulangan bo'lishi kerak. Shunday qilib, men har bir ustundagi barcha LEDlarning anod pimlarini va har bir qatorning barcha katodli pinlarini sxemaga muvofiq bog'ladim. Endi bizning ustun pinlarimiz LEDlarning anodli pinlari va chiziqli pinlar aslida LEDlarning katodli pinlari.

LEDlarni MAX7219 yordamida boshqarish uchun siz LEDning katodli pinini IC raqamli piniga va LEDning anodli pinini IC segmentining piniga ulashingiz kerak. Shunday qilib, bizning ustun pinlari segment pinlariga, qatorlar esa MAX7219 raqamli piniga ulangan bo'lishi kerak.

ISET pin va MAX7219 IC VCC o'rtasida rezistorni ulashingiz kerak va bu rezistor segment pimlarining tokini boshqaradi. Men har bir segment pinida 20mA ni ushlab turish uchun 10K rezistordan foydalandim.

7 -qadam: LEDlarni ulash

LEDlarni ulash
LEDlarni ulash
LEDlarni ulash
LEDlarni ulash
LEDlarni ulash
LEDlarni ulash

Bu bosqichda men barcha LEDlarni ketma-ket matritsa formatida uladim. Men LEDlarni ulash uchun qo'shimcha o'tish simlaridan foydalanishim kerak edi, lekin agar siz LEDlarning simlari bir -biriga tegib turadigan darajada uzun bo'lsa, siz qo'shimcha simlarsiz ulanishingiz mumkin.

Ushbu konfiguratsiyada qarshilik talab qilinmaydi, chunki MAX7219 tokni boshqaradi. Sizning vazifangiz - ISET qarshiligi uchun to'g'ri qiymatni tanlash va bu rezistor yordamida ISET pinini tortib olish. LEDlarni joylashtirish va ulashdan oldin men sizga har bir LEDni tekshirishni taklif qilaman. Chunki yomon LEDni qo'yish ko'p vaqtni o'ldiradi. Keyingi bosqichda biz qator va ustun simlarini MAX ic ga ulaymiz.

8 -qadam: O'chirish kartasini LEDlar bilan ulash

O'chirish platasini LEDlar bilan ulash
O'chirish platasini LEDlar bilan ulash
O'chirish platasini LEDlar bilan ulash
O'chirish platasini LEDlar bilan ulash
O'chirish platasini LEDlar bilan ulash
O'chirish platasini LEDlar bilan ulash

Bizning elektron platamiz RTC, Arduino va MAX7219 ni o'z ichiga oladi va biz LED matritsasini oldingi bosqichda tayyorlaganmiz. Endi biz hamma narsani sxemaga muvofiq ulashimiz kerak. Birinchidan, biz qator va ustun simlarini MAX7219IC ga ulashimiz kerak. Ulanish sxemada ko'rsatilgan. Buni yanada aniqroq qilish uchun quyidagi jadvalga amal qiling.

LED matritsasi MAX7219CNG
ROW 0 DIGIT0
1 -qator DIGIT1
2 -qator DIGIT2
3 -qator DIGIT3
Ustun 0 SEGA
1 -TUTUK SEGB
2 -ustun SEGC
3 -ustun SEGD
Ustun 4 SEGE
TUTUK 5 SEGF

ROW0-> Eng yuqori qator

COLUMN0 -> Eng o'ng ustun (SS COLUMN)

Ulanishni tugatgandan so'ng, ulanishni buzmaslik uchun siz PCB kartasini va Arduino -ni yog'och bo'lak bilan mahkamlashingiz kerak. Men barcha sxemalarni joyiga mahkamlash uchun issiq elim ishlatardim. Qisqa tutashuvning oldini olish uchun, tenglikni pastki qismidagi lehim birikmasini yashirish uchun ko'p miqdorda elim ishlating.

Vaqtni ishlatish uchun siz kerak bo'lganda vaqtni sozlash imkoniyatiga ega bo'lishingiz kerak. Vaqtni sozlash uchun uchta tugmachani qo'shdim. Biri variantni o'zgartirish uchun, ikkinchisi soat va daqiqani ko'paytirish va kamaytirish uchun. Tugmalar yuqori o'ng burchakda joylashganki, ularga osongina kirish mumkin.

9 -qadam: marmar toshlarni joylashtirish

Marmar toshlarni joylashtirish
Marmar toshlarni joylashtirish
Marmar toshlarni joylashtirish
Marmar toshlarni joylashtirish
Marmar toshlarni joylashtirish
Marmar toshlarni joylashtirish

Bu bizning loyihamizning yakuniy bosqichi. Barcha elektron ulanish tugallandi. Endi siz marmarni yog'och soatning yuqori qismiga qo'yishingiz kerak. Marmar qo'yish uchun issiq elim ishlatilgan. Buning uchun oq rangli shaffof yopishtiruvchi tayoqdan foydalaning. Men har bir teshikka yuqori tomondan issiq elim surtdim va LEDlarning ustiga marmarni har bir teshikka ohista joylashtirdim. Yelimni teng ravishda qo'shib qo'yish, yorug'lik nurini oshiradi. Men soatim uchun Moviy LED ishlatardim. Bu menga eng yaxshi natijani berdi.

Soatga kuch bering. Agar vaqt ko'rsatilsa, tabriklayman !!!

Siz erishdingiz!

Xursand bo'ling!

Buni "Glow" tanloviga aylantiring
Buni "Glow" tanloviga aylantiring
Buni "Glow" tanloviga aylantiring
Buni "Glow" tanloviga aylantiring

"Yorqin qiling" tanlovida ikkinchi o'rinni egalladi

Tavsiya: