Mundarija:
Video: ATtiny85 mikrokontrolerli MAX7219 boshqariladigan LED matritsasi 8x8 bilan qanday bog'lanish mumkin: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
MAX7219 tekshirgichi Maxim Integrated tomonidan ishlab chiqarilgan bo'lib, u mikrokontrolderlarni 64 ta alohida LED, 8 ta raqamli 7 segmentli raqamli LED displeylar, bar-grafikli displeylar va boshqalarga ulashadigan ixcham, ketma-ket kirish/chiqish umumiy katodli displey drayveri. -chip-bu BCD kod-B dekoderi, multipleksli skanerlash sxemasi, segment va raqamli drayverlar va har bir raqamni saqlaydigan 8 × 8 statik RAM.
MAX7219 modullari ATtiny85 yoki bizning holatimizda Tinusaur platasi kabi mikrokontrollerlar bilan ishlashda juda qulaydir.
1 -qadam: Uskuna
MAX7219 modullari odatda shunday ko'rinadi. Ularning bir tomonida kirish avtobusi, ikkinchi tomonida chiqish avtobuslari bor. Bu sizga murakkabroq sozlamalarni yaratish uchun 2 yoki undan ortiq modullarni, ya'ni birin -ketin zanjirband qilish imkonini beradi.
Biz foydalanadigan modullar 5 ta kichik o'tish moslamasi yordamida zanjirda ulanishi mumkin. Quyidagi rasmga qarang.
2 -qadam: Pinout va signallar
MAX7219 moduli 5 ta pinli:
- VCC - quvvat (+)
- GND-tuproq (-)
- DIN - ma'lumotlarni kiritish
- CS - Chip tanlash
- CLK - soat
Bu shuni anglatadiki, modulni boshqarish uchun ATtiny85 mikrokontroller tomonida 3 ta pin bor. Ular shunday bo'ladi:
- PB0 - CLK ga ulangan
- PB1 - CS ga ulangan
- PB2 - DIN -ga ulangan
Bu MAX7219 moduliga ulanish va uni dasturlash uchun etarli.
3 -qadam: Protokol
MAX7219 bilan aloqa qilish nisbatan oson - u sinxron protokoldan foydalanadi, ya'ni biz yuborgan har bir ma'lumot biti uchun ma'lumot bitining mavjudligini bildiruvchi soat tsikli mavjud.
Boshqacha qilib aytganda, biz bitlarga 2 parallel ketma -ketlikni yuboramiz - biri soat uchun, ikkinchisi ma'lumotlar uchun. Bu dasturiy ta'minot nima qiladi.
4 -qadam: dasturiy ta'minot
Ushbu MAX7219 moduli qanday ishlaydi:
- Biz uning ichki registriga bayt yozamiz.
- MAX7219 ma'lumotlarni sharhlaydi.
- MAX7219 matritsadagi LEDlarni boshqaradi.
Bu shuni anglatadiki, biz ularni yoritish uchun doimo LEDlar qatorini aylanib o'tishimiz shart emas - MAX7219 tekshiruvi bu haqda g'amxo'rlik qiladi. Shuningdek, u LEDlarning intensivligini boshqarishi mumkin.
Shunday qilib, MAX7219 modullaridan qulay tarzda foydalanish uchun bizga shu maqsadga xizmat qiladigan funktsiyalar kutubxonasi kerak.
Birinchidan, MAX7219 registrlariga yozish uchun bizga ba'zi asosiy funktsiyalar kerak.
- MAX7219 ga bayt yozish.
- MAX7219 ga so'z (2 bayt) yozish.
Tekshirgichga bitta bayt yozadigan funksiya shunday ko'rinadi:
void max7219_byte (uint8_t ma'lumotlari) {uchun (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // CLK ni LOW holatiga qo'ying, agar (ma'lumotlar & 0x80) // Ma'lumotlar MSB -ni niqoblang PORTB | = (1 << MAX7219_DIN); // DINni HIGH holatiga qo'ying PORTB & = ~ (1 << MAX7219_DIN); // DINni LOW PORTB | = (1 << MAX7219_CLK) ga o'rnating; // CLK ni HIGH ma'lumotlariga o'rnating << = 1; // chapga siljitish}}
Endi biz MAX7219 ga bayt yuborishimiz mumkin, biz buyruqlarni yuborishni boshlashimiz mumkin. Bu 2 bayt yuborish orqali amalga oshiriladi - 1 -chi ichki registr manzili uchun, 2 -chi biz yubormoqchi bo'lgan ma'lumotlar uchun.
MAX7219 tekshirgichida o'ndan ortiq registr mavjud.
Buyruq yoki so'zni yuborish, asosan, ketma -ket 2 baytni yuborishdir. Buni amalga oshirish funktsiyasi juda oddiy.
max7219_word void (uint8_t manzili, uint8_t ma'lumotlari) {PORTB & = ~ (1 << MAX7219_CS); // CS ni LOW max7219_byte ga sozlang (manzil); // max7219_byte manzilini yuborish (ma'lumotlar); // ma'lumotlarni yuborish PORTB | = (1 << MAX7219_CS); // CS -ni HIGH PORTB ga o'rnating & = ~ (1 << MAX7219_CLK); // CLK -ni LOW -ga o'rnating}
Bu erda biz CS signalini "HIGH" ga qaytaradigan qatorni ta'kidlash muhim - bu ketma -ketlikning oxiri - bu holda, buyruqning oxiri. Shunga o'xshash usul zanjirga ulangan bir nechta matritsani boshqarishda qo'llaniladi, keyingi bosqichda, biz LEDlarni yoqish va o'chirishni boshlashdan oldin, MAX7219 tekshirgichini ishga tushirish. Bu ma'lum registrlarga ma'lum qiymatlarni yozish orqali amalga oshiriladi. Qulaylik uchun, uni kodlashda biz ishga tushirish ketma -ketligini qatorga qo'yishimiz mumkin edi.
uint8_t initseq = {0x09, 0x00, // Dekodlash rejimining registri, 00 = 0x0a, 0x01, // intensivlik registri, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit reestri, 0x07 barcha satrlarni ko'rsatish uchun. 0x0c, 0x01, // O'chirish registri, 0x01 = Oddiy ishlash 0x0f, 0x00, // Displey-test registri, 0x00 = Oddiy ishlash};
Biz yuqoridagi 5 ta buyruqni ketma -ket manzil/ma'lumotlar jufti sifatida yuborishimiz kerak. Keyingi qadam - LEDlar qatorini yoritish.
Bu juda oddiy - biz faqat bitta buyruqni yozamiz, bu erda 1 -bayt - manzil (0 dan 7 gacha) va 2 -bayt - 8 bitli LEDlar qatoridagi 8 bit.
void max7219_row (uint8_t manzil, uint8_t ma'lumotlar) {if (manzil> = 1 && manzil <= 8) max7219_word (manzil, ma'lumotlar); }
Shuni ta'kidlash kerakki, bu faqat bitta matritsa uchun ishlaydi. Agar biz ko'proq matritsalarni zanjirda bog'lasak, ularning hammasi bir xil ma'lumotlarni ko'rsatadi. Buning sababi shundaki, biz buyruqni yuborganimizdan so'ng, biz CS signalini "HIGH" ga qaytaramiz, bu esa MAX7219 zanjiridagi barcha kontrollerlarning qulflanishiga olib keladi va oxirgi buyruq nima bo'lishini ko'rsatadi.
Tavsiya:
Arduino Uno bilan o'zaro bog'lanish GPS moduli: 7 qadam
Arduino Uno bilan o'zaro bog'langan GPS moduli: Salom! GPS modulini Arduino Uno kartasiga ulashni xohlaysizmi, lekin buni qanday qilishni bilmayapsizmi? Men sizga yordam berish uchun keldim! Ishni boshlash uchun sizga quyidagi qismlar kerak bo'ladi
BMG160 zarrachali 3 o'qli giroskop sensori bilan o'zaro bog'lanish: 5 qadam
3 o'qli BMG160 zarracha sensori bilan zarracha bilan o'zaro bog'lanish: Zamonaviy dunyoda yoshlar va bolalarning yarmidan ko'pi o'yinni yaxshi ko'radi va o'yinni texnik jihatdan qiziqtirganlarning hammasi harakatni sezishning muhimligini biladi. bu domen. Bizni ham xuddi shu narsa hayron qoldirdi
DJ uskunalari bilan qanday bog'lanish va ishga kirish: 8 qadam
DJ uskunalari bilan qanday bog'lanish va ishga kirish mumkin: Ushbu ko'rsatmaning maqsadi sizga, o'quvchiga, aylanuvchi stolni qanday o'rnatish va DJ uskunasini qanday ulash kerakligini ko'rsatishdir
BMP180 (Barometrik bosim sensori) Arduino bilan o'zaro bog'lanish: 9 qadam
BMP180 (Barometrik bosim sensori) Arduino bilan o'zaro aloqada: BMP-180-i2c interfeysli raqamli Barometrik bosim sensori. Boschning bu kichik sensori kichik o'lchamlari, kam quvvat sarfi va yuqori aniqlik bilan juda qulay. Sensor o'qilishini qanday talqin qilishimizga qarab, biz
Ichki chip bilan bog'lanish: 7 qadam
Ichki chipingiz bilan bog'lanish: Agar siz buni ko'rsatmali veb -saytda o'qiyotgan bo'lsangiz, deyarli kompyuterdan foydalanasiz. Ko'pchiligingiz bilganingizdek, kompyuterlar ishlaydigan va saqlaydigan barcha ma'lumotlarni qayta ishlash uchun mikrochiplardan foydalanadi. Siz hatto IC chiplarini ko'rgan bo'lishingiz mumkin