Mundarija:

Mexanik etti segmentli displey soati: 7 qadam (rasmlar bilan)
Mexanik etti segmentli displey soati: 7 qadam (rasmlar bilan)

Video: Mexanik etti segmentli displey soati: 7 qadam (rasmlar bilan)

Video: Mexanik etti segmentli displey soati: 7 qadam (rasmlar bilan)
Video: Improve your English ⭐ | Very Interesting Story - Level 3 - Thomas Edison | WooEnglish 2024, Iyul
Anonim
Mexanik etti segmentli displeyli soat
Mexanik etti segmentli displeyli soat
Mexanik etti segmentli displeyli soat
Mexanik etti segmentli displeyli soat

Bir necha oy oldin men ikkita raqamli mexanik 7 segmentli displey qurdim, uni hisoblagich taymeriga aylantirdim. Bu juda yaxshi chiqdi va ko'p odamlar displeyda soat yasash uchun ikki barobar ko'payishni taklif qilishdi. Muammo shundaki, men Arduino Mega -da PWM IO -ni tugatgan edim va ikkinchi yoki uchinchi raqamlar uchun etarli joy yo'q edi. Menga I2C interfeysi orqali ishlaydigan PCA9685 16 kanalli PWM drayverlari ko'rsatildi. Bu menga kerak bo'lgan 28 ta servolarni Arduino -dagi ikkita I2C pimi yordamida boshqarishga imkon berdi. Shunday qilib, men vaqtni ushlab turish uchun DS1302 real vaqtda soat modulidan foydalanadigan va ikkita Arkanino Uno bilan ishlaydigan displeyni tuzishda ishlatiladigan 28 ta servo boshqaruvini boshqarish uchun ikkita 16 kanalli servo drayverlardan foydalangan holda soat ishlab chiqarishga majbur bo'ldim.

Agar siz ushbu ko'rsatmalarni yoqtirsangiz, iltimos, soat tanlovida ovoz bering

Ta'minot:

Soatingizni yaratish uchun sizga ba'zi asosiy vositalarga qo'shimcha ravishda quyidagi materiallar kerak bo'ladi:

  • Arduino Uno - Bu erda sotib oling
  • DS1302 soat moduli - Bu yerdan sotib oling
  • 2 x PCA9685 16Ch Servo haydovchilari - Bu yerdan sotib oling
  • 28 x mikro servo - bu erda sotib oling
  • Lenta kabeli - bu erda sotib oling
  • Erkak pinli sarlavha chiziqlari - bu erda sotib oling
  • Ayol pinli sarlavha chiziqlari - Bu yerdan sotib oling
  • 3 mm MDF - bu erda sotib oling
  • Qora purkagichli bo'yoq - bu erda sotib oling
  • 5V 5A batareyani yo'q qilish davri - bu erda sotib oling
  • 12V quvvat manbai - bu erda sotib oling

Ushbu loyiha uchun sizga 3D bosma qismlar ham kerak bo'ladi. Agar sizda 3D -printer bo'lmasa va sizga biror narsa yasash yoqsa, uni sotib olish haqida o'ylashingiz kerak. Bu erda ishlatiladigan Creality Ender 3 Pro arzon narxda va juda sifatli bosma nashrlarni ishlab chiqaradi.

  • 3D printer ishlatilgan - bu erda sotib oling
  • Filament - bu erda sotib oling

1 -qadam: Plastik qismlarni 3D bosib chiqarish

Plastik komponentlarni 3D bosib chiqarish
Plastik komponentlarni 3D bosib chiqarish
Plastik komponentlarni 3D bosib chiqarish
Plastik komponentlarni 3D bosib chiqarish
Plastik komponentlarni 3D bosib chiqarish
Plastik komponentlarni 3D bosib chiqarish

