Mundarija:
- 1 -qadam: asboblar va materiallar
- 2 -qadam: yog'och ramkani yopishtiring
- 3 -qadam: Doira kesish dastagidan foydalanib ramkani kesib oling
- 4 -qadam: viteslarni chop etish va yig'ish
- 5 -qadam: Bo'limlarni "yopishtiring"
- 6 -qadam: Rölyeflarni ramkaga kesib oling
- 7 -qadam: Hall effektli sensorlar uchun bo'sh joy
- 8 -qadam: tashqi halqani yopishtiring
- 9 -qadam: Hall effekti sensori sozlash vintlarini kesib oling
- 10 -qadam: Uzuklarni qattiq taxtaga yopishtiring
- 11 -qadam: Ichki diskni yopishtiring
- 12 -qadam: Veneerni biriktiring
- 13 -qadam: Veneerni kesing
- 14 -qadam: Veneerni kesib oling
- 15 -qadam: yopishtiruvchi qoplama
- 16 -qadam: Qum va tugatish
- 17 -qadam: Quvvatni o'rnating
- 18 -qadam: Elektronikani yig'ing
- 19 -qadam: Lehim va ulanish elektronikasi
- 20 -qadam: Orqa plastinka
- 21 -qadam: Arduino kodi
- 22 -qadam: STL fayllari
- 23 -qadam: Solidworks fayllari
- 24 -qadam: Xulosa
Video: Qiziqarli magnit devor soati: 24 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
Mexanik soatlar har doim meni o'ziga jalb qilgan. Ichki tishli uzatmalar, buloqlar va qochmalarning birgalikda ishlashi, natijada doimiy ishonchli soatga ega bo'lish, mening mahoratim cheklangan. Yaxshiyamki, zamonaviy elektronika va 3D bosilgan qismlar kichik metall qismlarga tayanmaydigan oddiy narsalarni yaratish uchun bo'shliqni to'ldirishi mumkin.
Bu minimalist devor soati magnitlarni klassik yong'oq qoplamasi orqasida aylantiradigan, arzon pog'onali dvigatellar tomonidan boshqariladigan 3D bosma halqali tishli g'ildiraklarni yashiradi.
Dastlab STORY Clock -dan ilhomlanib, men bilyli rulmanlardan foydalanadigan kunning vaqtini, faqat raqamli o'qish va o'z mahsulotidan foydalanadigan sekin harakatlanuvchi to'pni ko'rsatishni xohlardim.
1 -qadam: asboblar va materiallar
Materiallar:
- 13 x 13 x 2 dyuymli kontrplak/zarracha taxtasi (men 3 dona yog'och qoldiqlarini yopishtirdim)
- 13 x 13 dyuymli qattiq taxta
- Arduino Nano
- Haqiqiy vaqt soati
- Stepper motorlar va haydovchilar
- Zal effekti sensori
- Magnitlar
- Quvvat kabeli
- AC adapteri
- Plug
- Mashinaning turli xil vintlari
- Har xil yog'och vintlardek
- 3D bosilgan qismlar (oxirgi qadam)
- Veneer (12 x 12 dyuym - yuz, 40 dyuymli uzun chiziq)
- Spray lak
- Qora purkagichli bo'yoq
Asboblar:
- 3D printer
- Kompas
- X-akto pichoq
- Yelim
- Qisqichlar
- Doira kesish dastgohi
- Hack Saw
- Disk Sander
- Ratchet qisqichi
- Chiziq
- Hukmdor
- Sander
- Matkaplar
- Tornavidalar
- Lehimlash temir
- Issiq yopishtiruvchi qurol
2 -qadam: yog'och ramkani yopishtiring
Soat ramkasini tashkil etadigan uchta yog'och bo'lakni yopishtiring. Men eski ko'rpa -to'shakdan qayta ishlangan zarrachalar taxtasidan foydalandim.
3 -qadam: Doira kesish dastagidan foydalanib ramkani kesib oling
Taxtaning o'rtasini belgilang va aylana kesish moslamasiga joylashtiring. Quyidagi diametrli beshta doirani kesib oling:
- 12 dyuym
- 11 1/4 dyuym.
- 9 1/4 dyuym.
- 7 1/4 dyuym.
- 5 3/8 dyuym.
4 -qadam: viteslarni chop etish va yig'ish
Halqa tishli qismlari bo'laklarga bo'linadi, shuning uchun ularni kichik printerda chop etish va bir -biriga ulash mumkin. Barcha qismlar keyingi bosqichda ko'rsatilgan eritish jarayoniga yordam berish uchun ABS -da chop etilgan. Parchalarning barcha qirralarini va yuzalarini qumlang.
22 -qadamda topilgan quyidagi qismlarni chop eting:
- 1 - soat uzukli tishli segment magnit
- 6 - soatlik uzukli uzatmalar segmentining asosiy qismi
- 1 - soatni ushlab turuvchi halqa segmentini qadam o'rnatish
- 6 - soatni ushlab turuvchi halqa segmenti asosiy
- 1 - Soat zali effekt sensori ushlagichi
- 1 - daqiqali halqa tishli segment magnit
- 7 - Minute Ring Gear Segment Basic
- 1 - Daqiqali ushlab turuvchi halqa segmentini qadam o'rnatish
- 6 - Minute Retaining Ring Segment Basic
- 1 - Daqiqali Zal effekti sensori ushlagichi
- 2 - Spur Gear
- 1 - Elektron tog'i
5 -qadam: Bo'limlarni "yopishtiring"
Bir oz asetonli shisha idishda, eskirgan eski materiallarni bosib chiqaring. Qismlarni bir -biriga yopishtirish uchun har bir tikuvga aseton aralashmasini bo'yab qo'ying. Sog'aygandan so'ng, har bir tikuvni tekis tekislang.
6 -qadam: Rölyeflarni ramkaga kesib oling
Halqa tishli va ushlab turuvchi halqalarni ramkaga joylashtiring va pog'onali dvigatellar uchun bo'rttirmalarni kesib oling. Men ichki halqani juda katta o'lchadim va kesib tashladim, shuning uchun uni do'kon atrofidagi chinorning chekkalari yordamida o'lchamiga qarab o'zgartirdim.
7 -qadam: Hall effektli sensorlar uchun bo'sh joy
Mineral zali effekti sensori uchun ichki halqadan bo'sh joyni va soat zali effekti sensori uchun uyani kesib oling. Men bu bo'shliqlarni kesish uchun pichoq, fayl va kichik qo'lda ishladim.
8 -qadam: tashqi halqani yopishtiring
Tashqi halqani bir daqiqa ushlab turuvchi halqaning o'lchamiga yopishtiring va yopishtiring.
9 -qadam: Hall effekti sensori sozlash vintlarini kesib oling
Mashina vintlarini kesish arra bilan kesib oling, shunda ular ushlab turuvchi halqa va datchik effekti ushlagichining qalinligidan uzunroq bo'ladi. Iplardan yivni kesib oling, shunda u yivli uchidan tekis tornavida bilan sozlanishi mumkin.
10 -qadam: Uzuklarni qattiq taxtaga yopishtiring
Tashqi halqadan kattaroq qattiq taxta doirasini kesib oling. Qatlamli yuzga tashqi va ichki halqani yopishtiring. Ichki halqani joylashtirish uchun ushlab turuvchi halqa va uzuk uzatmalaridan foydalaning. Ichki halqani orqaga yopishtirmaslikka qaraganda, menga ko'proq e'tibor bering. Ikkinchi rasmda zalning effekt sensori uchun yangi uyasi ko'rsatilgan.
Qattiq taxtani tashqi halqaning o'lchamiga qadar kesish uchun disk silliqlash moslamasidan foydalaning.
11 -qadam: Ichki diskni yopishtiring
Ichki diskni joylashtirish uchun soatni ushlab turuvchi halqa va uzuk tishli yordamida ichki diskni yopishtiring.
12 -qadam: Veneerni biriktiring
Sochni o'rab oladigan chuqur va uzunligidan ko'ra kengroq shpon tasmasini kesib oling (soat diametri 3.14 *, kerakli uzunlikni qaytaradi. Sizda yetarli ekanligiga ishonch hosil qilish uchun bir dyuym qo'shing.) uzunlikka kesing. Qoplamaga qisqich bilan mahkamlang va shponga etarlicha elim qo'llang. Yopishqoqlikni ta'minlash uchun bir necha soat quriting.
13 -qadam: Veneerni kesing
O'tkir pichoq yordamida soatning old va orqa qismidagi ortiqcha qoplamani kesib oling.
14 -qadam: Veneerni kesib oling
Mening shponimda bir nechta yoriqlar bor edi. U bilan ishlashni osonlashtirish uchun men uni yopishtirish uchun rassomlar tasmasini qo'lladim. Kompasda x-akto pichog'idan foydalanib, shponni soat yuzidan kattaroq qilib kesib oling.
15 -qadam: yopishtiruvchi qoplama
Bosimni soat yuziga tarqatish uchun kesilgan halqalardan foydalaning. Qoplamaning yopishtirilmagan tomoniga ko'p miqdorda elim surting. Donni soat yuziga vertikal yo'naltiring va har birini birdaniga qisib turadigan ko'plab qisqichlarni qo'llang. Bu qoplamaning siljishining oldini oladi va hatto yuzga bosim o'tkazadi.
Men soatning o'ng tomonida ikkita tekis taxtadan va orqada bir nechta tirnoqlardan foydalanardim.
16 -qadam: Qum va tugatish
Zımpara qog'ozidan foydalanib, soatning yuqori qismidagi ortiqcha qoplamani ehtiyotkorlik bilan olib tashlang va 220 gritdan 600 gacha qumni boshlang.
10 dan 20 tagacha lak surting. Bu bilyali rulman o'tadigan sirtni hosil qiladi. Muqarrar ravishda chang va havodagi boshqa zarralar tufayli, menimcha, har bir rulman yo'li bo'ylab chiziqlar paydo bo'ladi. Ko'proq qatlamlarni qo'llash, buni iloji boricha kechiktirishi kerak. Bu, shuningdek, kelajakda qayta ishlashni osonlashtiradi. Agar soatimda chiziqlar paydo bo'lsa, men bu qadamni yangilayman.
17 -qadam: Quvvatni o'rnating
27/64 dyuymli matkap yordamida soatning pastki qismida teshik oching va vilkasini burab qo'ying.
18 -qadam: Elektronikani yig'ing
Bosqichli haydovchilar va real vaqtda soatni elektron taxtaga ulang. Menga Arduino -ni mahkamlash uchun yo'l topishim kerak edi, shuning uchun teshiklar ochildi va fermuar taqish uchun uyasi kesildi. Bu xususiyatlar 22 -qadamda topilgan faylga qo'shilgan.
19 -qadam: Lehim va ulanish elektronikasi
Blok -sxemaga muvofiq, barcha qismlarni bir -biriga lehimlang. Uzuklarni joyiga issiq yopishtiring va simlarni issiq elim bilan mahkamlang.
20 -qadam: Orqa plastinka
Soat yuzidan 1/2 dyuym kattaroq boshqa doira va ichki diametri soatning orqa qismi bilan bir xil bo'lgan halqani kesib, orqa plastinkani yarating. Halqa va aylanani bir nechta kamon qisqichlari bilan yopishtiring.
Quriganidan so'ng, ichki halqadan 1/8 dyuym kattaroq chiziq yozing va tasma arra yoki disk silliqlash mashinasi yordamida o'lchamiga qirqing.
Orqa tomonning yuqori qismida kengligi 1 dyuymli 1/4 dyuymli yo'lakchani yoki matkap uchlarini kesib oling. Orqa tomonni soat ramkasiga mahkamlash uchun to'rt teshikni teskari burab qo'ying.
Qora buzadigan amallar bo'yoqini qo'llang va quriganidan keyin soatga mahkamlang.
21 -qadam: Arduino kodi
Arduino kodi iloji boricha izohlanadi. Shuni yodda tutingki, men dasturchi emasman, menda minimal arduino tajribasi bor (mehribon bo'ling). Kod doimiy ravishda "Vaqtni tiklash" ga mos keladimi -yo'qligini tekshiradi. Chunki men hozirgi vaqtni bosqichlarga aylantirishning yo'lini o'ylay olmadim, u har kuni bir marta tuzatadi (sukut bo'yicha yarim tunda). Yarim tunda viteslar yarim tunda aylanadi, keyin soat 00: 01gacha kuting va shu vaqtga qadar davom eting. Hozirgi vaqtda soat 24 soat davomida atigi 5 soniyani yo'qotadi.
Sizga Stepper va RTClib kutubxonalari o'rnatilgan bo'lishi kerak.
Bilaman, kodni o'zimdan ko'ra ko'proq tajribaga ega bo'lgan kishi optimallashtirishi mumkin. Agar siz qiyinchiliklarga duch kelsangiz, iltimos, ushbu loyihani o'zingiz uchun qayta yarating va o'z bilimlaringiz bilan o'rtoqlashing.
#qo'shing
#"RTClib.h" ni qo'shing RTC_DS1307 rtc; #Devine oneRotation 2038 // 28BYJ-48 qadamli dvigatelning bitta aylanishdagi qadamlar soni StepperHand (oneRotation, 3, 5, 4, 6); StepperHand (oneRotation, 7, 9, 8, 10); #define hourStopSensor 12 #define minutesStopSensor 11 int endStep = 0; // Vaqt soat tezligiga mos keladi. int setDelay1 = 168; int setDelay2 = 166; int setDelay3 = 5; // Matematikani bajarish vaqti. float hr = 0; float mn = 0; float sc = 0; // Soatni tiklash uchun kunning vaqtini belgilang (24 soatlik format). int resetHour = 0; int resetMinute = 0; // Ishga tushirish va tiklash vaqtida to'g'ri vaqtni belgilash uchun o'zgaruvchilar. float setTimeStepHour = 0; float setTimeStepMinute = 0; float handDelay = 0; float hourTest = 0; float minutesTest = 0; void setup () {Serial.begin (115200); // Haqiqiy vaqtda soatni sozlash va zal effektli sensorlarni qayta o'rnatish. pinMode (hourStopSensor, INPUT_PULLUP); pinMode (minutesStopSensor, INPUT_PULLUP); rtc.begin (); // Vaqtni belgilash uchun quyida izoh qoldirmang. // rtc.adjust (DateTime (2020, 2, 19, 23, 40, 30)); // rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))))); // Bosqichli motorlarning maksimal tezligini belgilang. hourHand.setSpeed (15); daqiqaHand.setSpeed (15); // Loop minut va soat qo'llari peshin vaqtida (digitalRead (hourStopSensor) == LOW || digitalRead (minutesStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } boshqa {kechiktirish (3); } if (digitalRead (minutesStopSensor) == LOW) {minutesHand.step (3); } boshqa {kechiktirish (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minutesStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } boshqa {kechiktirish (3); } if (digitalRead (minutesStopSensor)! = LOW) {minutesHand.step (3); } boshqa {kechiktirish (4); }} // Joriy vaqtni oling DateTime now = rtc.now (); hr = hozir.soat (); mn = hozir.minute (); sc = hozir.sekund (); // 12 soatlik formatga o'zgartirish, agar (hr> = 12) {hr = hr - 12; } // Qarang, qaysi qo'l yuz bo'ylab yurishi kerak va shu vaqtni mos ravishda sozlash uchun // hourTest = soat / 12; daqiqaTest = mn / 60; if (hourTest> minutesTest) {handDelay = hourTest; } boshqa {handDelay = minutesTest; } // Joriy soatni belgilash setTimeStepHour = (soat * 498) + (mn * 8,3) + ((sc + (handDelay * 36)) *.1383); // Joriy daqiqani o'rnating setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1,9); // Qaysi qo'lga ko'proq qadam kerak bo'lishini tekshiring va for loop uchun eng uzun qadamlarni belgilang. agar (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } boshqa {endStep = setTimeStepMinute; } uchun (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } boshqa {kechiktirish (3); } agar (i <setTimeStepMinute) {minutesHand.step (3); } boshqa {kechiktirish (4); }} // RPM bilan ishlaydigan soatni sozlash hourHand.setSpeed (1); daqiqaHand.setSpeed (1); } void loop () {// Soat ishlaydigan tsiklni ishga tushirish. for (int i = 0; i <22; i ++) {minutesHand.step (1); kechikish (setDelay1); // Qayta tiklash vaqtini sinab ko'ring, agar tiklashga tayyor bo'lsa, uzing. if (rtc.now (). hour () == resetHour && rtc.now (). daqiqa () == resetMinute) {tanaffus; }} kechikish (setDelay3); for (int i = 0; i <38; i ++) {hourHand.step (1); kechikish (setDelay1); // Qayta tiklash vaqtini sinab ko'ring, agar tiklashga tayyor bo'lsa, uzing. if (rtc.now (). hour () == resetHour && rtc.now (). daqiqa () == resetMinute) {tanaffus; } uchun (int i = 0; i <20; i ++) {minutesHand.step (1); kechikish (setDelay2); // Qayta tiklash vaqtini sinab ko'ring, agar tiklashga tayyor bo'lsa, uzing. if (rtc.now (). hour () == resetHour && rtc.now (). daqiqa () == resetMinute) {tanaffus; }}} // Qayta tiklash vaqtida soatni qayta o'rnatish, agar (rtc.now (). Soat () == resetHour && rtc.now (). Daqiqa () == resetMinut) {// Soat soatining tezligini o'zgartirishHand.setSpeed (10); daqiqaHand.setSpeed (10); // Dumaloq va soat qo'llari tushga yetguncha. while (digitalRead (hourStopSensor) == LOW || digitalRead (minutesStopSensor) == LOW) {if (digitalRead (hourStopSensor) == LOW) {hourHand.step (2); } boshqa {kechiktirish (3); } if (digitalRead (minutesStopSensor) == LOW) {minutesHand.step (3); } boshqa {kechiktirish (4); }} while (digitalRead (hourStopSensor)! = LOW || digitalRead (minutesStopSensor)! = LOW) {if (digitalRead (hourStopSensor)! = LOW) {hourHand.step (2); } boshqa {kechiktirish (3); } if (digitalRead (minutesStopSensor)! = LOW) {minutesHand.step (3); } boshqa {kechiktirish (4); }} // Qayta tiklash vaqti tugaguncha shu erda kuting. while (rtc.now (). minutes () == resetMinute) {kechiktirish (1000); } // Hozirgi vaqtni oling DateTime now = rtc.now (); hr = hozir.soat (); mn = hozir.minute (); sc = hozir.sekund (); // 12 soatlik formatga o'zgartirish, agar (hr> = 12) {hr = hr - 12; } // Qarang, qaysi qo'l yuz bo'ylab harakatlanishi kerak va shu vaqtni mos ravishda sozlash uchun //. hourTest = soat / 12; daqiqaTest = mn / 60; if (hourTest> minutesTest) {handDelay = hourTest; } boshqa {handDelay = minutesTest; } // Joriy soatni belgilash setTimeStepHour = (soat * 498) + (mn * 8,3) + ((sc + (handDelay * 36)) *.1383); // Joriy daqiqani o'rnating setTimeStepMinute = (mn * 114) + ((sc + (handDelay * 45)) * 1,9); // Qaysi qo'lga ko'proq qadam kerak bo'lishini tekshiring va for loop uchun eng uzun qadamlarni belgilang. agar (setTimeStepHour> setTimeStepMinute) {endStep = setTimeStepHour; } boshqa {endStep = setTimeStepMinute; } uchun (int i = 0; i <= endStep; i ++) {if (i <setTimeStepHour) {hourHand.step (2); } boshqa {kechiktirish (3); } agar (i <setTimeStepMinute) {minutesHand.step (3); } boshqa {kechiktirish (4); }} hourHand.setSpeed (1); daqiqaHand.setSpeed (1); }}
22 -qadam: STL fayllari
Siz quyidagi hajmdagi fayllarni chop etishingiz kerak bo'ladi:
- 1 - soat uzukli tishli segment magnit
- 6 - soatlik uzukli uzatmalar segmentining asosiy qismi
- 1 - soatni ushlab turuvchi halqa segmentini qadam o'rnatish
- 6 - soatni ushlab turuvchi halqa segmenti asosiy
- 1 - Soat zali effekt sensori ushlagichi
- 1 - daqiqali halqa tishli segment magnit
- 7 - Minute Ring Gear Segment Basic
- 1 - Daqiqali ushlab turuvchi halqa segmentini qadam o'rnatish
- 6 - Minute Retaining Ring Segment Basic
- 1 - Daqiqali Zal effekti sensori ushlagichi
- 2 - Spur Gear
- 1 - Elektron tog'i
23 -qadam: Solidworks fayllari
Bu oldingi qadamda topilgan STLlarni yaratish uchun ishlatiladigan asl Solidworks fayllari. O'z xohishingizga ko'ra, fayllarimni tahrirlash va o'zgartirish uchun o'zingizni erkin his eting.
24 -qadam: Xulosa
Bu soat men kutganimdan yaxshiroq chiqdi. Arduino -da minimal tajribaga ega bo'lganimdan, bu qanday amalga oshganidan va qanchalik aniqligidan xursandman. Bu ajoyib ko'rinadi va men kutganimdek ishlaydi.
Tavsiya:
Harakat yoritgichli DIY portlovchi devor soati: 20 qadam (rasmlar bilan)
Harakatli yoritgichli DIY portlovchi devor soati: Bu ko'rsatma / videoda men sizga asta -sekin ko'rsatma beraman, qanday qilib birlashtirilgan yorug'lik tizimi bilan ijodiy va o'ziga xos devor soatini yasash mumkin. . Men yurganimda
Ambient LED devor soati: 11 qadam (rasmlar bilan)
Ambient LED devor soati: Yaqinda men juda ko'p ajoyib LED matritsalarini qurayotgan ko'p odamlarni ko'rdim, lekin ular murakkab koddan yoki qimmat qismlardan yoki ikkalasidan iborat edi. Men juda arzon qismlardan tashkil topgan o'z LED matritsasini qurishni o'yladim
Kriptik devor soati: 27 qadam (rasmlar bilan)
Kriptik devor soati: Vaqt o'tishi biz nazorat qila olmaydigan narsadir. Agar biz uxlayotgan, uyg'ongan, zerikkan yoki mashg'ul bo'lganimizda ham xuddi shunday tezlikda sodir bo'ladi. Hozirgi voqealar bilan vaqt o'tishini unutmaslik kerak. Vaqt o'tishini kutib turibmiz, nega biror narsa qilmasligimiz kerak
TheSUN, Arduino bilan ishlaydigan devor soati: 6 qadam (rasmlar bilan)
TheSUN, Arduino bilan ishlaydigan devor soatlari: Salom, yana instruktiv odamlar! Men, xuddi o'sha manzilli LED chiziqlar kabi (NEOP deb ham ataladi
Devor devori devor soati: 5 qadam
Devorli devor soati: atrofida tasodifiy elektron platalar ko'pmi? Yaxshi maqsadda ularni qayta ishlashni xohlaysizmi? Bu salqin va bezakli elektron platali devor soati, ozgina materiallardan yasalgan