Mundarija:
- 1 -qadam: sxematik
- 2 -qadam: tartib
- 3-qadam: "Wort-Uhr" ning "mantig'i"
- 4 -qadam: Kod parchalari
- 5 -qadam: Uy -joy
Video: Vort-Uhr: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
Salom birga!
Bu mening birinchi o'rgatuvchi darsim bo'ladi va agar sizda uni qanday yaxshilash yoki tushunishni osonlashtiradigan fikrlaringiz bo'lsa, iltimos, men bilan bog'laning!
Avvaliga, bunday "soat" mening fikrim emas! Men juda ko'p Internetni ko'rdim va ularni bir necha dollar evaziga internet -do'konlarda buyurtma qilish mumkin. Lekin men sotib olishni xohlamadim, men o'zimnikini yasashni va uning qanday ishlashini tushunishni xohlardim.
"Nemis bo'lmagan" a'zolarga bir so'z … Kechirasiz, bu shunchaki "German Wort Uhr". U ingliz tiliga yoki boshqa tilga osonlik bilan aylantirilishi mumkin, lekin men nemis bo'lganim uchun uni o'z tilimda qildim. Agar sizga tilingiz uchun yordam kerak bo'lsa, men bilan bog'laning va men sizga yordam berishga harakat qilaman.
Xo'sh, boshlaylik…
1 -qadam: sxematik
Sxema oldinga siljiydi va agar rasm o'qish yomon bo'lsa, PDF -fayl ham mavjud.
Pastki chap burchakdan boshlaylik. PIC, smenali registrlar (74HC164) va real vaqtda DS3231 chipi uchun 5V barqaror ishlab chiqarish uchun LM7805 yordamida oddiy quvvat manbai mavjud. Barcha LEDlar ham shu qismdan keladi. O'ng tarafdagi D22 faqat quvvat manbai uchun mo'ljallangan va agar kerak bo'lmasa, uni osongina ajratib qo'yish mumkin.
40 V dan past bo'lgan soat uchun har qanday shahar quvvat manbasidan foydalanishingiz mumkin, lekin keyin C7 uchun mos qiymatni tanlashingiz kerak. U kirish kuchlanishidan kamida ikki baravar ko'p bo'lishi kerak va siz LM7805 da issiqlik hosil qilayotganingizni eslang, shuning uchun siz kirish voltajini iloji boricha pastroq saqlashga harakat qilishingiz kerak, chunki hamma narsa faqat energiya isrofidir. Eng yaxshi moslama - 9V dan 12V gacha bo'lgan shahar.
Quvvat manbai kutupluluğundan xavotir olmang … P-kanal MOSFET (Q1) soxta qutbli himoya vazifasini bajaradi va soat ishlamaydi va hech qanday zarar ko'rmaydi. Agar siz o'rnatilgan bo'lsa, buni "quvvat" LED D22 da tekshirishingiz mumkin.
Sxemaning o'ng tomonida ketma-ket parallel siljish registrlari joylashgan. Men ulardan foydalanishga qaror qildim, chunki ko'p kirish-chiqish portlari bo'lgan ulkan PIC-ni ishlatishni xohlamadim. Men kichkinasini ishlatmoqchi edim va uyda hali 16F1829 bor edi, shuning uchun tanlov allaqachon aniq edi. Ma'lumotlar (IN_1, IN_2 va IN_3) PIC (quyida kod bo'limiga qarang) va REGISTER_CLK tomonidan taqdim etiladi. Mening kodim va PCB tartibining soddaligi uchun men 74HC164 dan ikkitasini soatlab, ikkinchisini esa "mantiq" uchun ishlatardim.
Yuqori chap burchakda PIC va barcha kerakli qismlar joylashgan. Men ichki soatni ishlatardim, shuning uchun oszillator kerak emas. SCL, SDA va MCLR uchun faqat uchta rezistor. Men 32 kHz ni "aniq soniyalar" belgisi sifatida ishlatganim uchun, PIC uchun ancha barqaror va aniq chastotaga hojat yo'q.
O'rtasida tashqi qismlari minimal bo'lgan DS3231 bor. Aslida men I²C va 32 kGts chastotali aloqa uchun faqat SDA va SCL kirishlarini PIC16F1829 Timer1 uchun tashqi soat mos yozuvlari sifatida ishlatardim. Ushbu chiqish uchun ma'lumotlar varaqasida aytilishicha, bu tashqi tortish qarshiligi kerak. Boshqa loyihalarni men bu loyihada ishlatmaganman va ularni aloqasiz qoldirganman.
O'rtada LEDlar ham bor … Sxemada o'qishingiz mumkin bo'lganidek, men ko'k LEDlarni (shaffof korpusli) va qarshilik qiymati 1k Ohmni ishlatardim. Agar siz ushbu loyihani o'zingiz qilishni rejalashtirmoqchi bo'lsangiz, siz tanlagan LEDlarning rangi va turiga qarab rezistorlar qiymatini tanlashingiz kerak. Shuningdek, soatni qayerda o'rnatishni xohlayotganingizni unutmang. Mening xonam uxlab yotgan xonamda turibdi, shuning uchun men LEDlarning juda yorqin bo'lishini xohlamadim va rezistorlar uchun katta qiymat tanladim. PCBga o'rnatishdan oldin, LED va qarshilik qiymatlari bo'lgan non panelida bir oz urinib ko'ring.
2 -qadam: tartib
Sxemani tugatgandan so'ng, PCBni yo'naltirish vaqti keldi. Buning uchun men KiCAD -dan foydalandim (sxemada ham). Aytishga ko'p narsa yo'q, faqat chiziqlarni yo'naltiring.
Men soat korpusini o'zim bosib chiqarganim uchun, yuqori qavatdagi LEDlar qayerda joylashganligi juda muhim edi. Men faqat LED va rezistorlarni yuqori qatlamga qo'ydim, chunki men PCB-ni qisman o'rnatishga buyurtma berdim (barcha SMD qismlari) va men tanlagan kompaniya ikki qismli emas, balki faqat bir tomonini joylashtirdi.
Siz KiCAD-dan yasalgan ikkita 3 o'lchovli rasmlarning joylashishini ko'rishingiz mumkin.
Agar siz qiziqmoqchi bo'lsangiz … KiCAD PCB -ni Eagle -ga eksport qilish mumkin, keyin korpusni qurish juda oson, chunki sizda PCB ma'lumotnomasi bor.
3-qadam: "Wort-Uhr" ning "mantig'i"
Ushbu loyihaning eng katta qismi PIC kodi edi …
Avvaliga nemis tilida so'zlashuv vaqtining "mantig'ini" topish va uni kodga tarjima qilish.
Afsuski, Excel faylini to'g'ridan -to'g'ri yuklash mumkin emas edi, lekin umid qilamanki, PDF eksporti siz uchun etarli darajada o'qiladi. Agar yo'q bo'lsa, iltimos, men bilan bog'laning, men sizga asl Excel faylini yuboraman. PDF -da siz soat mantig'ini qanday o'rnatganimni ko'rishingiz mumkin. Siz ko'rishingiz mumkin, men qanday qilib turli vaqtlarni bosib o'tdim va imlo qanday. Kod ichidagi hisobni (asosan if-else ifodalari) jadvalning o'ng tomonidagi ma'lumotlardan olish mumkin. Bir qismi daqiqalarga, bir qismi esa soatlarga mo'ljallangan.
Ko'rib turganingizdek, bu sehr emas va uni C da kodlash mumkin. Mantiq ichidagi "eng qiyin" nuqta - bu soatni qanday ishlash kerakligi, faqat soat boshida haqiqiy soat ko'rsatiladi.. Nemis tilida (ehtimol bu faqat Bavariya o'ziga xos narsa bo'lishi mumkin) "keyingi soat" juda erta ishlatiladi.
Kodlash uchun men tanlagan IDE sifatida MPLABX dan foydalanardim.
4 -qadam: Kod parchalari
Men o'z kodimni bu erga joylashtirmayman, lekin agar siz o'z kodingizni yozmoqchi bo'lsangiz, men sizga ishlab chiqish paytida "qoqilgan" narsalar haqida maslahatlar beraman …
Birinchidan, "ro'yxatga olish" to'ldirish:
Agar siz yangi ma'lumotlarni registrlarga tez -tez va juda qisqa davrlarda o'tkazsangiz, men tajriba o'tkazdim, LEDlar miltillay boshladi. Shunday qilib, men "blokirovka qiluvchi bayroqlar" ni yaratdim, faqat bir necha daqiqa o'tgach, gapirish vaqtining yangi "hisobi" amalga oshiriladi va ro'yxatga olish kitobi yangilanadi.
Registrlarni to'ldirish kodi yuqoridagi rasmda. Ko'rib turganingizdek, men 3 ta registrni parallel ravishda to'ldiraman, shuning uchun menga ma'lumot uchun 3 ta PIC pin va CLK uchun 1 ta pin kerak. 74HC164 CLK liniyasida 0 dan 1 gacha o'tish haqidagi yangi ma'lumotlarni oladi.
Qolgan kodlar asosan PICga bog'liq bo'lgan narsalar, "gapirish vaqti"-mantiqiy va aloqa va tugmalarni boshqarish. Aloqa asosan Microchip MPLABX tomonidan ta'minlanadi, chunki men MSSP modulidan foydalanganman.
DS3231 ma'lumotlar jadvalini o'qish yaxshi fikr, chunki ma'lumotlar BCD sifatida saqlanadi, shuning uchun siz buni kodingizda "o'zgartirishingiz" kerak bo'ladi. Xavotirga kelsak, men o'zimni "bajarib o'rganadigan" odamman, va, albatta, ma'lumotlar jadvalini o'qimaganman … Menga juda ko'p asab va soat kerak bo'ladi.
Ko'rib turganingizdek, ushbu dastur bilan "vaqtni kuzatib borishning" ikki yo'li mavjud.
- Siz DS3231 -dan haqiqiy vaqtni o'qishingiz mumkin
- Siz PIC -da "soniyalarni sanashingiz" mumkin va vaqti -vaqti bilan vaqtni DS3231 bilan sinxronlashtirishingiz mumkin
Bu sizga bog'liq va ikkala yo'l ham amaliy va to'g'ri. Men birinchi variantni ishlatardim va faqat vaqtni tugmalar orqali (DS3231 -ga yozish vaqti) yoki har 24 soatda (DS3231 -dan o'qish vaqti) sozlashda sinxronlashtirardim, chunki men ko'proq mantiqni o'zim bajarishni xohlardim. Men soatni tunda aylantiraman (23:00 dan 05:00 gacha), menimcha bu biroz osonroq edi.
5 -qadam: Uy -joy
Va nihoyat, uyni qisqacha ko'rib chiqish vaqti keldi.
Yuqorida aytib o'tganimdek, men korpusni o'zim qurdim (burgut yordamida) va ularni 3D-printerim bilan chop etdim, shuning uchun men har xil LEDlarning holatini kuzatishga majbur bo'ldim.
Agar siz ularni ishlatmoqchi bo'lsangiz, STL fayllarini topishingiz mumkin.
Umid qilamanki, bu ko'rsatma sizga o'zingizning "Wort-Uhr" qurishda yordam beradi. Agar hali ham "ochiq savollar" bo'lsa, men bilan bog'lanishdan tortinmang. Quyida izoh berishning eng yaxshi usuli, chunki siz aniq savolga ega bo'lmasligingiz mumkin.
Tavsiya:
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadam dvigateli: 3 qadam
To'g'ridan-to'g'ri raqamli sintez (DDS) chipli MIDI tomonidan boshqariladigan qadamli dvigatel: Siz hech qachon mini-loyihaga aylanishingiz kerak degan yomon fikrga keldingizmi? Xo'sh, men AD9833 to'g'ridan -to'g'ri raqamli sintez (DDS) moduli yordamida musiqa yaratishga qaratilgan Arduino Due uchun chizgan eskiz bilan o'ynab yurardim … va bir paytlar men o'yladim
Arduino uchun qadam tezligini boshqarish menyusi: 6 qadam
Arduino uchun qadam tezligini boshqarish menyusi: Bu SpeedStepper kutubxonasi qadam dvigatelining tezligini nazorat qilish uchun AccelStepper kutubxonasining qayta yozilishi. SpeedStepper kutubxonasi sizga belgilangan dvigatel tezligini o'zgartirishga imkon beradi, so'ngra xuddi shu algoritm yordamida yangi belgilangan tezlikka tezlashadi/sekinlashadi
Qanday qilib qadam taymerini yasash mumkin?: 3 qadam (rasmlar bilan)
Qanday qilib qadam taymerini yasash mumkin ?: Men ko'plab sport turlarida yaxshi qatnashardim: yurish, yugurish, velosiped haydash, badminton o'ynash va hokazo. Men tez orada sayohat qilishni yaxshi ko'raman. Xo'sh, qorin qornimga qarang …… Xo'sh, baribir, men mashg'ulotlarni qaytadan boshlashga qaror qildim. Qanday uskunani tayyorlashim kerak?
Arduino UNO bilan qadam motor: 3 qadam
Arduino UNO bilan qadam dvigateli: Bosqichli motorlar - bu alohida bosqichlarda harakatlanadigan shahar motorlari. Ularda "fazalar" deb nomlangan guruhlarga bo'lingan bir nechta rulon bor. Har bir fazani ketma -ket quvvatlantirganda, dvigatel birma -bir aylanadi, zinapoyali dvigatellar juda foydali
Kompyuteringizni qadam dvigateli bilan boshqaring!: 9 qadam (rasmlar bilan)
Kompyuteringizni qadam dvigateli bilan boshqaring!: Oldingi ko'rsatmalarimdan birida men sizga step motorini aylanuvchi kodlovchi sifatida qanday ishlatishni ko'rsatdim. Bu yo'riqnomada keling, undan kompyuterni boshqarish uchun qanday foydalanish kerakligini bilib olaylik. Shunday qilib, ko'p vaqt sarflamasdan, boshlaylik