Mundarija:

MAX7219 LED nuqta matritsasini yig'ish va sinovdan o'tkazish: 6 qadam (rasmlar bilan)
MAX7219 LED nuqta matritsasini yig'ish va sinovdan o'tkazish: 6 qadam (rasmlar bilan)

Video: MAX7219 LED nuqta matritsasini yig'ish va sinovdan o'tkazish: 6 qadam (rasmlar bilan)

Video: MAX7219 LED nuqta matritsasini yig'ish va sinovdan o'tkazish: 6 qadam (rasmlar bilan)
Video: Светодиодные матрицы на max7219 2024, Iyul
Anonim
Image
Image
Paketni tekshiring
Paketni tekshiring

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

Bu xususiy nuqta matritsasi haqida bir oz
Bu xususiy 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 uchun haydovchi
MAX7219 uchun haydovchi
MAX7219 uchun haydovchi
MAX7219 uchun haydovchi

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 davri
O'chirish davri
O'chirish davri
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

Image
Image
Chiqish
Chiqish
Chiqish
Chiqish
Chiqish
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: