Mundarija:

Asosiy shtamp 2 (bs2) va Charlieplexing yordamida 5x4 LED displey matritsasi: 7 qadam
Asosiy shtamp 2 (bs2) va Charlieplexing yordamida 5x4 LED displey matritsasi: 7 qadam

Video: Asosiy shtamp 2 (bs2) va Charlieplexing yordamida 5x4 LED displey matritsasi: 7 qadam

Video: Asosiy shtamp 2 (bs2) va Charlieplexing yordamida 5x4 LED displey matritsasi: 7 qadam
Video: PS-7 grade: Hoshiya, Burchak shtampi, Geometrik yasashlar 2024, Iyul
Anonim
Asosiy shtamp 2 (bs2) va Charlieplexing yordamida 5x4 LED displey matritsasi
Asosiy shtamp 2 (bs2) va Charlieplexing yordamida 5x4 LED displey matritsasi

Asosiy shtamp 2 va ba'zi qo'shimcha LEDlar o'tirganmi? Nega charlieplexing kontseptsiyasi bilan o'ynamaysiz va faqat 5 ta pin yordamida chiqishni yaratmaysiz.

Buning uchun men BS2e dan foydalanaman, lekin BS2 oilasining har qanday a'zosi ishlashi kerak.

1 -qadam: Charlieplexing: nima, nima uchun va qanday

Keling, nima uchun asosiy yo'ldan chiqaylik? Nega asosiy markali 2 bilan charlieplexingdan foydalanish kerak? --- Kontseptsiya isboti: charlieplexing qanday ishlashini bilib oling va BS2 haqida biror narsa bilib oling. Bu men uchun 8-pinli tezroq chiplardan foydalanganda foydali bo'lishi mumkin (ulardan faqat 5 tasi i/o bo'ladi).--- Foydali sabab: Asosan yo'q. BS2 juda sekin miltillovchi holda ko'rsatilmaydi. Charlieplexing nima? --- Charlieplexing-bu ko'p sonli mikroprosessorli kirish-chiqish pimlari bilan ko'p sonli LEDlarni haydash usuli. Men charlieplexing haqida www.instructables.com saytidan bilib oldim va siz ham shunday qilishingiz mumkin: Charlieplexing LEDlari- nazariya Bir nechta mikrokontroller pinlaridan qanday qilib ko'p LEDlarni haydash mumkin. Shuningdek, Vikipediyada: CharlieplexingHar qanday qilib men 5 ta kirgizgichli 20 ta ledni haydashim mumkin? --- Iltimos, "charlieplexing nima?" Bo'limidagi uchta havolani o'qing. Bu men har qachongidan ham yaxshiroq tushuntiradi. Charlieplexing har bir satr va har bir ustun uchun bitta kirish -chiqish piniga muhtoj bo'lgan an'anaviy multiplekslashdan farq qiladi (bu 5/4 displey uchun jami 9 ta kirish piniga to'g'ri keladi).

2 -qadam: Uskuna va sxema

Uskuna va sxematik
Uskuna va sxematik

Materiallar ro'yxati: 1x - Asosiy shtamp 220x - bir xil turdagi yorug'lik chiqaruvchi diodlar (LEDlar) (rang va kuchlanish pasayishi) 5x - rezistorlar (rezistor qiymati haqida quyida qarang) Yordamchi/Ixtiyoriy: BS2Momentary tugmachasini tiklash tugmasi sifatida dasturlash usuli 6v -9vBS2 versiyasiga qarab quvvat manbai (qo'llanmani o'qing) Sxema: Bu sxema mexanik tartib bilan birgalikda tuzilgan. Siz chap tomonda o'rnatilgan LEDlar panjarasini ko'rasiz, bu yo'nalish BS2 kodi yozilgan. E'tibor bering, har bir LED diodasi boshqasining katodiga ulangan anodga ega. Keyin ular beshta kirish -chiqish pinlaridan biriga ulanadi. O'zingizning LED -laringiz uchun ma'lumotlar jadvalini tekshiring yoki raqamli multimetrdagi LED sozlamalarini ishlatib, LED -larning kuchlanish pasayishini aniqlang. Keling, hisob -kitoblarni qilaylik: Besleme zo'riqishi - kuchlanish pasayishi / kerakli oqim = qarshilik qiymati oqimdan. Mening LED -larimda 1,6 voltli tushish bor va 20ma.5v - 1,6v /.02amps = 155 ohmda ishlaydi BS2 -ni himoya qilish uchun siz hisob -kitob bilan olingan rezistorning keyingi yuqori qiymatini ishlatishingiz kerak, bu holda 180ohm bo'ladi deb o'ylayman. Men 220 ohmdan foydalanardim, chunki mening ishlab chiqarish kartamda har bir kirish -chiqish pimi uchun rezistor o'rnatilgan. QAYD: Menimcha, har bir pinda qarshilik mavjud bo'lgani uchun, bu har bir svetodiodning qarshiligini ikki baravar oshiradi, chunki bitta pin V+, ikkinchisi Gnd. Agar shunday bo'lsa, rezistor qiymatlarini yarmiga kamaytirish kerak. Rezistorning haddan tashqari yuqori qiymatining salbiy ta'siri - bu diodli LED. Kimdir buni tasdiqlay oladimi yoki menga bu ma'lumotni yangilashim uchun menga PM yoki izoh qoldirishi mumkinmi? Men bu chipni lehimsiz non panelida ham ishlataman va "Circuit Serial Programming" (ICSP) sarlavhasini o'z ichiga olganman. Sarlavha 5 pinli, 2 dan 5 gacha pinlar DB9 ketma-ket kabelidagi 2-5 pinlarga ulanadi (1-pin ishlatilmaydi). E'tibor bering, ICSP sarlavhasini ishlatish uchun DB9 kabelidagi 6 va 7 -pinlar bir -biriga ulangan bo'lishi kerak. Qayta tiklash: bir lahzalik tugmachani tiklash ixtiyoriy. Bu bosilganda 22 -pinni erga tortadi.

3 -qadam: Breadboard

Breadboard
Breadboard
Breadboard
Breadboard

Endi matritsani non taxtasida qurish vaqti keldi, men har bir juftlikdan bir oyog'ini bir -biriga bog'lash uchun terminal chizig'idan, boshqa oyoqlarini ulash uchun kichik o'tish simidan foydalanardim. Bu batafsil rasmda batafsil tasvirlangan va bu erda batafsil tushuntirilgan: 1. Non paneli kengroq rasmga mos kelishi uchun yo'naltiring2. LED 1ni anod (+) o'zingizga va katod (-) sizdan uzoqda joylashtiring. LED 2 katodining ulanish terminali chizig'idagi Anod (+) bilan bir xil yo'nalishda joylashtiring. LED 1 anodini LED 2.5 katotiga ulash uchun kichik o'tish simidan foydalaning. BS2 I/U pinlari uchun avtobus chiziqlari sifatida, odatda, non panelidagi elektr shinalari bo'laklarini ishlataman. Chunki faqat 4 ta avtobus chizig'i bor, men P4 uchun terminal tasmasini ishlataman (beshinchi kirish -chiqish aloqasi). Buni quyidagi katta rasmda ko'rish mumkin. LED 1 katodining terminal tasmasini P0 avtobus chizig'iga ulang. Har bir juftlik uchun mos P* o'rnini bosadigan har bir toq raqamli LED uchun takrorlang (sxemaga qarang).7. LED 2 katodining terminal tasmasini P1 avtobus tasmasiga ulang. Har bir juftlik uchun mos P* o'rnini bosadigan har bir toq raqamli LED uchun takrorlang (sxemaga qarang).8. Har bir avtobus chizig'ini BS2 (P0-P4) mos keladigan kirish-chiqish piniga ulang.9. Sxemaga mos kelishini tekshirish uchun barcha ulanishlarni tekshiring.10. E'tibor bering: yaqinda siz 7-bosqichni bajarganimni ko'rmaysiz, chunki ikkinchi kirish-chiqish piniga toq raqamli LEDlar anodida. Shuni esda tutingki, juft raqamli LEDlarning katodi toq sonli LEDlarning anodiga ulangan, shuning uchun ulanish bir xil. Agar bu eslatma sizni chalg'itsa, unga e'tibor bermang.

4 -qadam: Dasturlash asoslari

Charlieplexing ishlashi uchun siz bir vaqtning o'zida bitta chiroqni yoqasiz. BS2 bilan ishlash uchun bizga ikkita asosiy qadam kerak: 1. OUTS buyrug'i yordamida pinlar uchun chiqish rejimlarini o'rnating.2. BS2 -ga DIRS buyrug'i yordamida qaysi pimlarni chiqish sifatida ishlatish kerakligini ayting Bu ishlaydi, chunki BS2 -ga qaysi pimlarni yuqori va pastda haydash kerakligini aytish mumkin va siz qaysi pinlar chiqishi aniqlanmaguncha buni kutib turadi. faqat LEDni o'chirishga harakat qilyapsiz. Agar sxemaga qarasangiz, P0 LED 1 ning katodiga (-), P1 esa o'sha LEDning Anodiga ulanganini ko'rishingiz mumkin. Bu shuni anglatadiki, biz P0 past va P1 yuqori haydashni xohlaymiz. Buni quyidagicha bajarish mumkin: "OUTS = % 11110", bu P4-P1ni yuqori va P0 pastlik bilan boshqaradi. (% Ikkilik raqamga rioya qilish kerakligini bildiradi. Eng past ikkilik raqam har doim o'ng tomonda bo'ladi. 0 = LOW, 1 = HIGH) BS2 bu ma'lumotlarni saqlaydi, lekin biz qaysi pinlar chiqishini e'lon qilmagunimizcha ularga amal qilmaydi. Bu qadam juda muhim, chunki bir vaqtning o'zida faqat ikkita pin chiqishi kerak. Qolganlari kirishlar bo'lishi kerak, bu esa pinlarni yuqori empedans rejimiga o'tkazadi, shunda ular hech qanday oqimni cho'ktirmaydi. Biz P0 va P1ni haydashimiz kerak, shuning uchun biz ularni "DIRS = % 00011" kabi kirishga qo'yamiz. (% Ikkilik raqamga rioya qilish kerakligini bildiradi. Eng past ikkilik raqam har doim o'ngda bo'ladi. 0) = INPUT, 1 = OUTPUT) Keling, buni bir nechta foydali kodga qo'shaylik: '{$ STAMP BS2e}' {$ PBASIC 2.5} DO OUTS = %11110 'Drive P0 past va P1-P4 yuqori DIRS = %00011' P0- ni o'rnating. Chiqish sifatida P1 va Kirish sifatida P2-P4 PAUSE 250 'LEDning DIRSda qolishi uchun pauza = 0' Barcha pinlarni kirishga o'rnating. Bu LEDni to'xtatib turish uchun PAUSE 250 'pauzasini o'chiradi

5 -qadam: Rivojlanish tsikli

Endi biz hamma ishlayotganiga ishonch hosil qilish uchun bitta pinli ish vaqtini ko'rdik. Siz ko'rasizki, har bir pin yoqilgandan so'ng, men barcha pinlarni kirishga aylantirish uchun "DIRS = 0" dan foydalanaman. Chiqish pimlarini o'chirmagan holda OUTSni o'zgartirsangiz, siz "ghosting" ga ega bo'lishingiz mumkin, bu erda chiroq yoqilmasligi kerak. har bir LED yonib -o'chishi o'rtasida atigi 1 millisekundlik pauza bo'ladi. Bu ko'rishning doimiyligini (POV) keltirib chiqaradi, bu esa barcha LEDlar yonib ketgandek ko'rinadi. Bu LEDlarni xira qilish effektiga ega, lekin biz bu matritsadagi belgilarni qanday aks ettirishimizning mohiyatidir. LEDlar foydalanish mumkin bo'lgan namunadir. Bu fayl mening birinchi urinishim. Siz ko'rasizki, faylning pastki qismida belgilar 5 qatorli ikkilik to'rt qatorda saqlanadi. Har bir satr o'qiladi, tahlil qilinadi va har bir LEDni yoqish kerak bo'lganda, kichik dastur chaqiriladi, bu kod 1-0 raqamlari bo'ylab aylanib yuradi. Agar siz uni ishga tushirishga urinib ko'rsangiz, u juda sekin yangilanish tezligiga duch kelganini, shuning uchun belgilarni tanib bo'lmaydigan darajada sekin yonib ketishiga olib keladi. Bu kod ko'p sabablarga ko'ra yomon. Birinchidan, beshta ikkilik raqam EEPROM -da 8 -raqamli ikkilikli xonani egallaydi, chunki barcha ma'lumotlar to'rt bitli guruhlarda saqlanadi. Ikkinchidan, qaysi pinni yoqish kerakligini hal qilish uchun ishlatiladigan SELECT CASE 20 ta ishni talab qiladi. BS2 har bir SELECT operatsiyasida 16 ta holat bilan cheklangan. Bu shuni anglatadiki, men bu cheklovni IF-THEN-ELSE bayonoti bilan buzishim kerak edi. Yaxshi yo'l bo'lishi kerak. Bir necha soat boshimni qirib tashlaganimdan keyin men buni aniqladim.

