Mundarija:

Shift registrlari yordamida LED matritsasi: 7 qadam (rasmlar bilan)
Shift registrlari yordamida LED matritsasi: 7 qadam (rasmlar bilan)

Video: Shift registrlari yordamida LED matritsasi: 7 qadam (rasmlar bilan)

Video: Shift registrlari yordamida LED matritsasi: 7 qadam (rasmlar bilan)
Video: Пробуем USB MIDI-контроллер Playtron 2024, Noyabr
Anonim
Shift registrlari yordamida LED matritsasi
Shift registrlari yordamida LED matritsasi
Shift registrlari yordamida LED matritsasi
Shift registrlari yordamida LED matritsasi
Shift registrlari yordamida LED matritsasi
Shift registrlari yordamida LED matritsasi

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

Matritsa
Matritsa
Matritsa
Matritsa
Matritsa
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

Boshqaruv apparati
Boshqaruv apparati
Boshqaruv apparati
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

Modulli tushunchalar
Modulli tushunchalar
Modulli tushunchalar
Modulli tushunchalar
Modulli tushunchalar
Modulli tushunchalar
Modulli tushunchalar
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

Kuzatish
Kuzatish
Kuzatish
Kuzatish
Kuzatish
Kuzatish
Kuzatish
Kuzatish

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: