Mundarija:
- Ta'minotlar
- 1 -qadam: Paketni tekshiring
- 2 -qadam: Ushbu maxsus nuqta matritsasi haqida bir oz
- 3 -qadam: MAX7219 drayveri
- 4 -qadam: O'chirish davri
- 5 -qadam: Kod
- 6 -qadam: Chiqish
Video: MAX7219 LED nuqta matritsasini yig'ish va sinovdan o'tkazish: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Nuqta matritsali displey-bu matritsa ko'rinishida joylashtirilgan yorug'lik chiqaruvchi diodlarni o'z ichiga oluvchi displey qurilmasi, bu nuqta matritsali displeylar ramz, grafik, belgi, alifbo, raqamlarni statik, shuningdek bir vaqtda ko'rsatilishi kerak bo'lgan ilovalarda ishlatiladi. O'tish harakati. Matritsali displey 5x7, 8x8, 16x8, 128x16, 128x32 va 128x64 kabi turli o'lchamlarda ishlab chiqariladi, bu erda raqamlar LED va satrlarni ustunlar bilan ifodalaydi, shuningdek, bu displeylar qizil, yashil, sariq, ko'k, Oq, to'q sariq.
Ushbu yo'riqnomada men MAX7219 drayveri bo'lgan 8x8 nuqta matritsasini Arduino Uno -ga ulashni boshlayman.
Ta'minotlar
MAX7219
1 -qadam: Paketni tekshiring
Ko'rib turganingizdek, menda drayverlar panelining smt versiyasi bor, har bir komponentni tekshirish juda muhim, chunki smd komponentalari juda kichik va siz ularni osonlik bilan yo'qotishingiz mumkin. smt versiyasi uning hajmi uchun.
2 -qadam: Ushbu maxsus nuqta matritsasi haqida bir oz
bitta modul 8x8 nuqtali matritsali umumiy katodni boshqarishi mumkin.
Ishlash kuchlanishi: 5 v
Olchamlari: uzunligi 3,2 sm X 3,2 sm kengligi X 1,3 sm, to'rt vintli teshiklari, diametri 3 mm
Kirish va chiqish interfeyslari bo'lgan modullar, bir nechta modullarni kaskadli qo'llab -quvvatlash.
Ma'lumotning kirish va chiqish terminallari modulda ko'rsatilgan.
3 -qadam: MAX7219 drayveri
MAX7219 - bu 8x8 o'lchamli LED MATRIXni boshqarish uchun mo'ljallangan IC. IC-ketma-ket kiruvchi umumiy katodli (umumiy salbiy) displey drayverlari bo'lib, ular mikroprotsessorlarni (yoki mikrokontroldorni) 8 ta raqamli 7 segmentli raqamli LED displeylarga, bar-grafikli displeylarga yoki 64 ta alohida LED-larga ulashadi.
Xususiyatlar va spetsifikatsiyalar
Ishlash kuchlanish diapazoni: +4,0 dan +5,5 V gacha
Tavsiya etilgan ish kuchlanishi: +5V
Maksimal besleme zo'riqishida: 6V
Har bir segment pinidan o'tishga ruxsat berilgan maksimal oqim: 100mA
Har bir DIGIT topraklama pimi orqali ruxsat etilgan maksimal oqim: 500mA
Kam quvvat sarfi
Ma'lumotlarni segmentlarga kechiktirish vaqti: 2,2 sekund
Ishlash harorati: 0 ° C dan +70 ° C gacha
Saqlash harorati: -65 ° C dan +150 ° C gacha
4 -qadam: O'chirish davri
O'chirish juda oddiy va erkak va ayol o'tish simlari yordamida qurilishi mumkin. Faqat pinoutga rioya qiling va sxemani yarating. Agar siz matritsaga doimiy ariza yozayotgan bo'lsangiz, uni keyinchalik PCBga yig'ishingiz mumkin.
Pin konfiguratsiyasi quyidagicha:
- Arduino 5V pinli VC.
- Gnd to Gnd Pin Arduino.
- DIN raqamli pin 12 Arduino.
- CS Arduino raqamli pin 11 -ga
- CLU -ni Arduino -ning 10 -raqamli piniga o'tkazing.
5 -qadam: Kod
Mana bu yo'riqnomada men sizga ikki xil kodni beraman. Matritsada ingliz alifbolari va smayllari paydo bo'ladi. Ikkinchisi esa 64 ta LEDni birin -ketin yoqadi. Ishlash uchun lledcontrol kutubxonasidan foydalanish kerak.
Bu ingliz alifbolari va tabassumlari uchun kod
#kiritish DIN = 12; int CS = 11; int CLK = 10; bayt e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bayt d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; bayt u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bayt c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; sakkiz bayt [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bayt s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bayt nuqta [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bayt o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bayt m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX lc.setIntensity ishga tushirilganda quvvatni tejash rejimida (0, 15); // Yorqinlikni maksimal qiymatga qo'ying lc.clearDisplay (0); // va displeyni tozalang} void loop () {bayt tabassum [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; neytral bayt [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; baytni burish [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (tabassum); kechikish (1000); printByte (neytral); kechikish (1000); printByte (qoshlarini chimirib); kechikish (1000); printEduc8s (); lc.clearDisplay (0); kechikish (1000); } bo'sh printEduc8s () {printByte (e); kechikish (1000); printByte (d); kechikish (1000); printByte (u); kechikish (1000); printByte (c); kechikish (1000); printByte (sakkiz); kechikish (1000); printBayte (lar); kechikish (1000); printByte (nuqta); kechikish (1000); printByte (c); kechikish (1000); printByte (o); kechikish (1000); printBayte (m); kechikish (1000); } void printByte (bayt belgisi ) {int i = 0; uchun (i = 0; i <8; i ++) {lc.setRow (0, i, belgi ); }}
va barcha 64 LEDni sinab ko'rish uchun kod
// Biz doimo kutubxonani kiritishimiz kerak#include "LedControl.h"
/*
Endi biz bilan ishlash uchun LedControl kerak. ***** Bu pin raqamlari sizning apparatingiz bilan ishlamasligi mumkin ***** 12 -pin DataIn -ga ulangan, CLK -pin -11 ga ulangan, LOAD -ga ulangan. Bizda faqat bitta MAX72XX bor. */ LedControl lc = LedControl (12, 11, 10, 1);
/ * biz har doim displey yangilanishlari o'rtasida biroz kutamiz */
imzosiz uzoq kechikish = 100;
bo'sh o'rnatish () {
/ * MAX72XX ishga tushganda quvvatni tejash rejimida, biz uyg'onish qo'ng'irog'ini qilishimiz kerak */ lc.shutdown (0, noto'g'ri); / * Yorqinlikni o'rta qiymatlarga o'rnating */ lc.setIntensity (0, 8); / * va displeyni tozalang */ lc.clearDisplay (0); }
/*
Bu usul matritsada "Arduino" so'zining belgilarini ketma -ket ko'rsatadi. (butun belgilarni ko'rish uchun sizga kamida 5x7 LED kerak) */ void writeArduinoOnMatrix () {/ *bu erda */ bayt a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110} belgilarining ma'lumotlari ko'rsatilgan; bayt r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bayt d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; bayt u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; bayt i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bayt n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; bayt o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};
/ * endi ularni birma -bir kichik kechikish bilan ko'rsatish */
lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); kechikish (kechikish); lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); kechikish (kechikish); lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); kechikish (kechikish); lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); kechikish (kechikish); lc.setRow (0, 0, i [0]); lc.setRow (0, 1, i [1]); lc.setRow (0, 2, i [2]); lc.setRow (0, 3, i [3]); lc.setRow (0, 4, i [4]); kechikish (kechikish); lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); kechikish (kechikish); lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); kechikish (kechikish); lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); kechikish (kechikish); }
/*
Bu funksiya ketma -ket bir necha Ledni yoritadi. Shakl har bir qatorda takrorlanadi. Naqsh qator raqami bilan birga miltillaydi. qator raqami 4 (indeks == 3) 4 marta yonadi va hokazo */ void rows () {for (int row = 0; qator <8; qator ++) {kechikish (kechikish vaqti); lc.setRow (0, qator, B10100000); kechikish (kechikish); lc.setRow (0, qator, (bayt) 0); uchun (int i = 0; i
/*
Bu funksiya ustundagi ba'zi LEDlarni yoritadi. Shakl har bir ustunda takrorlanadi. Naqsh ustun raqami bilan birga miltillaydi. ustun raqami 4 (indeks == 3) 4 marta miltillaydi va hokazo */ void ustunlar () {for (int col = 0; col <8; col ++) {kechikish (kechikish vaqti); lc.setColumn (0, col, B10100000); kechikish (kechikish); lc.setColumn (0, col, (bayt) 0); uchun (int i = 0; i
/*
Bu funksiya matritsadagi har bir LEDni yoritadi. Led qator raqami bilan birga miltillaydi. qator 4 raqami (indeks == 3) 4 marta miltillaydi va hokazo. kechikish (kechikish); lc.setLed (0, qator, ustun, to'g'ri); kechikish (kechikish); uchun (int i = 0; i
void loop () {
writeArduinoOnMatrix (); qatorlar (); ustunlar (); bitta (); }
6 -qadam: Chiqish
To'liq videoni bu erda ko'ring: MAX7219 8x8 LED MATRIX Yig'ish va ARDUINO yordamida sinov.
Albatta, bu mashaqqatli mehnat, natijasini ko'rganingizda yaxshi natija beradi. Bunga arziydi !!
Mening youtube kanalimga obuna bo'ling:-Creative Stuff
Tavsiya:
Max7219 8x8 nuqta matritsasini "skiiiD" bilan qanday ishlatish kerak: 9 qadam
Max7219 8x8 nuqta matritsasini "skiiiD" bilan qanday ishlatish: Bu "skiiiD" orqali Max7219 8x8 nuqta matritsasining video yo'riqnomasi, boshlashdan oldin, skiiiD -dan qanday foydalanish bo'yicha asosiy qo'llanma. /Ishga kirishish-V
8x8 BIG LED matritsasini qanday qurish kerak (MAX7219 LED 10 mm): 9 qadam (rasmlar bilan)
Qanday qilib 8x8 BIG LED matritsasini (MAX7219 LED 10 mm) qurish mumkin: Siz displey sifatida 8x8 tayyor LED matritsasi bilan ishlaganmisiz? Ular har xil o'lchamlarda bo'ladi va ular bilan ishlash juda qiziq. Tayyor bo'lgan katta o'lcham taxminan 60 mm x 60 mm. Ammo, agar siz juda katta hajmli tayyor LED matritsasini qidirsangiz,
Kompyuterni mashina tilida kodlash va sinovdan o'tkazish: 6 qadam
Kompyuterni mashina tilida kodlash va sinovdan o'tkazish: Ushbu yo'riqnomada men sizga kompyuter dasturini mashina tilida qanday kodlash va sinovdan o'tkazishni ko'rsataman. Mashina tili - kompyuterlarning ona tili. 1 va 0 sonli satrlardan tashkil topganligi uchun uni odamlar oson tushunmaydi. Xavotir
Raspberry Pi -ni sinovdan o'tkazish: 6 qadam (rasmlar bilan)
"Raspberry Pi" ni sinovdan o'tkazish: Raspberry Pi birinchi marta chiqarilganda, men uni sotib olaman degan xayolga tushib qoldim, lekin oxir -oqibat men Arduino bilan ko'proq vaqt o'tkazdim, chunki ular elektronika loyihalariga ko'proq mos keladi. shiyponda va men shunday deb o'yladim
Epee Bodycordni sinovdan o'tkazish va ta'mirlash: 9 qadam (rasmlar bilan)
Epee Bodycordni sinovdan o'tkazish va ta'mirlash: Zamonaviy, Olimpiya uslubidagi qilichbozlik sportida ball elektr yordamida amalga oshiriladi. Elektr signali sizning qurolingizdan skor mashinasiga o'tishi uchun signal o'tishi kerak: qurolingizdagi sim orqali (qilichdan tashqari) yengingizni yuqoriga va pastga