Mundarija:

Umumiy kalitlarni o'g'irlash: 3 qadam
Umumiy kalitlarni o'g'irlash: 3 qadam

Video: Umumiy kalitlarni o'g'irlash: 3 qadam

Video: Umumiy kalitlarni o'g'irlash: 3 qadam
Video: #ZAPAL#12-YOSHLI QIZ USHLANDI 2024, Noyabr
Anonim
Umumiy kalitlarni olib qochuvchi
Umumiy kalitlarni olib qochuvchi

Ushbu maqolada, jismoniy kalitlarni boshqaradigan qattiq holatli mikrokontroller qurilmasini qanday tuzish tasvirlangan. Agar sizda mikrokontroller dasturchisi bo'lsa, buni qilish juda arzon (4 dollar yoki undan ko'p). Zanjirning o'zi arzimas murakkablikka ega.

Bu loyiha juda oddiy va hech qanday ajoyib yangi texnikani o'z ichiga olmaydi. Bu birinchi yaxshi mikrokontroller loyihasi bo'lib xizmat qiladi. Ushbu maqolada montaj manba kodi sizga taqdim etiladi. Mening ishda juda zo'r xo'jayinim bor. Ba'zan, biz bir -birimizga amaliy hazil qilishni yaxshi ko'ramiz. Afsuski, men olimman. Mening bu erdagi maqsadim - ish joyidagi turli qurilmalarni qisqa vaqt ichida sirli ravishda yoqish. Radiolar, shovqinli printerlar, hatto tug'ilgan kunning zerikarli musiqiy kartalari ham oddiy narsalarga yashiringan. Buning ustiga, bu loyiha, chiqish pinlari o'zlari hal qila oladiganidan ko'ra, AVR bilan qanday og'ir yuklarni boshqarishingizga misol bo'la oladi. Bu juda ko'p turli xil narsalar, chunki chiqish pimlari sizga faqat kichik kuchlanish va juda cheklangan oqim beradi. Bu sxemani juda og'ir yuklarni nazorat qilish uchun o'rni yordamida kengaytirish mumkin.

1 -qadam: Dizayn va davr

Dizayn va davr
Dizayn va davr

Ushbu loyiha uchun siz deyarli har qanday mikrokontroller, 5V kuchlanish regulyatori va NPN tranzistoridan foydalanishingiz mumkin. Men ishlatganman:

1x ATtiny26L-8PU (~ 2 $) 1x TL780 5v kuchlanish regulyatori (~ 0,7 $) 1x N2222 tranzistorli (~ 0,07 $) 1x 9v batareya yoki joyni tejash uchun 12v masofadan boshqarish pulti… va, albatta, mening ishonchli STK500, hozir ZIF bilan rozetkalar qo'shildi! Asosiy dizayn quyidagicha: mikrokontroller ikkita vaqt oralig'idan o'tadi. Qurilmani qachon yoqish kerakligini aniqlash uchun uzun pastadir va qurilmani qancha vaqt ushlab turish kerakligini aniqlash uchun qisqa pastadir. Noqulaylik tug'dirish vaqti kelganida, mikrokontroller 14 -pinli mantiqni yuboradi (PORTAning eng kichik qismi). Bu tranzistorni o'chiradi. Agar siz qisqichlarni kalitning simlariga ulagan bo'lsangiz, bu kalitning qarshiligi to'satdan juda balanddan 1 ohmdan pastgacha pasayishiga olib keladi, bu ko'pchilik qurilmalar uchun kalitni yoqish uchun etarli. Shuni yodda tutingki, tranzistorlar ham dioddir, shuning uchun u ishlamasa … qisqichlarning qutblanishi noto'g'ri bo'lsa, ularni almashtiring! Bundan tashqari, bu qurilmaga 9V kuchlanishli yaxshi batareya kerak, aytaylik 8v dan ortiq potentsial qolgan … bundan tashqari, u ko'p quvvat sarflamaydi. Ko'p ishlatilmaydigan pinlar bor, shuning uchun, albatta, siz ularni ko'proq tartibsizlik uchun ko'proq kalitlarni boshqarish uchun ishlatishingiz mumkin, lekin bu mening maqsadlarim uchun etarli edi. Keyingi qadam - bu ishni davom ettirish uchun yozgan manba kodim. "Yoqish" va "o'chirish" holatlari uchun standart uzunliklar mos ravishda taxminan 10 soniya va 13 daqiqani tashkil qiladi. Kodda bu qiymatlarni qanday o'zgartirish haqida izohlar bor. Nihoyat, taymerlarni o'zgartirish uchun "nop" funktsiyasidan (CPU davrini hech narsa qilmasdan) keng foydalanganingiz uchun uzr so'raymiz. Agar siz qanchalik ko'p ishlatayotganingizga ehtiyot bo'lmasangiz, u rjmp funktsiyasini buzishi mumkin, chunki bu bejiz emas!

2 -qadam: Manba kodi

Boshlash:

. INCLUDE "tn26def.inc"; Ta'rif fayl. Agar sizga nusxa kerak bo'lsa, buning uchun Google. clr r30 clr r29 clr r28 clr r27 ldi r28, 0b00000000 ldi r27, 0b11111111 ldi r26, 0b00000000 clr r25 DDRA, r27 out PORTA, r28 TIMER: inc r30 nop nop noop noop noop noop noop noop Yo'q, yo'q, yo'q, yo'q cpi r30, 0b11111111 breq TIMER2 rjmp TIMER TIMER2: yo'q, yo'q, yo'q, yo'q, yo'q, yo'q, yo'q, yo'q "Yo'q", "yo'q", "o'chirish" vaqtini qisqartirish uchun bu raqamni kamaytiring., 0x00 breq FUNC2 dec r28 clr r30 clr r29 clr r25 out of PORTA, r28 rjmp TIMER FUNC2: nop nop inc r28 out PORTA, r28 clr r25 clr r30 clr r29 rjmp TIMER4 TIMER4: no rop nop noop Yo'q, yo'q, yo'q, yo'q, yo'q cpi r30, 0b11111111 breq TIMER5 rjmp TIMER4 TIMER5: yo'q, yo'q, yo'q, yo'q, r29 cpi r29, 0b11111 111 TIMER6 rjmp TIMER4 TIMER6: r25 cpi r25, 0b00000011; FUNC rjmp TIMER4 vaqtini "yoqish" vaqtini oshirish uchun bu raqamni oshiring

3 -qadam: Yakuniy eslatma

Xursand bo'ling, lekin esda tutingki, tranzistorda qancha kuch sarflashingiz mumkin. Bu shuni anglatadiki, tarmoq voltaji yo'q! Transistorni haddan tashqari yuklashidan tashqari, bu qurilma o'zgaruvchan signallarni yaxshi boshqarolmaydi, agar siz quyida tasvirlangan modifikatsiyani qo'llasangiz * va * o'z o'rni qo'shmasangiz: Agar qisqichning kutupluluğu sizni bezovta qilsa, ikkinchi tranzistorni sim bilan ulang. asosiy plastinka birinchi tranzistor bilan bir xil manbaga ulangan, lekin qarama -qarshi konfiguratsiyadagi kollektor va emitent bilan. Shunday qilib, siz qisqichlarni qanday ulashingizdan qat'i nazar, mikrokontroldordan chiqadigan mantiq doimo kalitni "yoqadi". Shuni yodda tutingki, bu tizimdagi oqish oqimi klaviatura matritsasi kabi ba'zi sezgir kalitlarni faollashtirish uchun etarli bo'lishi mumkin, bu dastur uchun qarshilikni ketma -ket qo'shish kerak bo'lishi mumkin. Esda tutingki, siz batareyadan emas, balki maqsadli qurilmadan quvvat olishingiz mumkin. Oxir -oqibat … Men bu qurilmani qadimiy buxgalteriya hisoblagichiga o'rnatdim. Qaysi IC pimlari qog'oz uzatilishiga olib kelishini aniqlash uchun qog'oz qisqichi yordamida klaviatura matritsasini teskari tarzda ishlab chiqdim va to'g'ri pimlarni qurilma bilan bog'ladim. Keyin men bosib chiqarish funktsiyasini o'chirib qo'yadigan kalitni o'chirib qo'ydim, men mashinani to'g'ri burilgan deb hisoblayman. Har 10 daqiqada, qurilma har safar 10 soniya davomida, juda shovqinli qog'ozni yoqadi, shuningdek, tug'ilgan kunning musiqiy kartalaridan biri bilan ham yaxshi ishlagan, mening ish joyim endi g'alati!

Tavsiya: