Mundarija:
- 1 -qadam: ishlash printsipi
- 2 -qadam: Ish printsipi davomi
- 3 -qadam: Amaliy qismlarga ajratish 1
- 4 -qadam: Amaliy qismlarga ajratish 2
- 5 -qadam: Amaliy qismlarga ajratish 3
- 6 -qadam: Amaliy qismlarga ajratish 4
- 7 -qadam: Amaliy qismlarga ajratish 5
- 8 -qadam: Amaliy qismlarga ajratish 6
- 9 -qadam: Devor soatlaridan foydalanish misollari
- 10 -qadam: Devor soatlaridan foydalanish misollari PIC
- 11 -qadam: Arduino -dan devor soatlaridan foydalanish misollari
- 12 -qadam: Model temiryo'lchilar uchun tezkor soat
- 13 -qadam: dasturiy ta'minot
- 14 -qadam: Qiziqishlar
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-23 15:14
Qo'l devorining elektron soati (tijorat markali kvarts) hozirgi kunda alohida narsa emas. Uni ko'plab do'konlarda sotib olish mumkin. Ulardan ba'zilari juda arzon; narxi taxminan 2 evro (50CZK) bilan. Bu past narx ularga yaqindan qarashga turtki bo'lishi mumkin. Shunda men bildimki, ular elektron manbalarda juda ko'p bo'lmagan va asosan dasturlash bilan shug'ullanadigan yangi boshlanuvchilar uchun qiziqarli o'yinchoq bo'lishi mumkin. Ammo o'z rivojlanishini boshqalarga taqdim etmoqchiman. Arzon devor soati tajribalar va yangi boshlanuvchilar sinovlariga juda chidamli bo'lgani uchun, men bu maqolani yozishga qaror qildim, bu erda men asosiy g'oyalarni taqdim qilmoqchiman.
1 -qadam: ishlash printsipi
Harakat uchun qandaydir qadamli dvigatel ishlatilgan soatni aniqlash oson. Ba'zi soatlarni allaqachon ajratib qo'ygan odam, bu odatiy qadamli dvigatelda ikkita o'rniga bitta rulon ekanligini tan oldi. Bunday holda, biz "bitta fazali" yoki "bitta qutbli" step motor haqida gapiramiz. (Bu nom unchalik tez -tez ishlatilmaydi, asosan, boshqa to'liq yig'ma qadamli dvigatellar uchun ishlatiladigan markirovka o'xshash). Ish printsipi haqida o'ylashni boshlagan kishi, vosita qanday to'g'ri yo'nalishda aylanishi mumkinligi haqida savol berishi kerak. Ish printsipining tavsifi eski turdagi dvigatellarni ko'rsatadigan quyidagi rasmda foydali bo'ladi.
Birinchi rasmda A va B terminallari, kulrang stator va qizil-ko'k rotorli bitta lasan ko'rinadi. Rotor doimiy magnitdan yasalgan, shuning uchun u nima uchun rang bilan belgilanadi, qanday yo'nalishda magnitlanadi (bu muhim emas, qaysi qutb shimol va janubda). Statorda siz rotorga yaqin ikkita "oluk" ni ko'rishingiz mumkin. Ular ishlash printsipi uchun juda muhimdir. Dvigatel to'rt bosqichda ishlaydi. Biz har bir qadamni to'rtta tasvir yordamida tasvirlab beramiz.
Birinchi bosqichda (ikkinchi rasm) vosita quvvatlanadi, A terminali musbat qutbga, B terminali esa salbiy qutbga ulanadi. U magnit oqimi qiladi, masalan o'q yo'nalishi bo'yicha. Rotor o'z o'rnida to'xtaydi, uning joylashuvi magnit oqimga to'g'ri keladi.
Ikkinchi qadam, quvvat uzilganidan keyin. Keyin statorda magnit oqimi to'xtatiladi va magnit o'z pozitsiyasiga aylanishga moyil bo'ladi, uning polarizatsiyasi statorning magnitli yumshoq materialining maksimal hajmiga to'g'ri keladi. Va bu ikkita yiv juda muhim. Ular maksimal hajmning kichik og'ishlariga ishora qiladilar. Keyin rotor soat yo'nalishi bo'yicha bir oz aylanadi. 3 -rasmda ko'rsatilgandek.
Keyingi qadam (to'rtinchi rasm) - kuchlanish teskari kutupluluğu (A terminali manfiy qutbga, B terminali musbat qutbga). Bu shuni anglatadiki, rotordagi magnit lenta yordamida magnit maydon yo'nalishi bo'yicha aylanadi. Rotor eng qisqa yo'nalishni ishlatadi, bu yana soat yo'nalishi bo'yicha.
Oxirgi (to'rtinchi) qadam (beshinchi rasm) ikkinchi bilan bir xil. Dvigatel yana kuchlanishsiz. Faqat bitta farq shundaki, bu magnitning boshlang'ich pozitsiyasi qarama -qarshi, lekin rotor yana materialning maksimal hajmi yo'nalishiga o'tadi. Bu yana soat yo'nalishi bo'yicha bir oz pastroq.
Bu hamma tsikl, birinchi qadam yana davom etadi. Dvigatel harakati uchun ikkinchi va to'rtinchi bosqichlar barqaror deb tushuniladi. Keyin u mexanik ravishda uzatmalar qutisi bilan soat 1: 30 tezligining ikkinchi qo'l holatiga o'tkaziladi.
2 -qadam: Ish printsipi davomi
Raqamlar motor terminallarida kuchlanish to'lqin shaklini ko'rsatadi. Raqamlar barcha soniyalarni bildiradi. Darhaqiqat, impulslar bo'shliqlarga qaraganda ancha kichik. Ular millisekundlar haqida.
3 -qadam: Amaliy qismlarga ajratish 1
Amaliy demontaj qilish uchun bozorda eng arzon devor soatlaridan birini ishlatardim. Ularning ozgina ijobiy tomonlari bor. Birinchisi, bu narx juda past, biz ulardan bir nechtasini tajriba uchun sotib olamiz. Ishlab chiqarish narxga yo'naltirilganligi sababli, ular hech qanday murakkab aqlli echimlarni va murakkab vintlarni o'z ichiga olmaydi. Aslida ular hech qanday vintni o'z ichiga olmaydi, faqat plastik bosish qulflari. Bizga faqat minimal vositalar kerak. Masalan, bizga faqat qulflarni ochish uchun tornavida kerak.
Devor soatini demontaj qilish uchun bizga tekis tornavida (yoki boshqa tayoqcha), kiyim -kechak qistirmalari va qirralari ko'tarilgan ishchi to'shak kerak (bu majburiy emas, lekin g'ildirak va boshqa mayda qismlarni qidirishni osonlashtiradi).
4 -qadam: Amaliy qismlarga ajratish 2
Devor soatining orqa tomonida uchta mandal bor. 2 va 10 -sonli ikkita yuqori qulfni ochish mumkin va oynani ochish mumkin. Oyna ochilganda soat qo'llarini tortib olish mumkin. Ularning pozitsiyasini belgilash shart emas. Biz ularni har doim soat 12:00:00 holatiga qaytaramiz. U ikkita mandalga ega (6 va 12 -pozitsiyalarda). Harakatni iloji boricha tekis tortish tavsiya etiladi, aks holda harakat tiqilib qolishi mumkin.
5 -qadam: Amaliy qismlarga ajratish 3
Keyin harakatni ochish mumkin. Unda uchta qulf bor. 3 va 9 soatlik pozitsiyalarda ikkitasi, keyin esa 6 soatda uchinchi. Ochilganda, dvigatel va vites qutisi orasidagi shaffof tishli g'ildirakni, keyin esa motor rotoriga ulangan pinionni olib tashlash kifoya.
6 -qadam: Amaliy qismlarga ajratish 4
Dvigatel bobini va stator faqat bitta mandalda (12 soat) ushlab turadi. U hech qanday elektr relslarga o'rnatilmaydi, u faqat temir yo'l orqali qo'llaniladi, keyin olib tashlash murakkab emas. Bobin hech qanday ushlagichsiz statorga o'ralgan. Uni osongina olib tashlash mumkin.
7 -qadam: Amaliy qismlarga ajratish 5
Bobinning pastki tomonida oltita chiqadigan bitta CoB (chipdagi chip) bo'lgan kichik bosilgan elektron karta yopishtirilgan. Ikkisi kuch uchun mo'ljallangan va ular elektr relslarini ishlatish uchun bortdagi kattaroq kvadrat yostiqchalarda tugatilgan. ikkita chiqish kristalga ulangan. Aytgancha, kristal 32768 Gts bo'lib, kelajakda foydalanish uchun lehimsiz bo'lishi mumkin. Oxirgi ikkita chiqish lasanga ulangan. Men bortdagi izlarni kesib tashlashni va bortdagi mavjud prokladkalarga simlarni lehimlashni xavfsizroq deb topdim. Men rulonni payvand qilmay, simni to'g'ridan -to'g'ri rulonga ulamoqchi bo'lganimda, men har doim lasan simini yirtib tashladim yoki rulni shikastladim. O'rnatish uchun yangi simlarni lehimlash - bu imkoniyat. Aytaylik, bu yanada ibtidoiy. Yana ijodiy usul - bu lasanni quvvat yostiqchalariga ulash va akkumulyator qutisiga ulash uchun relslarni ushlab turish. Keyin batareyani elektron qutiga joylashtirish mumkin.
8 -qadam: Amaliy qismlarga ajratish 6
Lehimlash sifatini ohmmetr yordamida tekshirish mumkin. Sariqlik 200Ω ga yaqin qarshilikka ega. Hammasi joyida bo'lganda, biz devor soatini orqaga yig'amiz. Men odatda elektr relslarini tashlayman, keyin yangi simlar uchun ko'proq joy bor. Rasmlar elektr relslari otilishidan oldin olinadi. Ular olib tashlanganida keyingi suratga olishni unutaman.
Harakatni tugatgandan so'ng, men uni ikkinchi soat qo'llari yordamida sinab ko'raman. Men qo'lni o'qiga qo'ydim va quvvatni uladim (men CR2032 tanga batareyasini ishlatardim, lekin AA 1, 5V ham ishlatilishi mumkin). Quvvatni bitta qutbda simlarga, so'ngra yana qarama -qarshi qutbga ulang. Soat belgilanishi kerak va qo'l bir soniya siljiydi. Qachonki siz orqaga harakatni tugatishda muammolarga duch kelsangiz, chunki simlar ko'proq joy egallaydi, chumolini aylantiring. Quvvat relslaridan foydalanilmasa, u soat harakatiga ta'sir qilmaydi. Yuqorida aytib o'tilganidek, qo'llarni orqaga qaytarganda, soat 12:00 ga ishora qilish kerak. Qo'l va soat o'rtasida to'g'ri masofa bo'lishi kerak.
9 -qadam: Devor soatlaridan foydalanish misollari
Ko'pgina oddiy misollar vaqtni ko'rsatishga qaratilgan, lekin har xil o'zgartirishlar bilan. "Vetinari Clock" deb nomlangan modifikatsiya juda mashhur. Lord Vetinarining kutish xonasida devor soati bor Terri Pratshet kitobiga ishora qilib, bu tartibsiz. Bu tartibsizlik odamlarni bezovta qiladi. Ikkinchi mashhur dastur - "sinusli soat". Bu sinus egri chizig'iga qarab tezlashadigan va sekinlashadigan soat degan ma'noni anglatadi, keyin odamlar to'lqinlar ustida suzayotganini his qilishadi. Mening eng sevimli mashg'ulotlarimdan biri - "tushlik vaqti". Bu o'zgartirish shuni anglatadiki, soat 11-12 soat (0,8 soniya) orasida tezroq tushadi, tushlik qilish uchun; tushlik paytida 12-13 soat (1, 2 soniya) oralig'ida, tushlikka kamroq vaqt ajratish va yo'qolgan vaqtni to'ldirish.
Ko'pgina o'zgartirishlar uchun 32768 Gts chastotali oddiy protsessordan foydalanish kifoya. Bu chastota soat ishlab chiqaruvchilar orasida juda mashhur, chunki bu chastotada kristall yasash oson va uni soniyalarga bo'linadigan ikkitomonlama bo'lish taqiqlangan. Bu chastotani protsessor uchun ishlatishning ikkita foydasi bor: biz kristallni soatdan osonlik bilan aylantira olamiz; va protsessorlar odatda bu chastotada minimal iste'molga ega. Iste'mol - bu devor soati bilan o'ynaganda biz tez -tez hal qiladigan narsa. Ayniqsa, iloji boricha, eng kichik batareyadan quvvat olish. Yuqorida aytib o'tilganidek, rulon 200 resist qarshilikka ega va cca 1, 5V (bitta AA batareyasi) uchun mo'ljallangan. Eng arzon protsessorlar odatda katta kuchlanishda ishlaydi, lekin ularning hammasi ikkita batareyali (3V) ishlaydi. Bizning bozorda eng arzon protsessorlardan biri bu Microchip PIC12F629 yoki juda mashhur Arduino modullari. Keyin biz ikkala platformani qanday ishlatishni ko'rsatamiz.
10 -qadam: Devor soatlaridan foydalanish misollari PIC
PIC12F629 protsessori 2.0V - 5.5V ish kuchlanishiga ega. Ikki "mignon batareyasi" = AA xujayralari (cca 3V) yoki ikkita AA qayta zaryadlanuvchi AA akkumulyatoridan (cca 2, 4V) foydalanish etarli. Ammo soat lasanlari uchun u ishlab chiqilganidan ikki baravar ko'p. Bu iste'molning istalmagan darajada o'sishiga olib keladi. Keyin mos keladigan kuchlanish bo'luvchi hosil qiladigan minimal ketma -ket qarshilik qo'shish yaxshi bo'ladi. Rezistorning qiymati akkumulyator quvvati uchun taxminan 120Ω yoki batareyaning quvvati uchun 200Ω bo'lishi kerak. Amalda, qiymat 100Ω atrofida biroz kichikroq bo'lishi mumkin. Nazariyada ketma -ket ketma -ket bitta rezistor etarli. Men hali ham biron sababga ko'ra motorni nosimmetrik qurilma sifatida ko'rishga moyilman va keyin har bir lasan terminalining yoniga yarim qarshilikli qarshilik (47Ω yoki 51Ω) qo'yaman. Ayrim inshootlar spiral uzilganda protsessorga salbiy kuchlanish tushmasligi uchun himoya diodlarini qo'shadilar. Boshqa tomondan, protsessorning chiqish quvvati bobini to'g'ridan -to'g'ri protsessorga kuchaytirgichsiz ulash uchun etarli. PIC12F629 protsessorining to'liq sxemasi 15 -rasmda tasvirlanganga o'xshaydi. Bu sxema qo'shimcha boshqaruv elementlari bo'lmagan soatlar uchun amal qiladi. Bizda hali ham bitta kirish/chiqish pinli GP0 va bitta kirish faqat GP3 mavjud.
11 -qadam: Arduino -dan devor soatlaridan foydalanish misollari
Arduino -dan foydalanishni xohlaganimizda, ATmega328 protsessorining ma'lumotlar jadvalini ko'rib chiqishimiz mumkin. Bu protsessor 4 MGts gacha chastotalar uchun 1,8 V - 5,5 V va 10 MGts gacha chastotalar uchun 2,7 V - 5, 5 V deb belgilangan ishchi kuchlanishga ega. Arduino platalarining bitta kamchilikidan ehtiyot bo'lishimiz kerak. Bu kamchilik bortda voltaj regulyatorining mavjudligi. Katta miqdordagi voltaj regulyatorlarida teskari kuchlanish bilan bog'liq muammolar mavjud. Bu muammo keng tarqalgan va eng yaxshi 7805 regulyatori uchun tasvirlangan. Bizning ehtiyojlarimiz uchun biz 3V3 (3,3V quvvat uchun mo'ljallangan) deb belgilangan taxtadan foydalanishimiz kerak, chunki bu platada 8 MGts kristalli va 2, 7 V dan quvvat olish mumkin (bu ikkita AA degan ma'noni anglatadi) batareyalar). Keyin ishlatilgan stabilizator 7805 emas, balki uning 3,3V ekvivalenti bo'ladi. Stabilizatorni ishlatmasdan elektr kartasini yoqmoqchi bo'lsak, bizda ikkita variant bor. Birinchi variant-kuchlanishni "RAW" (yoki "Vin") va +3V3 (yoki Vcc) pimlariga bir-biriga ulang va sizning taxtangizda ishlatiladigan stabilizator past kuchlanishdan himoyalanmaganligiga ishoning. Ikkinchi variant - stabilizatorni yo'q qilish. Buning uchun mos yozuvlar sxemasiga muvofiq Arduino Pro Mini -dan foydalanish yaxshidir. Ushbu sxemada ichki stabilizatorni ajratish uchun mo'ljallangan SJ1 o'tish moslamasi (qizil doiradagi 16 -rasm) mavjud. Afsuski, klonlarning ko'pchiligida bu jumper yo'q.
Arduino Pro Mini -ning yana bir afzalligi shundaki, u hech qanday qo'shimcha konvertorni o'z ichiga olmaydi, u oddiy ish paytida elektr energiyasini iste'mol qilishi mumkin (bu dasturlashda kichik qiyinchilik). Arduino platalari tobora ko'proq qulay protsessorlar bilan jihozlangan, ular bitta chiqish uchun etarli kuchga ega emas. Keyin minimal tranzistorlar yordamida kichik chiqish kuchaytirgichini qo'shish yaxshidir. Batareya quvvatining asosiy sxemasi rasmda ko'rsatilgandek bo'ladi.
Arduino muhiti ("simlar" tili) zamonaviy operatsion tizimlarning atributlariga ega bo'lgani uchun (vaqtni aniq belgilashda muammolar bo'ladi), Timer0 yoki Timer1 uchun tashqi soat manbasidan foydalanish haqida o'ylash yaxshidir. Bu T0 va T1 kirishlar degan ma'noni anglatadi, ular 4 (T0) va 4 (T1) sifatida belgilanadi. Devor soati kristalli oddiy osilatorni har qanday kirishga ulash mumkin. Bu qanchalik aniq soat ishlab chiqarishga bog'liq. 18 -rasmda uchta asosiy imkoniyat ko'rsatilgan. Birinchi sxema ishlatilgan komponentlar ma'nosida juda iqtisodiy. U kamroq uchburchak chiqishni ta'minlaydi, lekin to'liq kuchlanish oralig'ida CMOS kirishlarini quvvatlantirish uchun yaxshi. Inverterlardan foydalangan holda ikkinchi sxema CMOS 4096 yoki TTL 74HC04 bo'lishi mumkin. Sxemalar bir -biriga kamroq o'xshash, ular asosiy shaklda. Uchinchi sxemasi CMOS 4060 chipi yordamida kristalni to'g'ridan -to'g'ri ulash imkonini beradi (74HC4060 ekvivalenti bir xil sxemada, lekin har xil rezistorlar qiymatida). Ushbu sxemaning afzalligi shundaki, u 14 bitli bo'linuvchini o'z ichiga oladi, shunda taymer kiritish uchun qaysi chastota ishlatilishini hal qilish mumkin.
Ushbu kontaktlarning zanglashiga olib kirish T0 (pin 4 Arduino belgisi bilan) uchun ishlatilishi mumkin va keyin tashqi kirish bilan Timer0 dan foydalanish mumkin. Bu unchalik amaliy emas, chunki Timer0 kechikish (), milis () yoki mikros () kabi funktsiyalar uchun ishlatiladi. Ikkinchi variant - uni T1 (Arduino belgisi bilan pin 5) ga ulash va qo'shimcha kirish bilan Timer1 dan foydalanish. Keyingi variant - uni INT0 (Arduino markirovkasidagi 2 -pin) yoki INT1 (3 -pin) uzilish kirishiga ulash va vaqti -vaqti bilan chaqiriladigan attachInterrupt () funktsiyasidan va registr funktsiyasidan foydalanish. Bu erda 4060 mikrosxemalari tomonidan taklif qilinadigan foydali bo'luvchi, keyin qo'ng'iroq tez -tez bo'lmasligi kerak.
12 -qadam: Model temiryo'lchilar uchun tezkor soat
Qiziqish uchun men bitta foydali sxemani taqdim etaman. Men umumiy boshqaruvga ko'proq devor soatlarini ulashim kerak. Devor soatlari bir -biridan uzoqda va uning yuqori qismida elektromagnit shovqinlar ko'proq bo'lgan sanoat xarakterli. Keyin eski avtobus tizimlariga qaytdim, ular aloqa uchun katta kuchlanishni ishlatdi. Albatta, men batareyada ishlashni hal qilmadim, lekin men 12V stabillashgan quvvat manbasidan foydalandim. Men protsessor signalini TC4427 drayveri yordamida kuchaytirdim (u mavjud va yaxshi narxga ega). Keyin 0,5A gacha bo'lgan yuk bilan 12V signalini olib yuraman. Men qul soatlarga oddiy rezistor ajratgichlarni qo'shdim (18 -rasmda R101 va R102 bilan belgilangan; Yana men motorni nosimmetrik deb tushunaman, bu kerak emas). Men ko'proq oqim o'tkazish orqali shovqinni kamaytirishni xohlayman, keyin ikkita 100Ω rezistordan foydalanardim. Dvigatel bobinidagi kuchlanishni cheklash uchun B101 ko'prik bilan parallel ravishda to'g'rilash moslamasi ulanadi. Ko'prikning shahar tomoni qisqargan, keyin u ikkita parallel parallel diodni ifodalaydi. Ikkita diod, taxminan 1,4 V kuchlanish pasayishini anglatadi, bu vosita uchun normal ish kuchlanishiga juda yaqin. Bizga parallellik kerak, chunki quvvat bir va qarama-qarshi qutbda o'zgaradi. Bir qul devor soatining umumiy oqimi (12V - 1.5V) / (100Ω + 100Ω) = 53mA. Bu shovqinni oldini olish uchun maqbul qiymat.
Bu erda ikkita sxemasi bor, ular devor soatlarining qo'shimcha funktsiyalarini boshqarishga mo'ljallangan (temir yo'l modellari uchun tezlikni ko'paytirgich). Qiz soatining yana bir qiziq xususiyati bor. Ular ikkita 4 mm bananli ulagich yordamida ulangan. Ular devorda devor soatini ushlab turishibdi. Bu, ayniqsa, foydalanishni boshlashdan oldin ma'lum vaqtni belgilashni xohlasangiz, ularni ajratib, keyin qayta ulashingiz mumkin (yog'och blok devorga o'rnatiladi). Agar siz "Big Ben" ni yaratmoqchi bo'lsangiz, sizga to'rt juft rozetkali yog'och quti kerak bo'ladi. Bu quti soatlar ishlatilmaganda saqlash uchun ishlatilishi mumkin.
13 -qadam: dasturiy ta'minot
Dasturiy nuqtai nazardan, vaziyat nisbatan sodda. Keling, 32768Hz kristalli PIC12F629 chipida amalga oshirishni tasvirlaylik (asl soatdan qayta ishlangan). Protsessor bitta buyruq tsikliga ega, to'rtta osilator tsikli. Har qanday taymer uchun ichki soat manbaidan foydalanganimizda, bu ko'rsatma davrlarini bildiradi (fosc/4 deb nomlanadi). Bizda, masalan, Timer0 mavjud. Taymer kirish chastotasi 32768/4 = 8192Hz bo'ladi. Taymer sakkiz bitli (256 qadam) va biz uni hech qanday to'siqsiz to'ldiramiz. Biz faqat taymerni to'ldirish hodisasiga e'tibor qaratamiz. Voqea 8192/256 = 32Hz chastotada sodir bo'ladi. Qachonki, biz bir soniyada pulsga ega bo'lishni xohlasak, har 32 taymer to'lqinining to'lib toshishidan puls yaratishimiz kerak. Biz soatni to'rt marta tezroq ishlashini xohlaymiz, keyin puls uchun 32/4 = 8 to'lib toshishi kerak. Biz soatni tartibsiz, lekin aniq qilib loyihalashtirishni xohlaymiz, biz bir necha pulslar uchun 32 × pulslar soni bilan bir xil bo'lishi kerak. Shunda biz tartibsiz soatlar matritsasiga shunday kira olamiz: [20, 40, 30, 38]. Keyin summa 128, ya'ni 32 × 4 ga teng. Sinus soati uchun [37, 42, 47, 51, 55, 58, 60, 61, 62, 61, 60, 58, 55, 51, 47, 42, 37, 32, 27, 22, 17, 13, 9, 6, 4, 3, 2, 3, 4, 6, 9, 13, 17, 22, 27, 32] = 1152 = 36*32). Bizning soat uchun biz ikkita bepul kirishni tez ishlash uchun ajratuvchi sifatida ishlatamiz. Tezlikni ajratuvchi jadvallar EEPROM xotirasida saqlanadi. Dasturning asosiy qismi quyidagicha ko'rinishi mumkin:
MainLoop:
btfss INTCON, T0IF goto MainLoop; kuting Timer0 bcf INTCON, T0IF incf CLKCNT, f btfss SW_STOP; agar STOP tugmasi faol bo'lsa, CLKCNT clrf; aniq hisoblagich har safar btfsc SW_FAST; agar tez tugma bosilmasa goto NormalTime; faqat normal vaqtni hisoblang: FCLK, w xorwf CLKCNT, w btfsc STATUS, Z; agar FCLK va CLKCNT bir xil bo'lsa SendPulse NormalTime: movf CLKCNT, w andlw 0xE0; bit 7, 6, 5 btfsc STATUS, Z; agar CLKCNT> = 32 goto MainLoop goto SendPulse bo'lsa
SendPulse funktsiyasidan foydalanadigan dastur, bu funksiya o'zi motor pulsini yaratadi. Funktsiya toq/juft pulsni hisoblab chiqadi va shu asosda bir yoki ikkinchi chiqishda puls hosil qiladi. Doimiy ENERGISE_TIME yordamida funksiya. Vaqtni belgilaydigan bu doimiy vosita lasanidan quvvatlanadi. Shunday qilib, iste'molga katta ta'sir ko'rsatadi. Kichkina bo'lgach, dvigatel qadamni tugatolmaydi va ba'zida shunday bo'ladi, ikkinchi soniya yo'qoladi (odatda ikkinchi qo'l 9 -raqam atrofida aylanganda, "yuqoriga" ketganda).
SendPulse:
incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: bsf OUT_A goto SendPulseE SendPulseB: bsf OUT_B; goto SendPulseE SendPulseE: movlw 0x50 movwf ECNT GentFolFoLPPP
To'liq manba kodlarini www.fucik.name sahifasining oxirida yuklab olish mumkin. Arduino bilan vaziyat unchalik murakkab emas, chunki Arduino yuqori dasturlash tili va 8 MGtsli o'z kristallidan foydalangan holda biz qanday funktsiyalarni ishlatayotganimizga ehtiyot bo'lishimiz kerak. Klassik delay () dan foydalanish unchalik xavfli emas (u funksiyaning boshlanishidan vaqtni hisoblab chiqadi). Yaxshi natijalar Timer1 kabi kutubxonalardan foydalanadi. Arduino -ning ko'plab loyihalari PCF8563, DS1302 va boshqalar kabi tashqi RTC qurilmalarida hisobga olinadi.
14 -qadam: Qiziqishlar
Devor soatlari dvigatellaridan foydalanishning bu tizimi juda oddiy deb tushuniladi. Bu juda ko'p yaxshilanishlarga ega. Masalan, Orqa EMF (rotor magnitining harakati natijasida hosil bo'ladigan elektr energiyasi) o'lchoviga asoslangan. Qachonki elektron qo'lda harakatlansa, taniydi, aks holda pulsni tez takrorlang yoki "ENERGISE_TIME" qiymatini yangilang. qiziqroq qiziqish - "teskari qadam". Ta'rifga ko'ra, dvigatel faqat bitta yo'nalish uchun mo'ljallangan va uni o'zgartirish mumkin emas. Ammo biriktirilgan videolarda ko'rsatilgandek, yo'nalishni o'zgartirish mumkin. Printsip oddiy. Keling, motor printsipiga qaytaylik. Tasavvur qiling, dvigatel ikkinchi bosqichda barqaror holatda (3 -rasm). Birinchi bosqichda ko'rsatilganidek, biz kuchlanishni ulaganimizda (2 -rasm), vosita mantiqan teskari yo'nalishda aylana boshlaydi. Puls etarlicha qisqa bo'lgandan keyin va motor barqaror holatga kelguncha biroz to'xtasa, mantiqan bir oz miltillaydi. Vaqti -vaqti bilan miltillovchi vaqt uchinchi kuchlanish holatida tasvirlanganidek, keyingi kuchlanish pulsiga keladi (4 -rasm), keyin motor boshlangan yo'nalishda davom etadi, bu teskari yo'nalishda. Kichkina muammo shundaki, birinchi pulsning davomiyligini qanday aniqlash mumkin va birinchi va ikkinchi pulslar orasidagi masofani yaratish. Eng yomoni, bu sobitlarning har bir soat harakati uchun o'zgarishi, ba'zida esa har xil holatlarda qo'llar "pastga" (3 -raqam atrofida) yoki yuqoriga (9 -raqam atrofida), shuningdek neytral holatlarda (12 va 6 -raqamlar atrofida) tushadi.. Videoda ko'rsatilgan holat uchun men quyidagi kodda ko'rsatilgan qiymatlar va algoritmdan foydalandim:
#deuine OUT_A_SET 0x02; sozlash uchun konfiguratsiya b aniq
#define OUT_B_SET 0x04; config for out b aniq #define ENERGISE_TIME 0x30 #define REVERT_TIME 0x06 SendPulse: incf POLARITY, f clrf CLKCNT btfss POLARITY, 0 goto SendPulseB SendPulseA: movlw REVERT_TIME movwf ECNT movlw OUTB puls B bilan boshlang movwf GPIO RevPulseLoopA:; qisqa vaqt kutish decfsz ECNT, f goto RevPulseLoopA movlw OUT_A_SET; keyin puls A movwf GPIO goto SendPulseE SendPulseB: movlw REVERT_TIME movwf ECNT movlw OUT_A_SET; puls bilan boshlang A movwf GPIO RevPulseLoopB:; qisqa vaqt kutish decfsz ECNT, f goto RevPulseLoopB movlw OUT_B_SET; keyin puls B movwf GPIO; goto SendPulseE SendPulseE: movlw ENERGISE_TIME movwf ECNT SendPulseLoop: decfsz ECNT, f goto SendPulseLoop bcf OUT_A bcf OUT_B goto MainLoop
Teskari qadamlardan foydalanish devor soati bilan o'ynash imkoniyatini oshiradi. Ba'zida biz ikkinchi qo'lning silliq harakatiga ega devor soatini topamiz. Bizda bu soatdan qo'rqish yo'q, ular oddiy hiyla ishlatishadi. Dvigatelning o'zi bu erda tasvirlangan dvigatel bilan bir xil, faqat tishli nisbati katta (odatda 8: 1 ko'proq) va dvigatel tezroq aylanadi (odatda 8 marta tez), bu silliq harakatga ta'sir qiladi. Agar siz devor soatini o'zgartirishga qaror qilsangiz, kerakli multiplikatorni hisoblashni unutmang.
Tavsiya:
Arduino asosidagi DIY o'yin boshqaruvchisi - Arduino PS2 o'yin boshqaruvchisi - DIY Arduino Gamepad bilan Tekken o'ynash: 7 qadam
Arduino asosidagi DIY o'yin boshqaruvchisi | Arduino PS2 o'yin boshqaruvchisi | DIY Arduino Gamepad bilan Tekken o'ynash: Salom bolalar, o'yin o'ynash har doim qiziqarli, lekin o'zingizning shaxsiy o'yiningiz bilan o'ynash yanada qiziqarli, shuning uchun biz ushbu qo'llanmada arduino pro micro yordamida o'yin boshqaruvchisi qilamiz
Vaqt bilan o'ynash: 6 qadam
Vaqt bilan o'ynash: Loyihaning dastlabki g'oyasi quyidagilardan iborat edi: sovg'ani eski elektron telefon yordamida "steampunk" ga aylantiring. tashqi ko'rinish
M5stack Esp32 asosidagi M5stick C Development Board bilan Flappy Bird o'yinini o'ynash: 5 qadam
Flappy Bird o'yinini M5stack Esp32 asosidagi M5stick C Development Board bilan o'ynash: Salom bolalar, bugun biz m5stack tomonidan taqdim etilgan m5stick c ishlab chiqarish kartasiga flappy qushlar o'yin kodini yuklashni o'rganamiz.Bu kichik loyiha uchun sizga ikkita narsa kerak bo'ladi: m5stick-c ishlab chiqish taxtasi: https://www.utsource.net/itm/p/8663561.h
Joystick bilan "Digger" ni qanday o'ynash kerak!: 4 qadam
Joystik bilan "Digger" ni qanday o'ynash kerak!: Bir necha yil oldin men otamni hayratda qoldirishga qaror qildim, u o'ylab topdi, dunyoda yo'q bo'lib ketdi, Digger! Digger 1983 yilda Windmill Software tomonidan ishlab chiqarilgan, Kanadaning Toronto shahrida joylashgan kompaniya shaxsiy kompyuterlarda ishlagan
Synth qo'lqopi: Gakken SX-150 bilan o'ynash: 8 qadam (rasmlar bilan)
Synth qo'lqopi: Gakken SX-150 bilan o'ynash: {// Boshlang'ich elektronika uchun yaxshi. // Bu sizga interfeyslarni yaratish bo'yicha asosiy bilimlarni beradi. // Agar rostini aytsak, bularning aksariyati boshqa Iblesda, lekin menga bu loyihalarni birlashtirish g'oyasi yoqdi. // Gakken