Mundarija:
- 1 -qadam: Tovarlarni oling …
- 2 -qadam: LED displeyiga to'g'ridan -to'g'ri ulaning
- 3 -qadam: Ko'rsatiladigan belgini ko'rsatish
- 4 -qadam: Shift reestri yordamida kirish -chiqish portlarini saqlang
- 5 -qadam: Xulosa
Video: Arduino va Shift registrli nuqta matritsali LEDni ishlatish: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:29
Siemens DLO7135 nuqta matritsali LED optoelektronikaning ajoyib bir qismidir. Xotira/dekoder/haydovchi bilan 5x7 nuqta matritsali aqlli displey (r) sifatida hisoblanadi. Bu xotira bilan bir qatorda, 96 belgidan iborat ASCII displeyi katta va kichik harflar, o'rnatilgan belgilar generatori va multipleksor, to'rt darajali yorug'lik qizg'inligi va 5V da ishlaydi. va 16 dollarlik popda, albatta, kerak. Sevimli mahalliy elektronika do'konida kunning yarmini o'tkazarkanman, bitta bo'lagi 1,50 dollarga to'la axlat qutisini topdim. Men do'kondan bir nechta narsalar bilan chiqdim. Bu ko'rsatma sizga AVR-ga asoslangan Arduino yordamida nuqta matritsali LEDlarga qanday ulanish va belgilarni ko'rsatish usullarini ko'rsatadi. Agar siz mening oldingi qo'llanmalarimdan birini o'qigan bo'lsangiz, men tez -tez eng oddiy echimni qo'llab -quvvatlayman, degan fikrga ega bo'lishingiz mumkin va agar men vaqti -vaqti bilan maqsadimga etishmay qolsam ham siz adashmaysiz.. Shunday qilib, men bu yo'riqnomada yana bir qadamni bosib o'taman va sizga bu katta, honkin nuqtali matritsali LEDlarni haydash uchun zarur bo'lgan kirish/chiqish portlarining sonini qanday kamaytirish mumkinligini ko'rsataman.
1 -qadam: Tovarlarni oling …
Ushbu kichik loyiha uchun sizga kerak bo'ladi:
- AVR-ga asoslangan Arduino yoki shunga o'xshash har qanday mikrokontroller. Bu ko'rsatmalar, ehtimol siz tanlagan MCUga moslashtirilgan bo'lishi mumkin.
- bir oiladagi DLO7135 nuqta matritsali LED yoki boshqa
- 74LS164, 74C299 yoki 74HC594 kabi 8-bitli o'tish registri
- non taxtasi
- ulash simlari, sim kesgichlar va boshqalar.
Lehimlaydigan dazmol kerak emas, lekin men uni keyinroq ishlataman; sizsiz o'tishingiz mumkin.
2 -qadam: LED displeyiga to'g'ridan -to'g'ri ulaning
Kichik qismlar ro'yxatini tuzing va LEDni oling. O'rta chiziqli truba bo'ylab, bir oz o'rtada joylashgan non paneliga qo'ying. Ulanishning birinchi qismi LEDning chap tomonida bo'ladi. Pin #1 uchburchak/o'q bilan ko'rsatilgandek, chap yuqori burchakda joylashgan. Men sizning LED -ni o'qiyotganingizda yoki ulayotganingizda PIN -kod funktsiyalarini ma'lumotnoma uchun joylashtirdim.
Chap tomon
Ijobiy va salbiy Chap yuqori qismdan boshlab Vccni 5V ga ulang. Chap tomonni to'liq tugatmaguningizcha, taxtangizni quvvatlantirmaslik yaxshiroqdir; Agar siz simlarni teshish uchun kichik teshiklarni ko'rmoqchi bo'lsangiz, LED yorqin bo'lishi mumkin. Pastki chap GNDni erga ulang. Chiroqni tekshirish, chipni yoqish va yozish Chapdan yuqoridan 2 -chi va 3 -chi - Chiroqni tekshirish va Chipni yoqish. Bu ikkalasi ham manfiy mantiq, ya'ni ular 0 o'rniga 1 mantiqiy holatida yoqilgan bo'lsa, pastdagi rasmim ustidan panjarali bo'lishi kerak, lekin men ularning hech biri uchun izoh bermaganman. LT -pin yoqilganda nuqta matritsasidagi har bir nuqta 1/7 nashrida yonadi. Bu ko'proq pikselli test, lekin LT pinining qiziq tomoni shundaki, u xotiradagi hech qanday belgini qayta yozmaydi, shuning uchun agar sizda bir nechta chiziqlar bo'lsa (ular ko'rish masofasi 20 fut), kursorga o‘xshatishi mumkin. O'chirilganligini tekshirish uchun uni 5V ga ulang. CE va WR pinlari ham manfiy mantiq bo'lib, bu aqlli qurilmaga yozish uchun yoqilishi kerak. Siz bu pinlarni mikrokontrolderingizning zaxira kiritish -chiqarish portlari bilan boshqarishingiz mumkin, lekin biz bu erda bezovta qilmaymiz. Ularni yoqish uchun ularni erga ulang. Yorqinlik darajasi DLO LED -lar oilasida to'rtta dasturlashtiriladigan yorqinlik darajasi mavjud:
- Bo'sh
- 1/7 Yorqinlik
- 1/2 Yorqinlik
- To'liq yorqinlik
BL1 HIGH va BL0 LOW - 1/2 yorqinlik. Ikkala HIGH ham to'liq nashrida. Uni xohlagan narsangizga o'rnating. Shunga qaramay, agar sizda kirish/chiqish portlari bo'lsa va bu siz uchun muhim bo'lsa, uni Arduino boshqarishi mumkin, bu chap tomonni o'rab oladi. Agar siz taxtangizga quvvat olib kelsangiz, LED yonib turganini ko'rishingiz kerak. Agar siz qiziqmoqchi bo'lsangiz, yorqinlikni boshqarish moslamalari va chiroq sinovlari bilan tanishing.
O'ng tomon
O'ng tomon to'liq ma'lumot portlaridan iborat. Pastki o'ngda, aniqrog'i, 8 yoki D0-pin, 7-bitli belgida eng kichik bitni ifodalaydi. O'ng yuqori burchak, 14 yoki D6 -pin eng muhim bitni ifodalaydi. Bu sizga LED -ga yozishda bitlarni qanday tartibda o'zgartirish kerakligini bilish imkonini beradi. Ma'lumot kiritish portlari ulangan bo'lsa, Arduino yoki AVR -da ettita bo'sh raqamli kirish -chiqish portlarini toping va ularni ulang. Ehtimol, siz AVR -dagi qaysi ma'lumot chiqarish porti LED -dagi qaysi ma'lumotlarni kiritish portiga o'tishini eslashni xohlaysiz, endi siz ba'zi ma'lumotlarni o'sha aqlli LED -ga o'tkazishga tayyormiz. Siz hali ham hayajondan titrayapsizmi? Men bilaman …
3 -qadam: Ko'rsatiladigan belgini ko'rsatish
Ushbu CMOS LED-da ishlatiladigan belgilar to'plami-bu 0x20 (o'nlik 32; bo'sh joy) dan boshlanadigan va 0x7F (o'nlik 127; o'chirish, LEDda kursor grafigi sifatida ko'rsatilgan bo'lsa-da) boshlanadigan ASCII.. Shunday qilib, LED displeyli belgiga ega bo'lish, ma'lumot chiqarish pinlaridagi mantiqni 1 yoki 0 ni bosishdan boshqa narsani anglatmaydi, so'ngra WR zarbasi bo'ladi, lekin men bu mashq uchun yuqorida aytib o'tganman. qaysi pinlar qaysi portlarga borishini esladim, to'g'rimi? Men PD [2..7] va PB0 ni tanladim (Arduino tilida 2 dan 8 gacha raqamli pinlar). Men odatda PD [0..1] dan foydalanishni taklif qilmayman, chunki men uni ketma -ket muloqotga FreeBSD qutisiga bag'ishlayman va Arduino va boshqalar. bu pinlarni FTDI USB aloqa kanaliga joylashtiring va "ular" deyishicha 0 va 1 pinlari ketma -ket aloqani o'rnatmasangiz, men hech qachon bu pinlarni oddiy raqamli kirish -chiqish sifatida ishlata olmaganman. Aslida, men PD0 va PD1 -dan foydalanishga urinib ko'rganimda va ular har doim yuqori ekanligini aniqlaganimda, men ikki kun davomida muammolarni tuzatishga harakat qildim. * yelka qisish* Klaviatura, qo'zg'aysan yoki qo'g'irchoq yoki boshqa terminaldan kirish kabi tashqi kirishni kiritish yaxshi bo'lardi (mening ArduinoTerm hozircha asosiy vaqtga tayyor emas …). Tanlov sizniki. Hozircha men LEDni kerakli belgini olish uchun kodni qanday olish kerakligini tasvirlab beraman. Manba kodi va Makefile -ni o'z ichiga olgan yuklab olish uchun zip -fayl mavjud, shuningdek, LED -ning belgilar to'plamini bosib chiqarishni ko'rsatadigan qisqa film ham bor. Videoning yomon sifati uchun uzr. Quyidagi kod "Mening ko'rsatmaga xush kelibsiz!" Qatorini bosib chiqaradi. keyin LED qo'llab -quvvatlaydigan barcha belgilar to'plami bo'ylab aylanadi.
DDRD = 0xFF; // ChiqishDDRB = (1 << DDB0); char msg = "Mening ko'rsatmalarimga xush kelibsiz!"; uint8_t i; for (;;) {for (i = 0; i <27; i ++) {Print2LED (msg ); _delay_ms (150); } uchun (i = 0x20; i <0x80; i ++) {Print2LED (i); _delay_ms (150); } Print2LED (& apos*& apos);}Portning chiqishi Print2Led () funktsiyasida ko'rib chiqiladi
voidPrint2LED (uint8_t i) {PORTD = (i << 2); agar (i & 0b01000000) PORTB = (1 <
Kod va Makefile quyidagi zip -faylga kiritilgan.
4 -qadam: Shift reestri yordamida kirish -chiqish portlarini saqlang
Shunday qilib, endi bizning mikrokontrollerimiz nuqta matritsali LEDga ma'lumotlarni yuborishi mumkin, lekin u sakkizta kirish -chiqish portidan foydalanadi. Bu ATtiny-ni 8-pinli DIP-paketda ishlatishni istisno qiladi, va hatto yangi Arduino-da ATmega328p bilan bitta LED uchun ko'p kirish-chiqish portlari mavjud. Shift registri deb nomlangan IC yordamida biz bu muammoni hal qila olamiz. Vitesni "almashtirish" uchun bir lahza … O'zgarish registrini uning nomini tashkil etuvchi ikkita so'z haqida o'ylash orqali yaxshiroq tushunish mumkin: "smena" va "registr". Shift so'zi ma'lumotlarning registr orqali qanday o'tishini bildiradi. Bu erda (umuman bizning Arduino va mikrokontrollerlardagidek) registr - bu ma'lumotlarni saqlaydigan joy. Bu "flip floplar" deb nomlangan ikkita barqaror holatga ega bo'lgan 1 yoki 0 bilan ifodalanishi mumkin bo'lgan raqamli mantiqiy davrlarning chiziqli zanjirini amalga oshirish orqali amalga oshiriladi. Shunday qilib, sakkizta flip flopni birlashtirib, siz ushlab turadigan qurilmaga ega bo'lasiz. va 8-bitli baytni ifodalaydi. Flip-floplarning bir nechta turlari va smenali registrlar mavzusidagi bir nechta variantlar (yuqoriga/pastga, hisoblagichlar va Jonson hisoblagichlariga qarang) kabi, ma'lumotlarga asoslangan smenali registrlarning bir nechta turlari mavjud. registrga joylashtirilgan va bu ma'lumotlar qanday chiqariladi. Shunga asoslanib, smenali registrlarning quyidagi turlarini ko'rib chiqing.
- Ketma -ket kirish / parallel chiqish (SIPO)
- Ketma -ket kirish / chiqish (SISO)
- Parallel kirish/ ketma -ket chiqish (PISO)
- Parallel kirish / parallel chiqish (PIPO)
SIPO va PISO diqqatga sazovordir. SIPO registrlari ma'lumotni ketma -ket oladi, ya'ni birin -ketin, avvalgi kirish bitini keyingi flip -flopga o'tkazadi va ma'lumotlarni bir vaqtning o'zida barcha kirishga yuboradi. Bu parallel konvertorga yaxshi ketma -ketlikni beradi. PISO siljish registrlari, aksincha, parallel kirishga ega, shuning uchun barcha bitlar birdaniga kiritiladi, lekin birma -bir chiqariladi. Va siz taxmin qildingizki, bu ketma -ket konvertorga yaxshi parallel bo'ladi. Kiritish -chiqish pinlarining sonini kamaytirish uchun biz foydalanmoqchi bo'lgan smenali registr bizga ilgari ishlatilgan 8 ta IO pinni olib, ularni bitta yoki bir juftga qisqartirish imkonini beradi, chunki biz qanday kiritishni nazorat qilishimiz kerak bo'ladi. bitlar. Shuning uchun biz foydalanadigan smenali registr - bu ketma -ket kirish / parallel chiqish. LED va Arduino o'rtasida smenali registrni ulash Shift registridan foydalanish oson. Eng qiyin narsa - bu ma'lumotlar chiqarish pimlarini va ikkilik raqamlar ICda qanday tugashini va oxir -oqibat LEDda qanday ko'rinishini tasavvur qilish. Buni rejalashtirish uchun bir oz vaqt ajrating. 1. 5Vni 14 -pinga (yuqori o'ngda) ulang va 7 -pinni (pastda chapda) pastga tushiring.2. Shift registrida ikkita ketma -ket kirish bor, lekin biz faqat bittasini ishlatamiz, shuning uchun ikkita pinni 5V3 ga ulang. Biz aniq pinni ishlatmaymiz (barcha chiqishlarni nol qilish uchun ishlatiladi), shuning uchun uni suzuvchi qoldiring yoki 5V4 ga hujum qiling. Shift registridan birini ulash uchun bitta raqamli IO portini ulang. Bu ketma -ket kirish pimi 5. Bitta raqamli IO portini 8 -pinga ulang (pastki o'ngda). Bu soat pimi.6. Ma'lumot liniyalarini Q0 dan Q6 gacha ulang. Biz faqat 7 bitdan foydalanmoqdamiz, chunki ASCII belgilar to'plami faqat etti bitdan foydalanadi. Men ketma -ket ma'lumotlarni chiqarish uchun PD2 va soat signallari uchun PD3 dan foydalanardim. Ma'lumot pinlari uchun men LEDni Q0 dan D6 ga uladim va shu tarzda davom ettirdim (Q1 dan D5 gacha, Q2 dan D4 va boshqalar). Ma'lumotni ketma -ket yuborayotganimiz uchun, biz yubormoqchi bo'lgan har bir belgining ikkilik ko'rinishini tekshirishimiz kerak bo'ladi, 1 va 0 ni ko'rib chiqamiz va ketma -ket satrda har bir bitni chiqaramiz. Quyidagi Makefile bilan bir qatorda dotmatrixled.c manbasining ikkinchi versiyasini qo'shdim. U belgilar to'plamini aylantiradi va barcha juft belgilarni ko'rsatadi (agar harf g'alati yoki juft bo'lishi mumkin deb o'ylash g'alati bo'lsa, ikkilik tasvir haqida bir zum o'ylab ko'ring). Barcha g'alati belgilarni ko'rsatish orqali qanday aylanishini tushunishga harakat qiling. Siz smenali registr, nuqta matritsali LED va Arduino o'rtasidagi aloqalarni sinab ko'rishingiz mumkin. LED va registr o'rtasida bir qancha boshqaruv funktsiyalari mavjud bo'lib, ular sizga ma'lumotlar qachon ko'rsatilishini aniq sozlash imkonini beradi, shuning uchun … biz sakkizta kirish-chiqish portini ishlatishdan ikkitasini ishlatishga o'tdik!
5 -qadam: Xulosa
Bu ko'rsatmada men DLO7135 nuqta matritsali LEDni va uni qanday ishlashini ko'rsatdim. Men navbatchi registr yordamida kerakli kirish -chiqish portlarini sakkiztadan ikkitagacha qanday kamaytirishni muhokama qildim. DLO7135 nuqta matritsali LEDni bir -biriga bog'lab, diqqatga sazovor va qiziqarli markalarni yaratish mumkin. Umid qilamanki, siz ushbu ko'rsatmalarni o'qib, zavq oldingiz! Agar biron -bir yaxshilanish yoki men taklif qila oladigan biror narsa bo'lsa, men ularni eshitganimdan xursandman!
Tavsiya:
Nuqta-nuqta kuchlanishli boshqariladigan osilator: 29 qadam
Nuqtadan-nuqtaga voltaj bilan boshqariladigan osilator: Salom! Siz loyihani topdingiz, u erda biz chindan ham arzon mikrochipni, CD4069 (yaxshi) olib, uning ba'zi qismlarini yopishtirib olamiz va kuchlanish nazorat qilinadigan juda foydali osilatorga ega bo'lamiz! Biz quradigan versiyada faqat arra yoki rampa to'lqin shakli mavjud, bu
Shift registrli 7 segmentli displey hisoblagichi: 3 qadam
Shift registrli 7 ta segmentli displey hisoblagichi: Agar siz smenali registrdan qanday foydalanishni va uning kod bilan ishlashini o'rganayotgan bo'lsangiz, bu boshlang'ich loyiha uchun eng zo'r. Bundan tashqari, agar siz 7 segmentli displeyda yangi bo'lsangiz, bu loyiha ajoyib boshlanishdir. Loyihani boshlashdan oldin, ishonch hosil qiling
Arduino va Led nuqta matritsali displey yordamida raqamli soat: 6 qadam
Arduino va Led nuqta matritsali displeydan foydalanadigan raqamli soat: Hozirgi vaqtda ishlab chiqaruvchilar va ishlab chiqaruvchilar loyihalarning prototipini tez rivojlantirish uchun Arduinoni afzal ko'rishadi. Arduino-bu ochiq manbali elektronika platformasi, uni ishlatish uchun qulay bo'lgan apparat va dasturiy ta'minotga asoslangan. Arduino juda yaxshi foydalanuvchilar hamjamiyatiga ega, bu loyihada
Arduino yordamida DIY LED nuqta matritsali aylantiruvchi displey: 6 qadam
DIY LED nuqta matritsali Arduino yordamida aylantiruvchi displey: Salom InstruThis mening birinchi ko'rsatmam. Bu yo'riqnomada men qanday qilib DIY LED nuqta matritsali aylantiruvchi displeyni Arduino -dan MCU sifatida yasashimni ko'rsataman. Bunday turdagi displeylar temir yo'l vokzali, avtovokzal, ko'chalar va boshqa joylarda ko'rsatiladi. Mana
Arduino UNO yordamida 4 ta 1 MAX7219 nuqta matritsali displey moduli bo'yicha qo'llanma: 5 qadam
Arduino UNO yordamida MAX7219 nuqta matritsali displey moduli bo'yicha 4 ta o'quv qo'llanma: Tavsif: LED matritsasini boshqarish osonmi? Bu 4 tasi 1 nuqta matritsali displey moduli sizga mos bo'lishi kerak. Butun modul har biri MAX7219 IC bilan jihozlangan to'rtta 8x8 RED umumiy katodli nuqta matritsasida keladi. Ishlayotgan matnni ko'rsatish juda yaxshi