Men 7 segmentli displeylarni iloji boricha sodda qilib yaratdim. Servo, shuningdek, uning ustidagi segmentni ushlab turish uchun qo'llab -quvvatlovchi qavsdir. Har bir segment uchun ikkita 3D bosma komponent kerak, servoning pastki qismini qo'llab -quvvatlash uchun ajratuvchi blok va displey segmenti to'g'ridan -to'g'ri servo qo'lga yopishtiriladi.

3D bosma fayllarni yuklab oling - mexanik 7 segmentli displeyli soat 3D bosma fayllar

Yorqin rangli PLA yordamida servo segmentlar va nuqtalarni chop eting. Men shaffof yashil rangdan foydalanardim, lekin qizil, to'q sariq yoki sariq ham yaxshi ishlashi kerak. Men qora PLA -ni ajratuvchi bloklar va nuqta tayanchlari uchun ishlatardim, ular segmentlar yopiq holatga o'tkazilganda ko'rinmasdi.

Agar sizda 3D printerdan foydalanish imkoni bo'lmasa, onlayn chop etish xizmatlaridan birini sinab ko'ring. Komponentlarni bosib chiqaradigan va bir necha kun ichida sizning eshigingizga etkazib beradigan bir qancha arzon xizmatlar mavjud.

2 -qadam: boshqaruv paneli va simlarini tayyorlang

Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang
Boshqaruv paneli va simlarini tayyorlang

28 soatlik servolarni boshqarish uchun ikkita PCA9685 16 kanalli PWM drayveridan foydalanish kerak bo'ladi. Men servolarni soat va daqiqali raqamlarga ajratdim, bunda har bir juft raqam bitta taxtadan boshqariladi. Shunday qilib, menda ikkita soatlik raqamlar uchun servolarni boshqaradigan bitta taxtam bor, ikkinchisi esa ikki daqiqali raqamlar uchun servolarni boshqaradi.

Ikkalasini bir -biriga bog'lab qo'yish uchun siz 6 simli lentali simi ulagichini yasashingiz va birinchi servo boshqaruv kartasining ikkinchi uchiga ikkinchi sarg'ish tasmasini lehimlashingiz kerak bo'ladi. Shuningdek, siz I2C manzilini ikkinchi taxtada o'zgartirishingiz kerak, shunda u birinchisidan farq qiladi va o'ziga xosdir.

Bundan tashqari, uchta taxtani (ikkita servo taxtali va soat modulini) Arduino -ga ulash uchun siz sim simlarini tuzishingiz kerak bo'ladi. Sizga har bir taxtada 5V va GND kerak bo'ladi, shuningdek Arduino A4 va A5 pinlariga I2C ulanishlari (Arduino Uno -dagi I2C) va soat moduli CLK, DAT & RST pinlari Arduino -dagi 6, 7 va 8 -pinlarga to'g'ri keladi. navbati bilan

Quvvat Arduino -ga to'g'ridan -to'g'ri 12V quvvat manbaidan va 5V 5A BEC yordamida servolarga beriladi, so'ngra PWM drayverining yuqori qismidagi ikkita terminalga ulanadi. Siz faqat bitta servo drayverni quvvatga ulashingiz kerak va u ikkinchisiga 6 simli tarmoqli kabel orqali ulanadi.

3 -qadam: Servolarni yig'ing

Servolarni yig'ing
Servolarni yig'ing
Servolarni yig'ing
Servolarni yig'ing
Servolarni yig'ing
Servolarni yig'ing

Segmentlarni chop etgandan so'ng, siz orqa va yon tomonlarini qora püskürtmelisiniz, shunda ular 90 daraja o'chirilgan holatda ko'rinmas bo'ladi.

Keyin segmentlarni servo qo'llaringizga issiq eritilgan elim bilan yopishtirishingiz kerak. Bu ularni servoga yopishtirib qo'yishga yordam beradi, shunda siz ularni tekis va tekis qilib yopishtirib olganingizni tekshirishingiz mumkin.

Bundan tashqari, har bir servoning pastki qismiga ajratuvchi blokni yopishtirish kerak bo'ladi.