6 -qadam: Yaxshi tarjimon

Bizning matritsamizning har bir qatori 4 ta LEDdan iborat bo'lib, ularning har birini yoqish yoki o'chirish mumkin. BS2 ma'lumotni EEPROM -da to'rt bitli guruhlarda saqlaydi. Bu korrelyatsiya bizni ishimizni ancha yengillashtirishi kerak, bunga qo'shimcha ravishda, to'rtta bit 0-15 kasrli raqamlarga to'g'ri keladi, jami 16 ta imkoniyat. Bu EEPROM-da saqlangan 7 raqami: '7 %1111, %1001, %0010, %0100, %0100, har bir satrda o'ndan o'n ikkigacha ekvivalent bor, shuning uchun biz o'qiymiz. xotira qatoriga kiriting va uni to'g'ridan -to'g'ri SELECT CASE funktsiyasiga o'tkazing. Bu shuni anglatadiki, har bir belgini (1 = yoqilgan, 0 = o'chirilgan) o'qish uchun ishlatiladigan, odam o'qiy oladigan ikkilik matritsa, tarjimon uchun kalit hisoblanadi. 5 qatorning har biri uchun bir xil SELECT CASE dan foydalanish uchun men boshqa tanlovdan foydalanganman. DIRS va OUTS ni o'zgaruvchilar sifatida o'rnatish. Men birinchi navbatda belgining har besh satrida ROW1-ROW5 o'zgaruvchilarini o'qidim. Keyin asosiy dastur belgini ko'rsatish uchun pastki dasturni chaqiradi. Bu kichik dastur birinchi qatorni oladi va to'rtta mumkin bo'lgan OUTS kombinatsiyasini o'zgarmaydigan outp1-outp4ga va ikkita mumkin bo'lgan DIRS kombinatsiyasini direc1 va direc2 ga tayinlaydi. LEDlar yonib -o'chib turadi, qator hisoblagichi ortadi va qolgan to'rt qatorning har biri uchun xuddi shu jarayon bajariladi, bu birinchi tarjimon dasturidan ancha tezroq. Aytgancha, hali ham sezilarli miltillovchi bor. Videoni qarang, kamera miltillashni yanada yomonroq qiladi, lekin siz tushunasiz. Ushbu kontseptsiyani picMicro yoki AVR chip kabi tezroq chipga o'tkazish, bu belgilarni sezilarli miltillamasdan ko'rsatishga imkon beradi.

7 -qadam: Bu erdan qaerga borish kerak

Menda elektron platalar yasash uchun cnc tegirmon yoki o'yma materiallari yo'q, shuning uchun men bu loyihani o'tkazmayman. Agar sizda tegirmon bo'lsa va bu erdan oldinga siljish uchun hamkorlik qilishni xohlasangiz, menga xabar yuboring. Men ushbu loyiha uchun tayyor mahsulotni ko'rsatish uchun bundan ham baxtliroq materiallar va yuklarni to'lashdan xursand bo'lardim.

Boshqa imkoniyatlar: 1. Buni boshqa chipga ulang. Ushbu matritsali dizaynda har qanday chip bilan foydalanish mumkin, u 5 ta kirish-chiqish piniga ega, uch holatli (pinlar yuqori, past yoki kirish (yuqori impedansli) bo'lishi mumkin). 2. Tezroq chip (ehtimol AVR yoki picMicro) yordamida siz o'lchovni oshirishingiz mumkin. 20 pinli chip yordamida siz 8x22 o'lchamdagi displeyni charlieplex qilish uchun 14 ta pinni ishlatishingiz va qolgan pinlardan kompyuter yoki boshqa tekshirgichdan ketma -ket buyruqlarni qabul qilishingiz mumkin. Yana 20 ta pinli uchta chipdan foydalaning va siz 8x88 o'lchamdagi ekranni bir vaqtning o'zida 11 ta belgidan (har bir belgining kengligiga qarab) ega bo'lishingiz mumkin. Omad tilaymiz, dam oling!

Tavsiya: