Mündəricat:
- Məqsədlər
- Təcrübə və Bacarıqlar
- İmtina və Kredit
- Addım 1: hissələr
- Parça siyahısı
- Ümumi hissələr
- Burada istifadə olunan xüsusi hissələr
- Parçalarla əlaqədar qeydlər
- Addım 2: Matrix
- Tikinti Məsələləri
- Matrisin qurulması
- Əhəmiyyətli
- Addım 3: Nəzarət Avadanlığı
- Nəzarət Avadanlığının Qurulması
- Addım 4: Proqram təminatı
- Hiylə
- Vəziyyət qeydləri: necə
- Ekrana müraciət
- Proqramlaşdırma
- Fəaliyyətdə
- Addım 5: Modul anlayışlar
- Riyaziyyat
- Zərbəli keçid qeydləri
- Çox sıra sürücülər
- Misal üçün
- Addım 6: Nəticə
- Mümkün əlavələr
- Addım 7: İzləyin
- Dövrə lövhəsinin xüsusiyyətləri
- Məclis
Video: Shift qeydlərindən istifadə edərək LED Matrix: 7 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Bu təlimat, İnternetdə mövcud olan digərlərindən daha tam bir izahatdır. Xüsusilə, bu, LED555 tərəfindən təlimatlandırılan LED Marquee -də mövcud olduğundan daha çox hardware izahı verəcəkdir.
Məqsədlər
Bu təlimat növbə qeydləri və yüksək sürücülərlə əlaqəli anlayışları təqdim edir. Bu anlayışları 8x8 LED matrisi ilə təsvir edərək, layihənizin tələb etdiyi ölçüyə və plana uyğunlaşmaq və genişləndirmək üçün sizə lazım olan vasitələri təqdim edəcəyimi ümid edirəm.
Təcrübə və Bacarıqlar
Bu layihəni orta çətinliklə qiymətləndirərdim:
- Əgər siz artıq mikrokontrolörlərin proqramlaşdırılması və LED -lərlə işləmək təcrübəniz varsa, bu layihəni başa çatdırmaq və daha böyük işıqlar aralığına çıxarmaq olduqca asan olmalıdır.
- Mikrodenetleyicilerle yeni başlamısınızsa və bir və ya iki LED yandırdıysanız, dostumuz google -un köməyi ilə bu layihəni tamamlaya bilərsiniz.
- Mikro nəzarətçilər və ya proqramlaşdırma ilə bağlı az və ya heç bir təcrübəniz yoxdursa, bu, ehtimal ki, özünüzü əldə etməli olduğunuzdan kənardır. Başqa bir neçə yeni layihəni sınayın və mikrokontrollerlər üçün proqram yazma təcrübəniz olanda geri qayıdın.
İmtina və Kredit
Birincisi, elektrik mühəndisi deyiləm. Səhv və ya ən yaxşı təcrübə olmayan bir şey görürsünüzsə, mənə bildirin və mən düzəliş edəcəyəm. Nə etdiyinizi bilməlisiniz və ya kompüterinizə, mikro nəzarətçinizə və hətta özünüzə zərər verə bilərsiniz. İnternetdən, xüsusən də forumlardan çox şey öyrəndim: https://www.avrfreaks.net ks0108 universal C kitabxanası ilə birlikdə gələn bir yazı dəsti. Bura baxın:
Addım 1: hissələr
Parça siyahısı
Ümumi hissələr
LED -lərdən 8x8 ölçülü bir şəbəkə düzəltmək və onları idarə etmək üçün sizə lazım olacaq:
- Seçdiyiniz 64 LED
- LEDlər üçün 8 rezistor
- 1 Sütunlar üçün qeyd qeydini dəyişdirin
- 1 Satırlar üçün sürücü dəsti
- Sürücü sistemini dəyişdirmək üçün 8 rezistor
- 1 mikro nəzarətçi
- Mikro nəzarətçi üçün 1 saat mənbəyi
- 1 prototip lövhəsi
- 1 enerji təchizatı
- Bağlama teli
Burada istifadə olunan xüsusi hissələr
Bu təlimat üçün aşağıdakılardan istifadə etdim:
- 64 yaşıl LED (Mouser hissəsi #604-WP7113GD)
- LEDlər üçün 8 220ohm 1/4 vatt müqavimət (Mouser hissəsi #660-CFS1/4CT52R221J)
- 1 HEF4794 növbəli qeydli LED sürücü (Mouser hissəsi #771-HEF4794BPN)
- 1 mic2981 Yüksək Gərginlikli Yüksək Cərəyan Mənbə Sürücü Dizisi (Digikey hissəsi #576-1158-ND)
- Sürücü sistemini dəyişdirmək üçün 8 3.3 kohm 1/4 vatt rezistorlar (Radio Shack hissəsi #271-1328)
- 1 Atmel ATmega8 mikro nəzarətçisi (Mouser hissəsi #556-ATMEGA8-16PU)
- Mikro nəzarətçi saat mənbəyi üçün 1 12MHz kristal (Mouser hissəsi #815-AB-12-B2)
- 1 2200 delikli prototip lövhəsi (Radio Shack hissəsi #276-147)
- Dönüştürülmüş ATX enerji təchizatı: Bu Təlimata baxın
- Qatı nüvəli 22-awg bağlayıcı tel (Radio Shack hissəsi #278-1221)
- Lehimsiz çörək taxtası (Radio Shack hissəsi #276-169 (artıq mövcud deyil, cəhd edin: 276-002)
- AVR Dragon (Mouser hissəsi #556-ATAVRDRAGON)
- Ecros Technologies tərəfindən Dragon Rider 500: Bu Təlimata baxın
Parçalarla əlaqədar qeydlər
Sıra və Sütun Sürücüləri: Yəqin ki, bu layihənin ən çətin hissəsi satır və sütun sürücülərini seçməkdir. Birincisi, standart 74HC595 keçid qeydinin burada yaxşı bir fikir olmadığını düşünürəm, çünki LED -lər vasitəsilə göndərmək istədiyimiz cərəyanı idarə edə bilmirlər. Bu səbəbdən HEF4794 sürücüsünü seçdim, çünki 8 ledin hamısı bir cərgədə açıldıqda cari hədiyyəni asanlıqla batıra bilər. Vəziyyət reyestri aşağı tərəfdədir (ledlərin əsas pimi). Birdən çox sütunu birləşdirmək üçün kifayət qədər cərəyan yarada bilən bir sürücü sürücüsünə ehtiyacımız olacaq. Mic2981 500 mA -a qədər güc təmin edə bilər. Bu vəzifəni yerinə yetirən digər bir hissə, fərqli bir istehsalçı tərəfindən eyni hissə olan UDN2981 (digikey hissəsi #620-1120-ND). Zəhmət olmasa bu tətbiqdə yaxşı işləyəcək digər yüksək səviyyəli sürücülər bilirsinizsə mənə bir mesaj göndərin. LED Matrix: Satır və sütun sürücülərinin hər birinin 8 sancağı olduğu üçün bu matris 8x8-dir. Daha böyük bir LED dizisi birdən çox matrisi bir -birinə bağlayaraq qurula bilər və "modul anlayışlar" addımında müzakirə ediləcək. Böyük bir sıra istəyirsinizsə, lazım olan bütün hissələri bir anda sifariş edin. 8x8, 5x7 və 5x8 LED matrisləri bir rahat paketdə mövcuddur. Bunları bir DIY matrisi ilə əvəz etmək asan olmalıdır. Ebay bunlar üçün yaxşı bir mənbədir. Mouser, 604-TA12-11GWA hissəsi kimi bəzi 5x7 ədəd var. Ucuz yaşıl LED -lərdən istifadə etdim, çünki sadəcə oynayıram və əylənirəm. Yüksək parlaqlığa, yüksək səmərəli LED-lərə daha çox xərcləmək, daha möhtəşəm görünüşlü bir ekran istehsal etməyinizə imkan verə bilər … bu, mənim üçün kifayət qədər yaxşıdır! Hardware Control: Matrix bir Atmel AVR mikrokontrolörü tərəfindən idarə olunur. Bunun üçün bir proqramçıya ehtiyacınız olacaq. Prototip hazırladığım üçün həm montaj, həm də istifadə təlimatları yazdığım Dragon Rider 500 -dən istifadə edirəm. Bu, prototip hazırlamaq üçün asan bir vasitədir və çox tövsiyə edirəm.
Addım 2: Matrix
Bu layihə üçün 5 mm LED və Radio Shack prototip lövhəsindən istifadə edərək öz LED matrisimi quracağam. Qeyd etmək lazımdır ki, ebay da daxil olmaqla bir neçə mənbədən 8x8 nöqtəli matrisli LED modulları əldə edə bilərsiniz. Bu təlimatla yaxşı işləməlidirlər.
Tikinti Məsələləri
LED -lər eyni istiqamətdə eyni açı ilə üzləşdikləri üçün hizalanmalıdır. Mənim üçün ən asan variant, LED axınının gövdəsini lövhəyə qoymaq və kiçik bir parça pleksiglas və sıxacla tutmaq idi. Pleksiglasın prototip lövhəsi ilə paralel olmasını təmin etmək üçün üzərində işlədiyim cərgədən bir neçə santimetr aralıda bir neçə LED qoydum. Satır və sütun sürücüsü seçimimizə görə, anodun (LED -in müsbət qurğusu) sıra ilə bağlanması və katodun (LED -in mənfi qurğusu) sütunla əlaqələndirilməsi lazımdır. Nəzarət Telləri Bu prototip üçün bərk nüvəli (tək keçiricili) bağlayıcı tel istifadə edirəm. Lehimsiz bir çörək taxtası ilə əlaqə qurmaq çox asan olacaq. Layihənizə uyğun fərqli bir bağlayıcı istifadə etməkdən çekinmeyin.
Matrisin qurulması
1. LED -lərin ilk sütununu prototip lövhəsinə yerləşdirin.2. Hər bir LED üçün polaritenizin doğru olub olmadığını iki dəfə yoxlayın, bunu sonradan başa düşsəniz düzəltmək çox çətin olacaq. LED -in hər iki ucunu lövhəyə lövhəyə qoyun. Düzgün hizalandıqlarını (qəribə bucaqlarda deyil) yoxlayın və katot uclarını kəsin. Anod qurğusunu kəsmədiyinizə əmin olun, daha sonra buna işarə edərək buraxın. İzolyasiyanı bərk nüvə telindən çıxarın. Bu tel parçasını hər bir katoda lövhə səviyyəsində lehimləyin.
- Bunu hər tərəfə vurdum, sonra geri döndüm və hər qovşağa bir az lehim əlavə etdim.
- Bu tel, nəzarət telləri əlavə etdiyimiz zaman asan bir interfeys yaratmaq üçün son LED -dən keçməlidir.
5. Bütün LEDləri yerinə qoyana və bütün sütun avtobusları lehimlənənə qədər 1-4-cü hissələri təkrarlayın. Sıra avtobusu yaratmaq üçün, eyni cərgədəki digər anod uclarına toxunmaq üçün bir neçə anod ucunu 90 dərəcə bir açı ilə bükün.
- Bunun ətraflı şəkilləri aşağıda verilmişdir.
- Qısa bir dövrə meydana gətirərək bunların kolon avtobusları ilə təmas etməməsinə diqqət yetirin.
7. Hər qovşağında telləri lehimləyin və artıq anod uclarını kəsin.
Son anodun son LED -ə yapışmasını buraxın. Bu, sıra sürücüsünün idarəetmə tellərini birləşdirmək üçün istifadə olunacaq
8. Bütün sıra avtobusları lehimlənənə qədər 6 və 7 -ci hissələri təkrarlayın. Nəzarət tellərini bağlayın.
- Satırlar üçün qırmızı, sütunlar üçün qara bərk nüvəli tel istifadə etdim.
- Hər sütun üçün bir tel və hər satır üçün bir tel bağlayın. Bu hər avtobusun sonunda asanlıqla edilə bilər.
Əhəmiyyətli
Bu LED matrisində heç bir cərəyan məhdudlaşdırıcı rezistor yoxdur. Bunu rezistorlar olmadan sınaqdan keçirsəniz, yəqin ki, LED -lərinizi yandıracaqsınız və bütün işlər boşa çıxacaq.
Addım 3: Nəzarət Avadanlığı
LED matrisimizin sütunlarını və satırlarını idarə etməliyik. Matris, anodların (LED -in gərginlik tərəfi) cərgələri, katotların (LED -in yer üzü) sütunları təşkil edəcəyi şəkildə qurulmuşdur. Bu, satır sürücümüzün cərəyana və sütun sürücüsümüzün batırılmasına ehtiyac duyduğu deməkdir. Sancaqlara qənaət etmək üçün sütunları idarə etmək üçün bir keçid qeydindən istifadə edirəm. Bu yolla, demək olar ki, məhdud olmayan sayda sütunu yalnız dörd mikro nəzarətçi sancağı ilə idarə edə bilərəm. Enable Output pin birbaşa gərginliyə bağlanarsa, yalnız üç istifadə etmək mümkündür. Dəyişdirmə qeydli HEF4794 LED sürücüsünü seçdim. Bu, standart 74HC595 -dən daha yaxşı bir seçimdir, çünki bütün 8 LED bir anda yandığı zaman mövcud cərəyanı asanlıqla batıra bilərəm. Şematik bir UDN2981 göstərir, inanıram ki, bu ikisi bir -birini əvəz edir. Bu sürücü 500 mA -a qədər cərəyan mənbəyi ola bilər. Bir anda yalnız 1 sıra sürdüyümüz üçün, bu çip üçün 33 sütuna qədər genişləndirmə üçün bir çox şans verir (bu barədə daha çox "modul anlayışlar" addımında).
Nəzarət Avadanlığının Qurulması
Bu təlimatlandırmaq üçün mən bu dövrəni yalnız taxtaya qoydum. Daha daimi bir həll üçün ya öz elektron lövhənizi taxmaq, ya da prototip lövhəsindən istifadə etmək istəyəcəksiniz. Sıra Sürücü
- Mic2981 (və ya UDN2981) çörək taxtasına yerləşdirin
- Pin 9 -u Gərginliyə qoşun (Bu sxematikada qarışıqdır)
- Pin 10 -u yerə bağlayın (sxematik olaraq bu qarışıqdır)
- 1-8 pinlərinə qoşulan 3k3 rezistorlar daxil edin
- ATmega8 (PD0-PD8) D Portundan 8 rezistora qoşulun
- LED matrisinin 8 sıra idarəetmə tellərini 11-18 pinlərinə bağlayın (unutmayın ki, ən aşağı LED sırasını Pin 18-ə, ən yüksək sıranı isə Pin 11-ə bağladım).
2. Sütun Sürücüsü
- Hef4794 -ü çörək taxtasına qoyun
- Pin 16 -ı gərginliyə bağlayın
- Pin 8 -i yerə bağlayın
- Pins 4-7 və 11-14-ə 220 ohm rezistorları bağlayın.
- LED matrisindən 8 sütunlu idarəetmə tellərini yeni bağladığınız 8 rezistora qoşun.
- Pin1 (mandalı) ATmega8 -in PC0 -na qoşun
- Pin2 -ni (Məlumat) ATmega8 -in PC1 -ə qoşun
- Pin3 (Saat) ı ATmega8 -in PC2 -yə qoşun
- Pin15 -i (Çıxışı Enable) ATmega8 -in PC3 -ə qoşun
3. Saat Kristal
Şemada göstərildiyi kimi 12MHz kristal və yük kondansatörlərini bağlayın
4. ISP
Proqramlaşdırma başlığını sxematik şəkildə göstərildiyi kimi bağlayın
5. Süzgəc kondansatörü və çəkmə müqaviməti
- ATmega8 -ə verilən gərginliyi süzmək ən yaxşısıdır. ATmega8 -in Pin 7 və 8 arasında 0.1uf kondansatör istifadə edin
- Təsadüfi sıfırlamalara səbəb ola biləcəyi üçün sıfırlama pimi üzən vəziyyətdə qalmamalıdır. Gərginliyə bağlamaq üçün bir rezistor istifadə edin, təxminən 1k hər şey yaxşı olmalıdır. Sxemada 10k rezistor istifadə etdim.
6. +5v tənzimlənən gücdən istifadə etdiyinizə əmin olun. Tənzimləyicinin dizaynı sizə aiddir.
Addım 4: Proqram təminatı
Hiylə
Bəli, hər şey kimi, bir hiylə də var. İşin hiyləsi budur ki, bir anda 8 -dən çox LED işıqlandırılmır. Bunun yaxşı işləməsi üçün bir az hiyləgər proqramlaşdırma lazımdır. Seçdiyim konsepsiya bir taymer fasiləsindən istifadə etməkdir. Ekranın kəsilməsinin sadə ingilis dilində necə işlədiyi budur:
- Taymer, müəyyən bir nöqtəyə qədər sayar, kəsildikdə xidmət qaydası işə salınır.
- Bu rutin, növbəti dəfə hansı cərgənin göstəriləcəyinə qərar verir.
- Növbəti sıra üçün məlumatlar buferdən baxılır və sütun sürücüsünə köçürülür (bu məlumatlar "bağlanmamış" olduğu üçün hələ göstərilmir).
- Sıra sürücüsü bağlanır, hazırda heç bir LED yanmır.
- Sütun sürücüsü, iki addım əvvəl keçdiyimiz məlumatları göstərmək üçün cari məlumatları "bağladı".
- Satır sürücüsü sonra göstərdiyimiz yeni sıraya cərəyan verir.
- Kəsmə xidməti qaydası sona çatır və proqram növbəti fasiləyə qədər normal axına qayıdır.
Bu çox tez baş verir. Fasilə hər 1 saniyədə bir atılır. Bu o deməkdir ki, bütün ekranı hər 8 saniyədə bir dəfə təzələyirik. Bu, 125Hz ətrafında bir ekran sürəti deməkdir. Parlaqlıq ilə bağlı bəzi narahatlıqlar var, çünki biz əsasən LED -ləri 1/8 iş dövrü ilə işləyirik (onlar 7/8 sönür). Mənim vəziyyətimdə görünən yanıb -sönməyən kifayət qədər parlaq bir ekran alıram. Tam LED displeyi bir sıra şəklində göstərilir. Fasilələr arasında sıra dəyişdirilə bilər (atomikliyi nəzərə alın) və növbəti fasilə zamanı ekranda görünəcək. AVR mikrokontrolörü üçün kod yazmağın xüsusiyyətləri və növbə qeydləri ilə danışmaq üçün kodun necə yazılacağı əhatə dairəsinin xaricindədir. bu öyrədici. Mənbə kodunu (C ilə yazılmış və AVR-GCC ilə tərtib edilmiş) və hex faylını birbaşa proqrama daxil etmişəm. Kodun hamısını şərh etdim, buna görə də məlumat dəyişikliyi reyestrinə necə daxil olacağınız və satır yeniləməsinin necə işlədiyinə dair hər hansı bir sualı aydınlaşdırmaq üçün istifadə etməlisiniz. ks0108 universal C kitabxanası. Bu kitabxananı burada tapa bilərsiniz:
Vəziyyət qeydləri: necə
Vəziyyət qeydləri ilə proqramlaşdırma haqqında bir az əlavə etmək qərarına gəldim. Ümid edirəm ki, bu, əvvəllər onlarla işləməyənlər üçün hər şeyi aydınlaşdıracaqdır. Nə edir Shift Qeydiyyatı bir teldən bir siqnal alır və bu məlumatı bir çox fərqli sancağa çıxarır. Bu vəziyyətdə, məlumatları qəbul edən bir məlumat teli və hansı məlumatların alındığına görə idarə olunan 8 pin var. İşlərin daha yaxşı olması üçün, hər növbəli qeyd üçün başqa bir keçid qeydinin giriş pininə qoşula bilən bir çıxış var. Buna kaskad deyilir və genişləndirmə potensialını demək olar ki, məhdudiyyətsiz bir perspektiv halına gətirir. Control PinsShift registrlərində 4 nəzarət pimi var:
- Mandal - Bu pin, yeni daxil edilən məlumatlara keçməyin vaxtı gəldikdə, qeyd qeydini bildirir
- Məlumat - 1 və 0 nömrələri, bu pin üzərində hansı pinlərin aktivləşdiriləcəyini növbənin qeydinə bildirir.
- Saat - Bu, mikrokontrolördən göndərilən nəbzdir ki, növbənin qeydinə məlumatların oxunmasını və ünsiyyət prosesində növbəti addıma keçməsini bildirir.
- Çıxışı Enable - Bu açma/söndürmə açarıdır, Yüksək = Açıq, Aşağı = Söndürülmüşdür
Təklifinizi yerinə yetirmək: Yuxarıdakı idarəetmə pinlərinin işində bir qəza kursu: Addım 1: Kilidi, Məlumatları və Saatı aşağı salın
Kilidi aşağıya endirmək, yazmaq istədiyimiz növbəni qeyd edir
Addım 2: Məlumat pinini Shift Qeydiyyatına göndərmək istədiyiniz məntiqi dəyərə qoyun Addım 3: Saat pinini yüksək olaraq təyin edin, Shift Qeydiyyatına cari Data pin dəyərində oxumasını söyləyin.
Hal -hazırda Shift Reyestrində olan bütün digər dəyərlər 1 pillə irəliləyəcək və Data pininin mövcud məntiqi dəyərinə yer açacaqdır
Addım 4: Saat pinini aşağıya qoyun və bütün məlumatlar növbə qeydinə göndərilənə qədər 2 və 3 -cü addımları təkrarlayın.
Növbəti Məlumat dəyərinə keçməzdən əvvəl saat pimi aşağı salınmalıdır. Bu pimi yüksək və aşağı arasında dəyişmək, növbənin qeyd prosesinin bir sonrakı mərhələyə nə vaxt keçəcəyini bilməli olduğu "saat nəbzini" yaradır
Addım 5: Mandalı yüksək səviyyəyə qoyun
Bu, keçid qeydinə köçürülmüş bütün məlumatları götürməsini və çıxış pinlərini aktivləşdirmək üçün istifadə etməsini bildirir. Bu o deməkdir ki, məlumat dəyişdikcə onu görməyəcəksiniz; Mandal yüksək olana qədər çıxış pinlərində heç bir dəyişiklik olmayacaq
Addım 6: Enable Çıxışı yüksək olaraq təyin edin
- Digər üç idarəetmə pimi ilə nə baş verdiyindən asılı olmayaraq Enable Çıxış yüksək olaraq təyin olunana qədər pin çıxışı olmayacaq.
- İstəyirsinizsə, bu pin hər zaman yüksək qala bilər
Kaskad etmək üçün istifadə edə biləcəyiniz iki pin var, Os və Os1. Os sürətli yüksələn saatlar üçündür, Os1 isə yavaş yüksələn saatlar üçündür. Bu pini sonrakı keçid qeydinin məlumat pininə bağlayın və bu çipdən daşma sonrakı hissəyə daxil ediləcək.
Ekrana müraciət
Nümunə proqramında row_buffer adlı 8 baytlıq bir sıra yaratdım. Hər bayt 8x8 ekranın bir sətirinə uyğundur, 0 -cı sıra alt və 7 -ci sıra üstdür. Hər cərgənin ən az əhəmiyyətli hissəsi sağda, ən əhəmiyyətli biti soldadır. Ekranı dəyişdirmək, bu məlumat silsiləsinə yeni bir dəyər yazmaq qədər asandır, fasilə xidməti rejimi ekranın təzələnməsinə diqqət yetirir.
Proqramlaşdırma
Proqramlaşdırma burada ətraflı müzakirə olunmayacaq. Dipa proqramlaşdırma kabeli istifadə etməməyiniz barədə xəbərdarlıq edərdim, çünki 12MHz -də işləyəndə çipi proqramlaşdıra bilməyəcəyinizə inanıram. Bütün digər standart proqramçılar işləməlidir (STK500, MKII, Dragon, Paralel/Serial proqramçılar və s.).
Fəaliyyətdə
Çipi proqramlaşdırdıqdan sonra ekranda "Salam Dünya!" Yazısı görünməlidir. İşdə LED matrisinin bir videosu. Uyğun bir video və ya veb kamerası deyil, rəqəmsal kameramın video xüsusiyyəti ilə etdiyim üçün video keyfiyyəti olduqca aşağıdır.
Addım 5: Modul anlayışlar
Bu layihə miqyaslıdır. Həqiqi məhdudlaşdıran yeganə faktor, enerji təchizatınızın nə qədər cərəyan verə biləcəyi olacaq. (Digər reallıq, nə qədər LED və qeyd dəyişdiricinizin mövcud olmasıdır).
Riyaziyyat
LEDləri təxminən 15mA (5V-1.8vDrop/220ohms = 14.5mA) ilə idarə edirəm. Bu, mic2981 sürücüsü ilə (500mA/15mA = 33.3) 33 sütuna qədər idarə edə biləcəyim deməkdir. 8 -ə bölündükdə görürük ki, bu, 4 növbəli qeydləri bir araya gətirməyimizə imkan verir. Həm də düşünün ki, bütün 32 sütunun soldan sağa uzanmasına ehtiyac yoxdur. Bunun əvəzinə, 8x32 dizisi ilə eyni şəkildə bağlanan 16x16 bir sıra yarada bilərsiniz. Bu, 4 bayt keçidlə həll ediləcəkdir. ilk ikisi 9 -cu sıradakı ledlərə, ikinci iki bayt isə birinci sıraya keçəcəkdi. Hər iki satır da satır sürücüsünün bir pinindən qaynaqlanacaq.
Zərbəli keçid qeydləri
İstifadə olunan qeyd qeydləri kaskadlı keçid qeydidir. Bu o deməkdir ki, məlumatları dəyişdiyiniz zaman daşma Os pinində görünür. Hər bir yeni çipə 8 sütun əlavə edərək, məlumat pininə Os pinini bir -birinə bağlaya biləcəyiniz üçün, çox faydalı olur, bütün keçid qeydləri eyni Latch, Clock və Enable Output pinlərinə qoşulacaq. mikro nəzarətçi. "Kaskad" effekti, birinci növbənin qeyd cihazının Os ikincisinin Məlumat pininə qoşulduqda yaranır. Artan sütun sayını əks etdirmək üçün proqramlaşdırma dəyişdirilməlidir. Həm məlumatı saxlayan bufer, həm də hər bir sütun üçün məlumatı dəyişdirən funksiya, sütunların sayını əks etdirmək üçün yenilənməlidir. Bunun şematik nümunəsi aşağıda verilmişdir.
Çox sıra sürücülər
Sıra sürücüsü (mic2981) 32 sütunu idarə etmək üçün kifayət qədər cərəyan mənbəyi ola bilər. 32 sütundan çox istəsən nə olar? Daha çox mikrokontrolör pinindən istifadə etmədən birdən çox sıra sürücülərindən istifadə etmək mümkün olmalıdır. LEDləri yandırmaq üçün kifayət qədər cərəyan əldə etmək üçün satır sürücülərinə ehtiyacımız var. Bir anda yandırmaq mümkün olandan daha çox sütun istifadə edirsinizsə, əlavə sıra sürücüləri lazım olan cərəyanı təmin edə bilər. Mikro nəzarətçidən eyni giriş pinləri istifadə olunur, buna görə satırların taranmasını dəyişdirməyə ehtiyac yoxdur. Başqa sözlə, hər bir sürücü 8x32 blok üçün satırları idarə edir. 64 sütunun eyni FİZİKSİ sıra yerləşdirilməsinə malik olmasına baxmayaraq, ilk 32 sütunun 8 satırı üçün bir sürücü və ikinci 32 sütunun 8 satırı üçün ikinci bir sürücü istifadə edərək, avtobus avtobuslarını ikiyə bölürük. Bunun sxematik nümunəsi aşağıda verilmişdir. Potensial səhvlər: 1. Eyni sayda sütun olan birdən çox satır sürücüsündən istifadə etməyin. Bunu etmək, hər bir keçid qeyd pininin bir anda birdən çox LED idarə etməsi deməkdir. Hər bir sıra sürücü üçün 8 müqavimət dəstinə (3k3) sahib olmalısınız, bir neçə sıra sürücü üçün bir dəst işləməyəcək, çünki qapıları dəyişdirmək üçün lazımi cərəyanı təmin etməyəcəkdir.
Misal üçün
Daha əvvəl qurduğum matrisi genişləndirmək qərarına gəldim. Mən cəmi 15 -ə 7 satır əlavə etdim, çünki bu protoboard -a sığdıra biləcəyim budur. Mən də Instructables -ın "Let It Glow" adlı bir yarışma keçirdiyini öyrəndim. İşdə bununla bağlı fikirlərimin videosu. Videonu çəkdiyim rəqəmsal kamera bir daha ədalətli deyil. Xüsusilə bütün LED -lərin yanıb -söndüyü yerlərdə insan gözünə çox gözəl görünür, ancaq videoda o qədər də yaxşı görünmür. Zövq alın: Bu daha böyük ekran üçün mənbə kodu aşağıda verilmişdir.
Addım 6: Nəticə
Mümkün əlavələr
I2CI, bu dizaynda istifadə edilməyən İki Telli İnterfeys (I2C) pinlərini tərk etdi. Bu iki sancağı istifadə edə biləcək bir neçə maraqlı perspektiv var. I2C EEPROM -un əlavə edilməsi daha böyük mesajların saxlanmasına imkan verəcək. Mega8 -i I2C -yə uyğun bir ekran sürücüsünə çevirmək üçün proqramlaşdırma dizaynının da perspektivi var. Bu, LED dizinizdəki məlumatları I2C avtobusunun üzərindən keçərək göstərmək üçün USB imkanlı bir cihaza sahib olma ehtimalını açar. Düymələr və ya IR qəbuledicisi üçün istifadə edilə bilən bir çox pin var. Bu, mesajların bir menyu sistemi vasitəsi ilə proqramlaşdırılmasına imkan verərdi. Biri sadəcə ekrana simvol yazır, digəri isə simvolları ekrana keçir. Yadda saxlamağınız vacib olan şey, işıqda gördüklərinizin məlumat silsiləsində təmsil olunmasıdır. Məlumat silsiləsini dəyişdirməyin ağıllı yolları ilə qarşılaşsanız, işıqlar da eyni şəkildə dəyişəcək. Bəzi heyrətləndirici imkanlar arasında sütunlardan bir qrafik sayğac yaratmaq da var. Bu bir stereo ilə bir siqnal analizatoru kimi istifadə edilə bilər. Kaydırma yuxarıdan aşağıya və ya aşağıdan yuxarıya, hətta soldan sağa da həyata keçirilə bilər. Uğurlar, əylənin!
Addım 7: İzləyin
Nəzarətçi sxeminin aylarla çörək taxtasında oturmasına icazə verdikdən sonra nəhayət bu prototipi bir araya gətirmək üçün bir neçə elektron lövhəni hazırladım və həkk etdim. Hər şey çox yaxşı keçdi, düşünmürəm ki, başqa cür edərdim.
Dövrə lövhəsinin xüsusiyyətləri
- Vəziyyət qeydləri, ekranın ölçüsünü artırmaq üçün bir -birinə zəncirvari bağlana bilən ayrı lövhələrdədir.
- İdarəetmə lövhəsinin öz güc tənzimləyicisi var, buna görə də 7v-30v (9v batareya və ya 12v tezgah təchizatı hər ikisi mənim üçün yaxşı işləyir) təmin edən hər hansı bir enerji mənbəyi ilə işlədilə bilər.
- 6 pinli ISP başlığı daxildir, beləliklə mikro nəzarətçi lövhədən çıxarmadan yenidən proqramlaşdırıla bilər.
- I2C avtobusunun gələcək istifadəsi üçün 4 pinli başlıq mövcuddur. Bu, daha çox mesaj saxlamaq və ya başqa bir mikro nəzarətçi tərəfindən idarə olunan bir qul cihazı etmək üçün bir eeprom üçün istifadə edilə bilər (hər kəs RSS işarələyir?)
- Dizaynda 3 anlıq düymə var. Gələcəkdə bu düymələrin istifadəsini daxil etmək üçün firmware proqramını dəyişdirə bilərəm.
Məclis
Mənə pleksiglas, açılı mötərizələr, 6x32 maşın vintləri, qoz -fındıq və yuyucular, həmçinin deşik açmaq üçün quraşdırılmış bir kranı verin və hər şeyi yarada bilərəm.
Let Let Glow -da İkinci Mükafat!
Tövsiyə:
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: 4 addım
Arduino istifadə edərək İnternetdən istifadə edərək bütün dünyanı idarə et: Salam, mən Rithikəm. Telefonunuzdan istifadə edərək internetə nəzarət edən bir led quracağıq. Arduino IDE və Blynk kimi proqramlardan istifadə edəcəyik. Bu çox sadədir və uğur qazansanız istədiyiniz qədər elektron komponenti idarə edə bilərsiniz
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək sürətlənməni izləyin: 6 addım
Python istifadə edərək Raspberry Pi və AIS328DQTR istifadə edərək Sürətləndirməni izləyin: Sürətləndirmə sonsuzdur, düşünürəm ki, Fizikanın bəzi qanunlarına görə. Sahilə çıxan ən sürətli məxluq, bir anda ən yüksək sürətindən istifadə edərək ovunu tutur
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar - Mikrokontrolördən istifadə edərək bir Quadcopter hazırlayın: 8 addım (şəkillərlə)
Arduino UNO istifadə edərək pilotsuz təyyarə necə etmək olar | Mikrokontrolördən istifadə edərək Quadcopter hazırlayın: Giriş Youtube Kanalımı Ziyarət Edin Drone almaq üçün çox bahalı bir gadget (məhsul) təşkil edir. Bu yazıda necə ucuz satacağımı müzakirə edəcəyəm? Ucuz qiymətə öz əlinizlə bunu necə edə bilərsiniz … Yaxşı Hindistanda bütün materiallar (mühərriklər, ESClər
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
48 X 8 Arduino və Shift Registrlərindən istifadə edərək LED Matrisli Ekran: 6 Addım (Şəkillərlə)
Arduino və Shift Registrlərindən istifadə edərək 48 X 8 Sürüşdürücü LED Matrix Ekranı .: Hamıya salam! Bu mənim ilk təlimatımdır və hamısı Arduino Uno və 74HC595 keçid qeydlərindən istifadə edərək 48 x 8 proqramlaşdırıla bilən Scrolling LED Matrix hazırlamaqdır. Bu, Arduino inkişaf lövhəsi ilə ilk layihəm idi. Mənə verilən bir problem idi