Nuqtalarning orqa tomoniga kichik dübel yoki kabob tayog'ini, so'ngra tayanch bloklarga yopishtirib, nuqtalarni yig'ing. Men bu tayoqchalarni qora rangda sepdim, shuning uchun ular burchakdan qaraganda kamroq ko'rinadi.

4 -qadam: sozlash va sinov

O'rnatish va sinov
O'rnatish va sinov
O'rnatish va sinov
O'rnatish va sinov

Men barcha servolarni raqamladim va ularni kuzatib borish oson bo'lishi uchun har bir qo'rg'oshinga raqamni yozdim. Men birlik segmentidagi yuqori segmentdan boshladim va o'nlikdagi o'rta segmentgacha ishladim. Bu, shuningdek, ularni servo boshqaruv platalariga ulash tartibidir, bunda taxtalardagi identifikatorlar 1 dan 14 gacha emas, 0 dan 13 gacha sanaladi.

Keyin men segmentlarni stolga qo'ydim, ular orasida sinov oralig'ida bo'sh joy bor edi, shunda ular sayohat chegaralari va yo'nalishlarini o'rnatayotganda boshqasiga o'tmasdi. Agar siz ularni bir -biriga yaqinroq o'rnatishga harakat qilsangiz, ehtimol siz bir yoki ikkitasini noto'g'ri yo'nalishda harakat qilishga harakat qilasiz, yoki boshqa bosqichga o'tishingiz mumkin, bu esa segmentga, servo qo'lga yoki vitesni servo qismiga zarar etkazishi mumkin.

5 -qadam: Kodni yuklash

Kodni yuklash
Kodni yuklash
Kodni yuklash
Kodni yuklash
Kodni yuklash
Kodni yuklash

Kod bir qarashda murakkab ko'rinadi, lekin ishlatilgan ikkita kutubxona tufayli aslida nisbatan sodda. Takrorlash juda ko'p, chunki 7 segmentli to'rt xil displeyni yangilash kerak.

Bu erda kodning qisqacha tavsifi, batafsil tushuntirish uchun to'liq qo'llanmani va kodni yuklab olish havolasini ko'ring - Mexanik 7 segmentli displeyli soat

Biz ikkita kutubxonani import qilishdan boshlaymiz, soat moduli uchun virtuabotixRTC.h va servo drayverlar uchun Adafruit_PWMServoDriver.h. Adafruit kutubxonasini to'g'ridan -to'g'ri IDE kutubxona menejeri orqali yuklab olish va o'rnatish mumkin.

Keyin biz har bir boshqaruv paneli uchun mos manzili bo'lgan ob'ektni yaratamiz, bittasi soat raqamlari uchun va bittasi raqamli raqamlar uchun.

Bizda har bir servo uchun yoqish va o'chirish joylarini saqlash uchun to'rtta massiv mavjud. Keyingi bosqichlarda servolaringiz tik holatidadir, o'chirilganida 90 gradusga burilganligiga va sayohatdan oshmasligiga ishonch hosil qilish uchun siz bu raqamlarga o'zgartirishlar kiritishingiz kerak bo'ladi.

Raqamli qator ko'rsatiladigan har bir raqam uchun har bir segmentning o'rnini saqlaydi.

Keyin biz soat modulini o'rnatdik va joriy va o'tgan individual raqamlarni saqlash uchun o'zgaruvchilar yaratamiz.

O'rnatish funktsiyasida biz PWM boshqaruv platalarini ishga tushiramiz va o'rnatamiz, agar kerak bo'lsa soat vaqtini yangilaymiz. Biz ekranni 8 8: 8 8 ga o'rnatish uchun pastadir orqali o'tamiz, shunda biz barcha servolarning boshlang'ich pozitsiyasini bilib olamiz. Bu ham servolarni yuqoriga to'g'ri qaraydigan qilib sozlash uchun ishlatiladi.

Asosiy tsiklda biz soat modulidan yangilangan vaqtni olamiz, uni to'rtta raqamga to'kib tashlaymiz va keyin oxirgi tekshiruvdan vaqt o'zgarganligini tekshiramiz. Agar vaqt o'zgargan bo'lsa, biz displeyni yangilaymiz va keyin oldingi raqamlarni yangilaymiz.

Yangilashni ko'rsatish funktsiyasida biz birinchi navbatda o'rta segmentlarni siljitamiz. Bu birinchi navbatda amalga oshiriladi, chunki o'rta bo'lakka ulashgan ikkita yuqori segmentni o'rta segmentni siljitishdan oldin biroz chetga surib qo'yish uchun mantiq kerak, aks holda u ularga uriladi. O'rta segmentlar ko'chirilgandan so'ng, qolgan segmentlar to'g'ri pozitsiyalarga o'tkaziladi.

6 -qadam: Orqa taxtada soatni yig'ish

Orqa taxtada soatni yig'ish
Orqa taxtada soatni yig'ish
Orqa taxtada soatni yig'ish
Orqa taxtada soatni yig'ish
Orqa taxtada soatni yig'ish
Orqa taxtada soatni yig'ish

Sinovni tugatgandan so'ng, men yuqoridagi tartibni ko'rsatma sifatida ishlatib, servolarni orqa taxtaga yig'dim.

Oq maydon - bu umumiy taxtaning o'lchami, och kulrang - bu har bir raqamni o'rab turgan maydon, bu servo segmentlar o'tadi va quyuq kulrang maydonning konturi har bir raqam uchun tashqi 6 segmentning markaziy chizig'idir.

Men taxtani kesib, tartibini belgilab qo'ydim va keyin soat yuzini tuzish uchun raqamlarni joyiga yopishtirdim.

Keyin men har bir servo yonida teshik ochdim va simlarni taxtaning orqa qismiga o'tkazdim, shunda ular ko'rinmas edi.

Men elektronikani soatning orqa qismiga ikki tomonlama lenta bilan o'rnatdim.

7 -qadam: Yakuniy sozlash va ishlash

Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash
Yakuniy sozlash va ishlash

Servo tayyor bo'lgach, men segmentlarning joylashuvini oxirgi sozlash uchun barcha servo qo'llarni olib tashladim. Arduino-ni shu holatda yoqish kerakki, 8 8: 8 8 ko'rsatilsin va keyin quvvatni uzib qo'ying, shunda siz servo qo'llaringizni segmentlarni vertikalga qaragan holda qaytarib qo'yishingiz mumkin. iloji boricha.

Keyin siz ketma -ket Arduino -ni ishga tushirishingiz va to'rtta qatoringizdagi segmentlarni yoqish va o'chirish pozitsiyalarini o'zgartirishingiz kerak bo'ladi, shunda servolar o'ta vertikal bo'lib, sayohat qilmasdan 90 daraja buriladi. Bu qadam ko'p vaqt talab etadi va biroz sabr -toqatni talab qiladi, lekin yakuniy natija bunga arziydi!

Soatni 12V quvvat manbai va unga ulangan 5V BEC yordamida quvvatlantirish mumkin. Agar quvvat o'chib qolsa, RTC modulidagi batareya vaqtni ushlab turadi, shuning uchun quvvat qayta tiklanganda soat avtomatik ravishda to'g'ri vaqtga qaytadi.

Agar siz ushbu ko'rsatmalarni yoqtirgan bo'lsangiz, iltimos, soat tanlovida unga ovoz bering va quyidagi izohlar bo'limida siz kiritishingiz mumkin bo'lgan yaxshilanishlar yoki takliflar haqida menga xabar bering.

Soatlar musobaqasi
Soatlar musobaqasi
Soatlar musobaqasi
Soatlar musobaqasi

Soatlar tanlovining ikkinchi mukofoti

Tavsiya: