Mundarija:
- Maqsadlar
- Tajriba va ko'nikmalar
- Ogohlantirish va kredit
- 1 -qadam: qismlar
- Qismlar ro'yxati
- Umumiy qismlar
- Bu erda ishlatiladigan maxsus qismlar
- Qismlarga tegishli eslatmalar
- 2 -qadam: Matritsa
- Qurilish masalalari
- Matritsani qurish
- Muhim
- 3 -qadam: boshqaruv apparati
- Boshqaruv uskunalarini yaratish
- 4 -qadam: dasturiy ta'minot
- Hiyla
- Shift registrlari: qanday
- Displeyga murojaat qilish
- Dasturlash
- Harakatda
- 5 -qadam: Modulli tushunchalar
- Matematika
- Kaskadli siljish registrlari
- Ko'p qatorli haydovchilar
- Masalan
- 6 -qadam: Xulosa
- Mumkin bo'lgan qo'shimchalar
- 7 -qadam: kuzatib boring
- O'chirish platasining xususiyatlari
- O'rnatish
Video: Shift registrlari yordamida LED matritsasi: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:29
Bu ko'rsatma Internetda mavjud bo'lgan boshqalarga qaraganda to'liqroq tushuntirish uchun mo'ljallangan. Ta'kidlash joizki, bu LED555 tomonidan ko'rsatiladigan LED Marquee -da mavjud bo'lganidan ko'ra ko'proq qo'shimcha tushuntirishlarni beradi.
Maqsadlar
Bu ko'rsatma smenali registrlar va yuqori haydovchilar bilan bog'liq tushunchalarni taqdim etadi. Ushbu kontseptsiyalarni 8x8 LED matritsasi yordamida tasvirlab, men sizga loyiha talab qilayotgan hajm va tartibga moslashish va kengaytirish uchun zarur vositalarni taqdim etaman deb umid qilaman.
Tajriba va ko'nikmalar
Men ushbu loyihani o'rtacha qiyinchilik deb baholagan bo'lardim:
- Agar sizda allaqachon mikrokontrolderlarni dasturlash va LEDlar bilan ishlash tajribasi bo'lsa, bu loyihani bajarish va chiroqlarning kattaroq massivlarini kengaytirish siz uchun juda oson bo'lishi kerak.
- Agar siz endigina mikrokontrolderlar bilan ishlay boshlasangiz va bir -ikkita LEDni yoqib qo'ysangiz, bu loyihani do'stimiz google yordami bilan bajarishingiz kerak.
- Agar sizda mikrokontrolderlar yoki dasturlash bo'yicha tajribangiz kam yoki umuman bo'lmasa, bu o'zingizga kerak bo'lgan narsadan oshib ketishi mumkin. Boshlang'ich bir nechta loyihalarni sinab ko'ring va mikrokontrollerlar uchun dastur yozish bo'yicha tajribaga ega bo'lganingizda qaytib keling.
Ogohlantirish va kredit
Birinchidan, men elektr injener emasman. Agar siz biror narsani noto'g'ri ko'rsangiz yoki eng yaxshi amaliyot bo'lmasa, menga xabar bering, men tuzataman. Buni o'zingizning xavfingiz ostida bajaring! Siz nima qilayotganingizni bilishingiz kerak, aks holda kompyuteringizga, mikrokontrolleringizga va hatto o'zingizga zarar etkazishingiz mumkin. Men Internetdan, xususan forumlardan ko'p narsalarni o'rgandim: https://www.avrfreaks.net ks0108 universal C kutubxonasi bilan birga kelgan shriftlar to'plami. Buni bu erdan tekshiring:
1 -qadam: qismlar
Qismlar ro'yxati
Umumiy qismlar
LEDlarning 8x8 o'lchamli panjarasini yaratish va ularni boshqarish uchun sizga kerak bo'ladi:
- Siz tanlagan 64 ta LED
- LEDlar uchun 8 rezistor
- 1 Ustunlar uchun Shift registri
- 1 qatorlar uchun haydovchilar qatori
- Haydovchi massivini almashtirish uchun 8 rezistor
- 1 ta mikrokontroller
- Mikrokontroller uchun 1 soat manbai
- 1 ta prototip taxtasi
- 1 ta quvvat manbai
- Bog'lanish sim
Bu erda ishlatiladigan maxsus qismlar
Bu ko'rsatma uchun men quyidagilarni qo'lladim:
- 64 ta yashil LED (Mouser qismi #604-WP7113GD)
- LEDlar uchun 8/2/4 vattli rezistorlar (Mouser qismi #660-CFS1/4CT52R221J)
- Shift registrli 1 HEF4794 LED drayveri (Mouser qismi #771-HEF4794BPN)
- 1 mic2981 yuqori voltli yuqori oqim manba drayveri (Digikey qismi #576-1158-SH)
- Drayvlar qatorini almashtirish uchun 1/3 vattli 3,3 kohmlik rezistorlar (Radio Shack № 271-1328)
- 1 Atmel ATmega8 mikrokontroller (Mouser qismi #556-ATMEGA8-16PU)
- 1 soatlik mikrokontroller manbai uchun 12 MGts kristalli (Mouser qismi #815-AB-12-B2)
- 1 2200 teshikli prototip taxtasi (Radio Shack № 276-147)
- Konvertatsiya qilingan ATX quvvat manbai: Bu ko'rsatmaga qarang
- Qattiq yadroli 22-avgli sim (Radio Shack qismi #278-1221)
- Lehimsiz non paneli (Radio Shack № 276-169 qismi (endi mavjud emas, sinab ko'ring: 276-002)
- AVR Dragon (Mouser qismi #556-ATAVRDRAGON)
- Ecros Technologies tomonidan Dragon Rider 500: Bu ko'rsatmaga qarang
Qismlarga tegishli eslatmalar
Qator va ustun haydovchilari: Ehtimol, bu loyihaning eng qiyin qismi qator va ustun drayverlarini tanlashdir. Birinchidan, men bu erda 74HC595 standart smenali registrni yaxshi deb o'ylamayman, chunki ular biz LEDlar orqali uzatmoqchi bo'lgan oqim turiga dosh bera olmaydi. Shuning uchun men HEF4794 drayverini tanladim, chunki u bir vaqtning o'zida svetodiodning barcha 8 chiroqlari yoqilganda oqimni osonlikcha cho'ktirib yuborishi mumkin. Bizga bir nechta ustunlarni bir -biriga ulash uchun etarlicha tok manbai bo'lishi mumkin bo'lgan qator drayveri kerak bo'ladi. Mic2981 500 mA gacha quvvat bilan ta'minlay oladi. Men bu vazifani bajaradigan boshqa qism-bu boshqa ishlab chiqaruvchi tomonidan ishlab chiqarilgan UDN2981 (620-1120-ND raqamli qism). Iltimos, menga xabar yuboring, agar siz ushbu dasturda yaxshi ishlaydigan boshqa drayverlarni bilsangiz. LED matritsasi: Bu matritsa 8x8, chunki har bir qator va ustun drayverlarida 8 ta pin bor. Ko'proq matritsalarni birlashtirish orqali kattaroq LED massivini qurish mumkin va "modulli tushunchalar" bosqichida muhokama qilinadi. Agar siz katta massivni xohlasangiz, barcha kerakli qismlarni bir vaqtning o'zida buyurtma qiling, bitta qulay paketda 8x8, 5x7 va 5x8 LED matritsalar mavjud. Bularni DIY matritsasini almashtirish oson bo'lishi kerak. Ebay bular uchun yaxshi manba. Mouserda 5x7 birliklari mavjud, masalan #604-TA12-11GWA. Men arzon yashil LEDlardan foydalandim, chunki men shunchaki o'ynab, dam olaman. Yorqinligi yuqori, yuqori rentabellikli LED-larga ko'proq pul sarflash sizga yanada ajoyib ko'rinishga ega displeyni ishlab chiqarishga imkon beradi … bu men uchun juda yaxshi! Uskuna boshqaruv: matritsa Atmel AVR mikrokontroller tomonidan boshqariladi. Buning uchun sizga dasturchi kerak bo'ladi. Men prototip qilayotganim uchun men Dragon Rider 500 -dan foydalanaman, buning uchun men montaj va ishlatish bo'yicha ko'rsatmalarni yozdim. Bu prototip yaratish uchun oson vosita va men uni juda tavsiya qilaman.
2 -qadam: Matritsa
Men 5 mm LED va Radio Shack prototipi taxtasi yordamida o'z loyiham uchun o'z LED matritsasini quraman. Shuni ta'kidlash kerakki, siz 8x8 nuqta matritsali LED modullarni bir nechta manbalardan, shu jumladan ebaydan sotib olishingiz mumkin. Bu ko'rsatma bilan ular yaxshi ishlashi kerak.
Qurilish masalalari
LEDlarni hizalamoq kerak, shunda ular bir xil yo'nalishda bir xil burchak ostida bo'ladi. Men eng oson variantni topdim - bu LED drenaj korpusini taxtaga qo'yish va uni pleksiglas va qisqich bilan ushlab turish. Men pleksiglas prototiplash taxtasi bilan parallel ekanligiga ishonch hosil qilish uchun men ishlayotgan qatordan bir necha dyuym masofada bir nechta LEDni qo'ydim. Har bir satr va har bir ustun uchun umumiy aloqa bo'lishi kerak. Qator va ustunli haydovchilar tanlovi tufayli biz anodni (LEDning musbat o'qi) qatorga va katodni (LEDning salbiy simini) ustun bilan bog'lashimiz kerak. Tekshirish simlari Ushbu prototip uchun men qattiq yadroli (bitta o'tkazgichli) ulash simini ishlataman. Bu lehimsiz non paneli bilan bog'lanish juda oson bo'ladi. Loyihangizga mos keladigan boshqa ulagich turini ishlating.
Matritsani qurish
1. LEDlarning birinchi ustunini prototiplash taxtasiga joylashtiring.2. Har bir LED uchun kutupluluğunuzun to'g'riligini ikki marta tekshiring, agar buni keyinroq tushunsangiz, uni tuzatish juda qiyin bo'ladi. LEDning ikkala uchini ham taxtaga lehimlang. To'g'ri hizalanmalarini tekshiring (g'alati burchak ostida emas) va katod simlarini uzib qo'ying. Anod chizig'ini kesmasligingizga ishonch hosil qiling, bizga keyinchalik kerak bo'ladi, shuning uchun uni yuqoriga qaratib qoldiring. Qattiq yadroli simdan izolyatsiyani olib tashlang. Ushbu simni har bir katodga to'g'ridan -to'g'ri taxta darajasida lehimlang.
- Men buni har uchidan o'tkazdim, keyin orqaga qaytdim va har bir kavşağa bir oz lehim qo'shdim.
- Bu simni oxirgi svetodioddan o'tkazib yuborish kerak, chunki biz boshqaruv simlarini qo'shsak, interfeys oson bo'ladi.
5. Barcha LEDlar o'rnatilguncha va barcha ustunli avtobuslar lehimlanmaguncha 1-4 qismlarni takrorlang. Bir qatorli avtobus yaratish uchun bir necha anodli simlarni 90 graduslik burchak ostida eging, shunda ular bir qatordagi boshqa anod simlariga tegadi.
- Buning batafsil rasmlari quyida keltirilgan.
- Qisqa tutashuv hosil qilib, ular kolonna avtobuslari bilan aloqa qilmasligiga ehtiyot bo'ling.
7. Har bir ulanish joyida simlarni lehimlang va ortiqcha anodli simlarni kesib oling.
Oxirgi LED yonida oxirgi anodni qoldiring. Bu qator haydovchilarini boshqarish simlarini ulash uchun ishlatiladi
8. Barcha qator avtobuslar lehimlanmaguncha 6 va 7 -qismlarni takrorlang.9. Tekshirish simlarini ulang.
- Men qatorlar uchun qizil qattiq yadroli simni va ustunlar uchun qora rangni ishlatardim.
- Har bir ustun uchun bitta sim va har bir satr uchun bittadan ulang. Buni har bir avtobusning oxirida osongina bajarish mumkin.
Muhim
Bu LED matritsada tokni cheklovchi rezistorlar yo'q. Agar siz buni rezistorlarsiz sinab ko'rsangiz, ehtimol siz LEDni yoqib yuborasiz va bu ishlarning barchasi befoyda bo'ladi.
3 -qadam: boshqaruv apparati
Biz LED matritsamizning ustunlari va qatorlarini nazorat qilishimiz kerak. Matritsa shunday tuzilganki, anodlar (LEDning kuchlanish tomoni) qatorlarni, katodlar (LEDning er tomoni) ustunlarni tashkil qiladi. Bu shuni anglatadiki, bizning haydovchimiz oqim manbasini, ustun drayveri esa uni cho'ktirishi kerak. Pimlarni tejash uchun ustunlarni boshqarish uchun smenali registrni ishlataman. Shunday qilib, men deyarli to'rtta mikrokontroller pinlari bilan deyarli cheksiz miqdordagi ustunlarni nazorat qila olaman. Chiqish pinini to'g'ridan -to'g'ri kuchlanish bilan bog'langan bo'lsa, faqat uchtasini ishlatish mumkin. Men shift registrli HEF4794 LED drayverini tanladim. Bu 74HC595 standartiga qaraganda yaxshiroq variant, chunki u bir vaqtning o'zida 8 ta LED yonib turganda, hozirgi oqimni osonlikcha cho'ktirib yuboradi. Sxemada UDN2981 ko'rsatilgan, menimcha, bu ikkisi bir -birining o'rnini bosadi. Bu haydovchi 500 mA gacha tok manbaiga ega bo'lishi mumkin. Chunki biz bir vaqtning o'zida faqat 1 qatorni haydab ketayotganimizda, bu chip uchun 33 tagacha ustunni kengaytirish uchun katta imkoniyat beradi (bu haqda "modulli tushunchalar" bosqichida batafsilroq).
Boshqaruv uskunalarini yaratish
Bu ko'rsatma uchun men hozirgina ushbu sxemani ochdim. Doimiyroq echim uchun siz o'zingizning elektron kartangizni yasashni yoki prototiplash kartasini ishlatishni xohlaysiz. Qator haydovchi
- Mic2981 (yoki UDN2981) ni non paneliga joylashtiring
- 9 -pinni kuchlanishga ulang (bu sxemada chalkashlikdir)
- 10 -pinni erga ulang (bu sxemada chalkashlikdir)
- 1-8 pinlarga ulanadigan 3k3 rezistorni joylashtiring
- ATmega8 (PD0-PD8) D portidan 8 rezistorga ulaning
- LED matritsasining 8-qatorli boshqaruv simlarini 11-18-pinlarga ulang (shuni esda tutingki, men LEDlarning eng past qatorini 18-pin bilan, eng yuqori qatorini esa 11-pin bilan bog'ladim).
2. Ustun haydovchi
- Hef4794 ni non taxtasiga joylashtiring
- 16 -pinni voltajga ulang
- 8 -pinni erga ulang
- 4-7 va 11-14 pinlariga 220 ohmli rezistorlarni ulang.
- LED matritsasidan 8 ta ustunli boshqaruv simlarini yaqinda ulangan 8 ta rezistorga ulang.
- Pin1 (mandal) ni ATmega8 PC0 ga ulang
- Pin2 (Ma'lumotlar) ni ATmega8 PC1 ga ulang
- Pin3 (soat) ni ATmega8 ning PC2 -ga ulang
- Pin15 (Chiqishni yoqish) ni ATmega8 PC3 ga ulang
3. Kristalli soat
Sxemada ko'rsatilgandek 12 MGtsli kristalli va yuk kondensatorlarini ulang
4. Internet -provayder
Sxemada ko'rsatilgandek dasturlash sarlavhasini ulang
5. Filtrlovchi kondansatör va tortish qarshiligi
- ATmega8 ga berilgan kuchlanishni filtrlash eng yaxshisidir. ATmega8 ning 7 va 8 -pinlari orasidagi 0,1uf kondansatkichidan foydalaning
- Qayta tiklash pinini suzuvchi holatda qoldirmaslik kerak, chunki bu tasodifiy qayta o'rnatishga olib kelishi mumkin. Uni kuchlanishga ulash uchun rezistordan foydalaning, 1k ga yaqin narsa yaxshi bo'lishi kerak. Men sxemada 10k rezistordan foydalanganman.
6. +5v regulyatsiyalangan quvvat ishlatayotganingizga ishonch hosil qiling. Regulyatorni loyihalash sizga bog'liq.
4 -qadam: dasturiy ta'minot
Hiyla
Ha, hamma narsa singari, hiyla ham bor. Hiyla shundaki, hech qachon bir vaqtning o'zida 8 dan ortiq LED yoritilmaydi. Bu yaxshi ishlashi uchun biroz ayyor dasturlash kerak. Men tanlagan kontseptsiya - taymer uzilishidan foydalanish. Mana, displey uzilishi oddiy ingliz tilida qanday ishlaydi:
- Taymer ma'lum bir nuqtaga qadar hisoblab chiqiladi, shundan so'ng uzilish xizmat ko'rsatiladi.
- Keyingi qator qaysi qatorda ko'rsatilishini bu tartib belgilaydi.
- Keyingi qator ma'lumotlari buferdan qidiriladi va ustun drayveriga o'tkaziladi (bu ma'lumot "yopilmagan", shuning uchun u hali ko'rsatilmagan).
- Qator haydovchisi o'chirilgan, hozircha LEDlar yonmaydi.
- Ustun drayveri biz ko'rsatgan ma'lumotni ikki qadam oldin siljitgan ma'lumotlarni "yopib qo'ygan".
- Keyin qator drayveri biz ko'rsatayotgan yangi qatorga oqim beradi.
- To'xtatish xizmati tartibi tugaydi va dastur keyingi uzilishgacha normal oqimga qaytadi.
Bu juda tez sodir bo'ladi. To'xtatish har 1 sekundda amalga oshiriladi. Bu shuni anglatadiki, biz butun displeyni har 8 sekundda bir marta yangilaymiz. Bu shuni anglatadiki, ekran tezligi taxminan 125 Gts. Yorug'lik bilan bog'liq ba'zi xavotirlar bor, chunki biz asosan LEDlarni 1/8 ish tsiklida ishlatamiz (ular 7/8 o'chadi). Mening holatimda men ko'rinadigan miltillovchi bo'lmagan yorqin displeyga ega bo'laman. To'liq LED displey bir qatorda tasvirlangan. Tanaffuslar oralig'ida qator o'zgarishi mumkin (atomizm haqida unutmang) va keyingi uzilish paytida displeyda paydo bo'ladi. AVR mikrokontrolerining kodini yozish xususiyatlari va smenali registrlar bilan gaplashish uchun qanday kod yozish mumkin emas. bu ko'rsatmali. Men to'g'ridan-to'g'ri dasturlash uchun manba kodini (C da yozilgan va AVR-GCC bilan tuzilgan), shuningdek, olti burchakli faylni qo'shdim. Men kodni sharhlab berdim, shuning uchun siz ma'lumotni smenali registrga qanday kiritish va satrlarni yangilash qanday ishlashi haqidagi savollarni hal qilish uchun foydalanishingiz mumkin. ks0108 universal C kutubxonasi. Bu kutubxonani bu erda topish mumkin:
Shift registrlari: qanday
Men smenali registrlar bilan qanday dasturlash haqida bir oz ma'lumot qo'shishga qaror qildim. Umid qilamanki, bu oldin ular bilan ishlamaganlar uchun hamma narsani aniqlab beradi, nima qiladilar Shift registrlari bitta simdan signal oladi va bu ma'lumotni turli pinlarga chiqaradi. Bunday holda, ma'lumotlarni qabul qiladigan bitta ma'lumot simlari va 8 ta pin bor, ular qanday ma'lumot olinganiga qarab boshqariladi. Vaziyatni yaxshilash uchun har bir smenali registr uchun boshqa smenali registrning kirish piniga ulanishi mumkin. Bu kaskad deb ataladi va kengayish potentsialini deyarli cheksiz istiqbolga aylantiradi. Control PinsShift registrlarida 4 ta nazorat pimi mavjud:
- Mandal - bu pin, yangi kiritilgan ma'lumotlarga o'tish vaqti kelganida, o'zgarish registrini bildiradi
- Ma'lumotlar - 1 va 0 tugmachalari smenada qaysi pinlar faollashtirilishini bildiradi.
- Soat - bu mikrokontroldordan yuborilgan zarba, u smeta registriga ma'lumotlarni o'qishni va aloqa jarayonining keyingi bosqichiga o'tishni aytadi.
- Chiqishni yoqish - bu yoqish/o'chirish tugmasi, yuqori = yoqilgan, past = o'chirilgan
Sizning taklifingizni bajarishga majbur qilish: Mana, yuqoridagi boshqaruv pimlarining ishlashidagi xato kursi: 1 -qadam: Latch, Data va Soatni past darajaga qo'ying.
Latchni past darajaga qo'yish biz yozmoqchi bo'lgan smenali registrni bildiradi
2 -qadam: Ma'lumotlar pinini Shift Registriga yubormoqchi bo'lgan mantiqiy qiymatga o'rnating 3 -qadam: Shift registrini joriy ma'lumotlar pin qiymatida o'qilishini aytib, soat pinini baland qilib qo'ying.
Shift reestridagi boshqa barcha qiymatlar 1 pog'onaga siljiydi va bu ma'lumotlar pinining mantiqiy qiymatiga joy beradi
4 -qadam: Pastki soat pinini o'rnating va 2 va 3 -qadamlarni barcha ma'lumotlar smenali registrga yuborilmaguncha takrorlang.
Keyingi ma'lumot qiymatiga o'tishdan oldin soat pinini past darajaga qo'yish kerak. Bu pinni yuqori va pastga almashtirish - bu "soat impulsini" yaratadigan narsa, bu jarayonning keyingi bosqichiga qachon o'tish kerakligini bilishi kerak
5 -qadam: Mandalni baland qilib qo'ying
Bu smenali registrga o'tkazilgan barcha ma'lumotlarni olishini va chiqish pinlarini faollashtirish uchun ishlatilishini bildiradi. Bu shuni anglatadiki, siz ma'lumotlarni o'zgartirayotganingizda ko'rmaysiz; Latch baland o'rnatilgunga qadar chiqish pinlarida hech qanday o'zgarish bo'lmaydi
6 -qadam: Chiqishni faollashtirishni baland qilib belgilang
- Qolgan uchta boshqaruv pimi bilan nima bo'lishidan qat'i nazar, Chiqishni yoqish yuqori darajaga o'rnatilmaguncha, pin chiqishi bo'lmaydi.
- Agar xohlasangiz, bu pinni har doim baland qilib qo'yish mumkin
Kaskad uchun ikkita pin bor, Os va Os1. Os tez ko'tariladigan soatlar uchun va Os1 sekin ko'tariladigan soatlar uchun. Bu pinni keyingi smeta registrining ma'lumot piniga ulang va bu chipdan to'kilish keyingi qatorga kiritiladi.
Displeyga murojaat qilish
Misol dasturida men 8 baytdan iborat qator_buffer qatorini yaratdim. Har bir bayt 8x8 displeyning bir qatoriga to'g'ri keladi, 0 -qator pastki va 7 -qator yuqori. Har bir qatorning eng kichik qismi o'ngda, eng muhim qismi chapda. Displeyni o'zgartirish, bu ma'lumotlar majmuasiga yangi qiymat yozish kabi oson, uzilishlar xizmati displeyni yangilaydi.
Dasturlash
Bu erda dasturlash batafsil muhokama qilinmaydi. Men sizni DAPA dasturlash kabelidan foydalanmaslik haqida ogohlantirgan bo'lardim, chunki siz 12 MGts chastotada ishlayotganda chipni dasturlashtira olmaysiz. Boshqa barcha standart dasturchilar ishlashi kerak (STK500, MKII, Dragon, parallel/ketma -ket dasturchilar va boshqalar). Sigortalar: sigortalar 12 MGts kristalhfuse: 0xC9lfuse: 0xEFdan foydalanish uchun dasturlashtirilganligiga ishonch hosil qiling.
Harakatda
Chipni dasturlagandan so'ng, displeyda "Salom dunyo!" Yozuvi bo'lishi kerak. Bu erda LED matritsasining harakatdagi videosi. Video sifati juda past, chunki men buni to'g'ri video yoki veb -kamera emas, balki raqamli kameramning video funksiyasi yordamida qildim.
5 -qadam: Modulli tushunchalar
Ushbu loyiha kengaytirilishi mumkin. Haqiqiy cheklovchi yagona omil - bu sizning elektr ta'minotingiz qancha oqim bilan ta'minlanishi. (Boshqa haqiqat - sizda qancha LED va ro'yxatga olish moslamasi bor).
Matematika
Men LEDlarni taxminan 15mA (5V-1.8vDrop/220ohms = 14.5mA) da boshqaraman. Bu shuni anglatadiki, men mic2981 drayveri (500mA/15mA = 33.3) bilan 33 tagacha ustunni haydashim mumkin. 8 ga bo'lingan holda, bu bizga 4 smenali registrlarni birlashtirishga imkon beradi. Shuni ham yodda tutingki, barcha 32 ustunning chapdan o'ngga cho'zilishi shart emas. Buning o'rniga siz 8x32 qatorli bo'lgani kabi simli 16x16 qatorni yaratishingiz mumkin. Buni 4 baytga o'tkazish orqali hal qilish mumkin edi. birinchi ikkisi 9 -chi qator uchun LEDlarga o'tadi, ikkinchi ikki bayt birinchi qatorga o'tadi. Ikkala qator ham bitta haydovchining bitta pinidan olinadi.
Kaskadli siljish registrlari
Amaldagi smenali registrlar kaskadli smenali registrdir. Bu shuni anglatadiki, siz ma'lumotlarni almashtirganingizda, Os pinida toshib ketish paydo bo'ladi. Shift registrlari to'plami bir -biriga ulanishi mumkin, chunki bu har bir yangi chip bilan 8 ta ustun qo'shib, ma'lumotlar piniga ulanishi mumkin. Shift registrlarining barchasi bir xil Latch, Clock va Chiqish pinlariga ulanadi. mikrokontroller. "Kaskadli" effekt birinchi smenali registrning Os ikkinchisining Ma'lumot piniga ulanganida hosil bo'ladi. Ustunlar sonini ko'paytirish uchun dasturni o'zgartirish kerak bo'ladi. Ma'lumotni saqlaydigan bufer ham, har bir ustun uchun ma'lumotni almashtiruvchi funksiya ham ustunlar sonini aks ettirishi uchun yangilanishi kerak, buning sxemasi misol sifatida quyida keltirilgan.
Ko'p qatorli haydovchilar
Qator drayveri (mic2981) 32 ta ustunni haydash uchun etarli oqim manbai bo'lishi mumkin. Agar siz 32 dan ortiq ustunni xohlasangiz nima bo'ladi? Ko'p sonli mikrokontroller pinlarini ishlatmasdan, bir nechta qatorli drayverlardan foydalanish mumkin bo'lishi kerak. Agar siz bir vaqtning o'zida yoqilishi mumkin bo'lgan ustunlardan ko'proq foydalanayotgan bo'lsangiz, qo'shimcha qator drayverlari kerakli oqimni berishi mumkin. Mikrokontrollerdan bir xil kirish pinlari ishlatiladi, shuning uchun satrlarni skanerlashni o'zgartirishga hojat yo'q. Boshqacha aytganda, har bir haydovchi 8x32 blokli satrlarni boshqaradi. 64 ta ustun bir xil Fizik qator joylashuviga ega bo'lishi mumkin bo'lsa ham, biz ketma -ket avtobuslarni ikkiga ajratamiz, bunda birinchi 32 ustunning 8 qatori uchun bitta haydovchi va ikkinchi 32 ustunning 8 qatori uchun ikkinchi haydovchi ishlatiladi. Buning sxemasi quyida misol tariqasida keltirilgan. Potentsial xato: 1. Bir xil ustunli bir nechta qatorli drayverlardan foydalanmang. Bu shuni anglatadiki, har bir smenali registr pin bir vaqtning o'zida bir nechta LEDni boshqaradi. Har bir qator drayveri uchun sizda 8 ta qarshilik (3k3) bo'lishi kerak, bir nechta qatorli haydovchilar uchun bitta to'plam ishlamaydi, chunki u eshiklarni almashtirish uchun kerakli tokni bermaydi.
Masalan
Men ilgari qurilgan matritsani kengaytirishga qaror qildim. Men yana 15 qatorga yana 7 qator qo'shdim, chunki men bu protobloardga sig'adigan narsam, men Instructables "Yorqin bo'lsin" deb nomlangan musobaqa haqida bilib oldim. Mana, mening bu boradagi fikrim. Yana bir bor aytaman, men ilgari videotasvirga olgan raqamli fotoapparat adolatga to'g'ri kelmaydi. Bu odamning ko'ziga juda yaxshi ko'rinadi, ayniqsa hamma LEDlar yonib tursa ham, lekin videoda unchalik yaxshi ko'rinmaydi. Bahramand bo'ling: bu kattaroq displey uchun manba kodi quyida keltirilgan.
6 -qadam: Xulosa
Mumkin bo'lgan qo'shimchalar
I2CI ikkita simli interfeys (I2C) pinlarini ushbu dizaynda ishlatilmay qoldirdi. Bu ikkita pinni ishlatishi mumkin bo'lgan bir nechta qiziqarli istiqbollar mavjud. I2C EEPROM qo'shilishi ancha katta xabarlarni saqlashga imkon beradi. Mega8 -ni I2C -ga mos keladigan displey haydovchisiga aylantirish uchun dasturlarni loyihalashtirish istiqboli ham mavjud. Bu sizning LED massivingizdagi ma'lumotlarni I2C avtobusi orqali o'tkazish uchun USB -ni yoqish moslamasiga ega bo'lish imkoniyatini ochadi. Tugmalar yoki IQ qabul qilish uchun ishlatilishi mumkin bo'lgan juda ko'p pinlar qolgan. Bu menyu tizimi orqali xabarlarni dasturlashtirishga imkon beradi, bu ko'rsatma uchun men faqat bir nechta displey funktsiyasini bajardim. Biri displeyga belgi yozadi, ikkinchisi belgini displeyga o'tkazadi. Esda tutish kerak bo'lgan asosiy narsa shundaki, siz chiroqlarda ko'rgan narsalar ma'lumotlar qatorida aks ettirilgan. Agar siz ma'lumotlar majmuasini o'zgartirishning aqlli usullarini o'ylab topsangiz, chiroqlar ham xuddi shunday o'zgaradi, ba'zi ajoyib imkoniyatlar ustunlardan grafik o'lchagichni yaratishni o'z ichiga oladi. Bu stereo bilan signal analizatori sifatida ishlatilishi mumkin. O'tkazish yuqoridan pastga yoki pastdan yuqoriga, hatto chapdan o'ngga ham amalga oshirilishi mumkin. Omad tilaymiz, dam oling!
7 -qadam: kuzatib boring
Tekshirish moslamasi bir necha oy davomida taxtada o'tirishiga ruxsat berganimdan so'ng, men ushbu prototipni birlashtirish uchun bir nechta elektron platalarni loyihalashtirdim va chizdim. Hammasi yaxshi o'tdi, men boshqacha qilmagan bo'lardim.
O'chirish platasining xususiyatlari
- Shift registrlari alohida taxtalarda joylashgan bo'lib, displey hajmini oshirish uchun ularni romashka bilan bog'lab qo'yish mumkin.
- Boshqarish panelida o'z quvvat regulyatori bor, shuning uchun uni 7v-30v (9v batareya yoki 12v tezgahli besleme) har qanday quvvat manbai boshqarishi mumkin, ikkalasi ham men uchun yaxshi ishlaydi.
- 6 pinli ISP sarlavhasi kiritilgan, shuning uchun mikrokontroldorni kartadan olib tashlamasdan qayta dasturlash mumkin.
- I2C avtobusidan kelajakda foydalanish uchun 4 pinli sarlavha mavjud. Bu eeprom uchun ko'proq xabarlarni saqlash yoki hatto uni boshqa mikrokontroller tomonidan boshqariladigan qul qurilmaga aylantirish uchun ishlatilishi mumkin (har kim RSS -ni belgilaydi?)
- Dizaynga 3 lahzali tugmacha kiritilgan. Men kelajakda dasturiy ta'minotni bu tugmalardan foydalanishni o'z ichiga olaman.
O'rnatish
Menga pleksiglas, burchakli qavslar, 6x32 mashinali vintlar, yong'oqlar va kir yuvish mashinalari, shuningdek teshiklarni o'ralgan kranni bering va men hamma narsani qila olaman.
"Yorqin bo'lsin" filmidagi ikkinchi mukofot!
Tavsiya:
Ardiuno bilan 32x8 Max7219 nuqta matritsasi: 5 qadam (rasmlar bilan)
Ardiuno bilan 32x8 Max7219 nuqta matritsasi: Hammaga salom, Max7219 asosidagi nuqta matritsasi 2020 yilda yangi emas, yaqin vaqtgacha o'rnatish jarayoni yaxshi hujjatlashtirilgan bo'lib, MajicDesigns -dan apparat kutubxonasini yuklab olish mumkin edi. va sarlavha fayllaridagi bir nechta satrlarni o'zgartirdi va FC16 joziba kabi ishladi. Bu qadar edi
Shift registrlari kaskadi 74HC595 Arduino va Ethernet orqali boshqariladi: 3 qadam
74HC595 Shift registrlari kaskadi Arduino va Ethernet orqali boshqariladi: Bugun men ikkita versiyada amalga oshirgan loyihani taqdim qilmoqchiman. Loyiha 74HC595 va 96 ta svetodiodli 12 ta registrli registrlardan, Wiznet W5100 Ethernet qalqoni bilan Arduino Uno taxtasidan foydalanadi. Har bir smenada registrga 8 ta LED ulangan. Raqamlar 0
IoT aqlli soatli nuqta matritsasi Wemosdan foydalaning ESP8266 - ESP matritsasi: 12 qadam (rasmlar bilan)
IoT aqlli soatli nuqta matritsasi Wemos-dan foydalaning ESP8266-ESP matritsasi: O'zingizning aqlli soatingizni yarating, u quyidagilarni bajarishi mumkin: Chiroyli animatsiya belgisiga ega soatni ko'rsatish Eslatma-1dan Eslatmaga-5ni ko'rsatish Taqvimni ko'rsatish Musulmonlarning namoz vaqtlarini ko'rsatish Ob-havo ma'lumotlarini ko'rsatish Yangiliklarni ko'rsatish Maslahatlarni ko'rsatish Bitcoin kursini ko'rsatish
NodeMCU bilan LED nuqta matritsasi (8x8) interfeysi: 6 qadam (rasmlar bilan)
LED nuqta matritsasi (8x8) NodeMCU yordamida: Salom ishlab chiqaruvchilar, men boshqa oddiy va ajoyib ko'rsatma beruvchiman, bu yo'riqnomada biz LED nuqta matritsasini (8x8) NodeMCU bilan qanday bog'lashni o'rganamiz
Arduino va Shift registrlari yordamida 48 x 8 diodli LED matritsali displey: 6 qadam (rasmlar bilan)
Arduino va Shift registrlaridan foydalangan holda 48 x 8 diodli matritsali displey. Salom! Hammaga salom! Bu mening birinchi yo'riqnomam va Arduino Uno va 74HC595 smenali registrlar yordamida 48 x 8 dasturlashtiriladigan LEDli matritsani yaratish haqida. Bu mening Arduino ishlab chiqish platasi bilan birinchi loyiham edi. Bu menga berilgan qiyinchilik edi