Mündəricat:
- Addım 1: Malları əldə edin …
- Addım 2: birbaşa LED ekrana qoşulun
- Addım 3: Göstəriləcək bir xarakterin təyin edilməsi
- Addım 4: Shift Qeydiyyatı ilə G/Ç Limanlarını qoruyun
- Addım 5: Xülasə
Video: Arduino və Shift Qeydiyyatı ilə Dot Matrix LED istifadə: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:49
Siemens DLO7135 Dot matrix LED, optoelektronikanın inanılmaz bir hissəsidir. Yaddaş/Dekoder/Sürücü ilə 5x7 Dot Matrix Ağıllı Ekran (r) olaraq faturalandırılır. Yaddaşla yanaşı, böyük və kiçik hərflərdən ibarət 96 xarakterli ASCII displeyi, quraşdırılmış xarakter generatoru və multipleksoru, dörd səviyyəli işıq intensivliyi var və hamısı 5V-də işləyir. və 16 dollarlıq bir popda, mütləq olmalıdır. Günün yarısını ən sevdiyim yerli elektronika mağazasında keçirərkən bir parça 1.50 dollara dolu bir çömçə tapdım. Bir neçə ilə mağazadan çıxdım. Bu təlimat, AVR əsaslı bir Arduino istifadə edərək, bu nöqtəli matris LED-lərinə necə qoşulacağınızı və simvolları necə göstərəcəyinizi göstərəcək. Əvvəlki bələdçilərimdən hər hansı birini oxumusunuzsa, tez -tez ən uyğun olmayan həll yolunun tərəfdarı olduğumu düşünə bilərsiniz və vaxtaşırı hədəfə çatmasam da yanılmırsınız.. Buna görə də bu təlimatda başqa bir addım atacağam və bu böyük, honkin 'dot matrix LED -lərini idarə etmək üçün lazım olan I/O portlarının sayını necə azalda biləcəyinizi sizə göstərəcəyəm.
Addım 1: Malları əldə edin …
Bu kiçik layihə üçün sizə lazım olacaq:
- bir Arduino və ya bənzəri kimi AVR əsaslı bir mikro nəzarətçi. Bu təlimatlar, ehtimal ki, seçdiyiniz MCU -ya uyğunlaşdırıla bilər.
- eyni ailədəki DLO7135 nöqtəli matris LED və ya digər
- 74LS164, 74C299 və ya 74HC594 kimi 8 bitlik keçid reyestri
- çörək taxtası
- bağlama teli, tel kəsicilər və s.
Bir lehimləmə dəmirinə ehtiyac yoxdur, baxmayaraq ki, sonra istifadə edirəm; onsuz keçə bilərsiniz.
Addım 2: birbaşa LED ekrana qoşulun
Kiçik hissələr siyahınızı tərtib edin və LED -i tutun. Çörək taxtasına bir az mərkəzləşdirilmiş şəkildə qoyun, orta xəttin yivini bükün. Bağlanmanın ilk hissəsi LED -in sol tərəfində baş verir. Pin #1, üçbucaq/oxla göstərildiyi kimi sol üst tərəfdə yerləşir. LED oxuyarkən və ya bağlayarkən istinad üçün pin funksiyalarını bir şəkilə qoydum.
Sol tərəf
Müsbət və Mənfi Sol üstdən başlayaraq Vcc -i 5V -ə qoşun. Sol tərəfi tamamlayana qədər lövhənizin işə salınmaması yaxşı bir fikirdir; telləri sıxmaq üçün kiçik deşiklər görməyə çalışırsınızsa LED parlaq ola bilər. Sol alt GND -ni yerə bağlayın. Lamp Testi, Chip Enable and Writing Sol üstdəki 2 -ci və 3 -cü Lamp Testi və Chip Enable. Bunlar hər ikisi də mənfi məntiqdir, yəni 1 -in yerinə məntiqi 0 -da olduqları zaman aktiv olduqlarını bildirirəm. Aşağıdakı şəklimin üstündə çubuqlar olmalıdır, amma bunların heç biri üçün qeyd etməmişəm. LT pin aktiv olduqda nöqtə matrisindəki hər nöqtəni 1/7 parlaqlıqda işıqlandırır. Bu daha çox piksel testidir, amma LT pininin maraqlı tərəfi, yaddaşda olan hər hansı bir xarakterin üzərinə yazılmamasıdır, buna görə də onlardan bir neçəsini bir araya gətirsəniz (20 fut baxış məsafəsi var), LT -ni vuraraq imleci kimi göstərə bilər. Əlil olduğunu təmin etmək üçün onu 5V -ə qoşun. CE və WR pinləri də mənfi məntiqdir və bu ağıllı cihazın yazılması üçün aktiv olması tələb olunur. Mikro nəzarətçinizdəki ehtiyat G/Ç portları ilə bu pinləri idarə edə bilərsiniz, ancaq burada narahat olmayacağıq. Onları aktiv saxlamaq üçün onları yerə bağlayın. Parlaqlıq səviyyələri DLO LED ailəsində dörd proqramlaşdırıla bilən parlaqlıq səviyyəsi var:
- Boş
- 1/7 Parlaqlıq
- 1/2 Parlaqlıq
- Tam Parlaqlıq
BL1 HIGH və BL0 LOW 1/2 parlaqlıqdır. Hər iki YÜK tam parlaqlıqdır. İstədiyinizi təyin edin. Yenə də ehtiyat hissənizdə G/Ç portlarınız varsa və bu sizin üçün kifayət qədər vacibdirsə, bu da Arduino tərəfindən idarə oluna bilər. Lövhəyə enerji gətirirsinizsə, LED işığının yandığını görməlisiniz. Maraqlanırsınızsa, onunla tanış olmaq üçün parlaqlıq nəzarət və lampa testi ilə oynayın.
Sağ tərəf
Sağ tərəf tamamilə məlumat limanlarından ibarətdir. Sağ alt, pin 8 və ya D0, 7 bitlik xarakterdə ən az əhəmiyyətli biti təmsil edir. Sağ üstdəki pin 14 və ya D6 Ən Əhəmiyyətli Biti təmsil edir. Bu, LED -ə yazarkən bitlərinizin hansı qaydada qarışdırılacağını bilir. Məlumat giriş portlarını bağladığınızda, Arduino və ya AVR -də yeddi boş rəqəmsal I/O portu tapın və onları birləşdirin. Yəqin ki, AVR -də hansı məlumat çıxışı portunun LED -də hansı məlumat giriş portuna getdiyini xatırlamaq istəyəcəksiniz. İndi bəzi məlumatları o ağıllı LED -ə itələməyə hazırsınız. Hələ həyəcandan titrəyirsən? Bilirəm ki, mən…
Addım 3: Göstəriləcək bir xarakterin təyin edilməsi
Bu CMOS LED-də istifadə olunan xarakter dəsti, 0x20-dən (ondalık 32; boşluq) başlayaraq 0x7F ilə bitən (ondalık 127; LED-də kursor qrafiki kimi göstərilsə də silin) ASCII-dir.. Belə ki, LED displeyə malik olmaq, məlumat çıxışı pinlərinizdəki məntiqi 1 və ya 0 -a basmaqdan başqa bir şeyə səbəb olmur, ümumiyyətlə WR nəbzini izləyir, amma mən bu məşq üçün bunu qeyd edirəm. hansı sancaqların hansı limanlara getdiyini xatırladınız, elə deyilmi? PD [2..7] və PB0 (Arduino dilində 2-dən 8-ə qədər rəqəmsal pinlər) seçdim. Normalda PD [0..1] istifadə etməyi təklif etmirəm, çünki bunu seriyalı ünsiyyətimi bir FreeBSD qutusuna və Arduino və s. bu pinləri FTDI USB rabitə kanalına yerləşdirin və 0 və 1 sancaqlarının "onlar" SAYLANMASINI söyləsə də, serial ünsiyyəti işə salmasanız, bu pinləri heç vaxt normal rəqəmsal G/Ç olaraq istifadə edə bilməmişəm. Əslində, PD0 və PD1 -dən istifadə etməyə çalışdığımda və hər zaman YÜKSƏK olduğunu gördüyüm zaman iki gün problemi həll etməyə çalışdım. * çiyin çəkmək* Klaviatura, itələyici və ya tənzimləyici açar və ya hətta terminaldan giriş kimi bir növ xarici girişə sahib olmaq yaxşı olardı (mənim ArduinoTerm hələ tam hazır vaxta hazır deyil …). Seçim sənindir. Hələlik, LED -ə istədiyiniz xarakteri almaq üçün kodu necə əldə edəcəyinizi izah edəcəyəm. Mənbə kodu və Makefile daxil olmaqla yükləmək üçün bir zip faylı var və LED -in xarakter dəstini çap etdiyini göstərən qısa bir film də var. Videonun keyfiyyətsiz keyfiyyəti üçün üzr istəyirik. Aşağıdakı kod "Təlimatçılığa xoş gəldiniz!" Sətrini yazır. sonra LED -in dəstəklədiyi bütün xarakter dəsti boyunca hərəkət edir.
DDRD = 0xFF; // ÇıxışDDRB = (1 << DDB0); char msg = "Təlimatçılığa xoş gəldiniz!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _delay_ms (150); } üçün (i = 0x20; i <0x80; i ++) {Print2LED (i); _delay_ms (150); } Print2LED (& apos*& apos);}Liman çıxışına Print2Led () funksiyasında diqqət yetirilir
voidPrint2LED (uint8_t i) {PORTD = (i << 2); əgər (i & 0b01000000) PORTB = (1 <
Kod və Makefile aşağıdakı bir zip faylına daxil edilmişdir.
Addım 4: Shift Qeydiyyatı ilə G/Ç Limanlarını qoruyun
İndi mikrokontrolörümüz nöqtəli matrisə məlumat göndərə bilər, ancaq səkkiz I/O portu istifadə edir. Bu, 8 pinli DIP paketində ATtiny istifadə etməyi və hətta bir LED üçün çoxlu I/O portu olan ATmega328p ilə işləyən daha yeni bir Arduino ilə birlikdə istifadə etməyi istisna edir. Bununla birlikdə, bir keçid qeydiyyatı adlanan bir IC istifadə edərək bunun öhdəsindən gələ bilərik. Vitesləri "dəyişdirmək" üçün bir an … Bir dəyişiklik qeydini, adını təşkil edən iki söz haqqında düşünməklə daha yaxşı başa düşmək olar: "shift" və "register". Dəyişmə sözü, məlumatların reyestrdən necə keçdiyini göstərir. Burada (ümumiyyətlə Arduino və mikrokontrolörlərimizdə olduğu kimi) bir qeyd məlumatları saxlayan bir yerdir. Bunu 1 və ya 0 ilə təmsil oluna bilən iki sabit vəziyyətə malik "flip floplar" adlanan xətti rəqəmsal məntiq zəncirini tətbiq etməklə edir. Beləliklə, səkkiz flip flopu bir araya gətirməklə tuta bilən bir cihazınız var. Bir neçə növ flip flop və növbə qeydləri mövzusunda bir neçə dəyişiklik olduğu üçün (yuxarı və aşağı sayıcıları və Johnson sayğaclarını düşünün), məlumatların necə qurulduğuna əsaslanaraq bir neçə növ qeyd qeydləri də mövcuddur. reyestrə daxil edilir və bu məlumatların necə çıxarılması. Buna əsaslanaraq, növbə qeydlərinin aşağıdakı növlərini nəzərdən keçirin:
- Serial Giriş / Paralel Çıxış (SIPO)
- Serial Giriş / Serial Çıxış (SISO)
- Paralel Giriş/ Serial Çıxış (PISO)
- Paralel Giriş / Paralel Çıxış (PIPO)
Diqqət çəkən iki şey SIPO və PISO -dur. SIPO reyestrləri məlumatları ardıcıl olaraq alır, yəni bir -birinin ardınca, əvvəlki giriş bitini növbəti flip flopa keçirir və məlumatları bir anda bütün girişlərə göndərir. Bu, paralel çeviriciyə gözəl bir serial edir. PISO keçid qeydləri, əksinə, paralel girişlərə malikdir, buna görə də bütün bitlər bir anda daxil edilir, ancaq bir -bir çıxır. Və bunu təxmin etdiniz, bu serial çeviriciyə gözəl bir paralellik yaradır. I/O pinlərinin sayını azaltmaq üçün istifadə etmək istədiyimiz keçid reyestri, əvvəllər istifadə etdiyimiz 8 IO pinini götürməyimizə və necə daxil edəcəyimizi nəzarət etməyimiz lazım ola biləcəyini nəzərə alaraq bir və ya bəlkə də bir cütə endirməyimizə imkan verərdi. bitlər. Buna görə də istifadə edəcəyimiz keçid reyestri Seri Giriş / Paralel Çıxışdır. LED və Arduino arasında keçid qeydini bağlayın Bir keçid qeydindən istifadə etmək asandır. Ən çətin hissəsi, məlumat çıxarmaq pinlərini və ikili rəqəmlərin IC -də necə bitəcəyini və nəticədə LED -də necə görünəcəklərini görselleştirmekdir. Bunu planlaşdırmaq üçün bir az vaxt ayırın. 1. 5 -ci pin 14 -ə (yuxarı sağ) və 7 -ci pin (aşağı sol) yerə endir. Vəziyyət qeydində iki ardıcıl giriş var, ancaq yalnız birindən istifadə edəcəyik, buna görə iki pin 5V3 -ə qoşun. Şəffaf pin istifadə etməyəcəyik (bütün çıxışları sıfırlamaq üçün istifadə olunur), buna görə üzən vəziyyətdə buraxın və ya 5V4 -ə hücum edin. Vəziyyət qeydlərindən birini bağlamaq üçün bir rəqəmsal IO portu bağlayın. Bu serial giriş pinidir.5. Bir rəqəmsal IO portunu pin 8 -ə bağlayın (sağ alt). Bu saat pinidir.6. Məlumat xətlərinizi Q0 -dan Q6 -ya bağlayın. Yalnız 7 bit istifadə edirik, çünki ASCII simvol dəsti yalnız yeddi bit istifadə edir. Serial məlumatlarımı çıxarmaq üçün PD2 və saat siqnalı üçün PD3 istifadə etdim. Məlumat pinləri üçün LED -də Q0 -ı D6 -ya bağladım və bu şəkildə davam etdim (Q1 -dən D5 -ə, Q2 -dən D4 -ə və s.). Verilənləri ardıcıl olaraq göndərdiyimiz üçün, göndərmək istədiyimiz hər bir xarakterin ikili təmsilçiliyini yoxlamaq məcburiyyətindəyik, 1 -ə və 0 -a baxaraq hər bir seriyanı satırda çıxarmalıyıq. Aşağıdakı Makefile ilə birlikdə dotmatrixled.c mənbəsinin ikinci versiyasını daxil etdim. Bu simvol dəsti boyunca hərəkət edir və bütün cüt simvolları göstərir (bir məktubun tək və ya cüt ola biləcəyini düşünmək qəribədirsə, bir anlıq ikili təsvir haqqında düşünün). Bütün tək simvolları göstərərək dövriyyəni necə edəcəyinizi anlamağa çalışın. Dəyişdirmə reyestri, nöqtə matrisli LED və Arduino arasındakı əlaqələri daha da sınaqdan keçirə bilərsiniz. Məlumatların göstərildiyi zaman nəzarətinizi dəqiq tənzimləməyinizə imkan verən LED və reyestr arasında bir neçə idarəetmə xüsusiyyəti var. Belə ki.. Səkkiz G/Ç limanından istifadə etməkdən iki istifadə etmək üçün getdik!
Addım 5: Xülasə
Bu təlimatda DLO7135 nöqtəli matris LEDini və bunun necə işləməsini təqdim etdim. Əlavə olaraq, bir keçid qeydindən istifadə etməklə lazım olan I/O portlarının sayını səkkizdən yalnız ikiyə endirməyi müzakirə etdim. DLO7135 nöqtəli matrisli LED, çox göz oxşayan və maraqlı marquees etmək üçün bir -birinə bağlana bilər. Ümid edirəm ki, bu təlimatı oxuyaraq əyləndiniz! Düşündüyüm hər hansı bir irəliləyiş varsa və ya bu və ya digər ibislərim haqqında vermək istədiyiniz təkliflər varsa, onları eşitməkdən məmnunam!
Tövsiyə:
Shift Qeydiyyatı ilə 7 Segment Display Counter: 3 Addım
Shift Qeydiyyatı ilə 7 Segment Ekran Sayğacı: Yalnız bir keçid qeydindən necə istifadə etməyi və kodla necə işlədiyini öyrənirsinizsə, bu mükəmməl bir başlanğıc layihəsidir. Əlavə olaraq, 7 seqmentli ekranda yenisinizsə bu layihə əla bir başlanğıcdır. Bu layihəyə başlamazdan əvvəl əmin olun
IoT Ağıllı Saat Dot Matrix Wemos istifadə ESP8266 - ESP Matrix: 12 addım (şəkillərlə)
IoT Ağıllı Saat Dot Matrix Wemos ESP8266-ESP Matrix istifadə edin: Öz IoT Ağıllı Saatınızı edə bilərsiniz: Gözəl bir animasiya simvolu ilə saatı göstərin Xatırlatıcı-1-dən Xatırlatıcı-5-ə qədər göstərin Təqvim Müsəlman Namaz vaxtlarını göstərin Hava məlumatlarını Göstər Xəbərlər göstər Bitcoin dərəcəsi göstəricisi
Max7219 8x8 Dot Matrix "skiiiD" ilə necə istifadə olunur: 9 addım
Max7219 8x8 Dot Matrix "skiiiD" ilə necə istifadə olunur: Bu, "skiiiD" vasitəsi ilə Max7219 8x8 Dot Matrixin video təlimatıdır. /Başlar-W
CloudX Microcontroller istifadə edərək Shift Qeydiyyatı ilə 7 Segmentli Ekran: 5 Addım
CloudX Microcontroller istifadə edərək Shift Qeydiyyatı ilə 7 Segmentli Ekran Araşdırma: Bu layihədə CloudX mikro nəzarətçi ilə yeddi seqmentli LED ekranın necə əlaqələndirilməsi ilə bağlı bir dərs dərc edirik. Yeddi seqmentli displeylər, bir çox quraşdırılmış sistemdə və sənaye tətbiqlərində göstəriləcək çıxış aralığının bilindiyi
74HC164 Shift Qeydiyyatı və Arduino: 9 addım
74HC164 Vəziyyət Qeydiyyatı və Arduino: Shift qeydləri rəqəmsal məntiqin çox vacib bir hissəsidir, paralel və serial dünyaları arasında yapışqan rolunu oynayır. Tel sayını azaldır, pin istifadə edir və hətta məlumatlarını saxlaya bilməklə cpu yükünüzü çıxarmağa kömək edir