Мазмұны:

MAX7219 жарықдиодты матрицалық жинақтау және тестілеу: 6 қадам (суреттермен)
MAX7219 жарықдиодты матрицалық жинақтау және тестілеу: 6 қадам (суреттермен)

Бейне: MAX7219 жарықдиодты матрицалық жинақтау және тестілеу: 6 қадам (суреттермен)

Бейне: MAX7219 жарықдиодты матрицалық жинақтау және тестілеу: 6 қадам (суреттермен)
Бейне: DIY 32*8 нүктелік матрицалық спектрлік сағат / RGB толық түсті дауыс белсендірілген 2024, Қараша
Anonim
Image
Image
Пакетті тексеріңіз
Пакетті тексеріңіз

Матрицалық дисплей-бұл матрица түрінде реттелген жарық диодтары бар дисплей құрылғысы. Бұл нүктелік матрицалық дисплейлер символды, графикалық, таңбаларды, алфавиттерді, цифрларды статикалық, сонымен қатар бірге көрсету қажет болатын қосымшаларда қолданылады. Айналдыру қозғалысы. Матрицалық дисплей 5x7, 8x8, 16x8, 128x16, 128x32 және 128x64 сияқты әр түрлі өлшемдерде шығарылады, онда сандар жолдар мен бағандарда светодиодты көрсетеді, сонымен қатар бұл дисплейлер қызыл, жасыл, сары, көк, Апельсин, Ақ.

Бұл нұсқаулықта мен MAX7219 драйвері бар 8x8 нүктелік матрицаны Arduino Uno -мен байланыстыратын боламын.

Жабдықтар

MAX7219

1 -қадам: пакетті тексеріңіз

Көріп отырғаныңыздай, менде драйверлер тақтасының smt нұсқасы бар, әр компонентті тексеру өте маңызды, себебі smd компоненттері өте кішкентай және оларды оңай жоғалтып алуға болады. оның өлшемі үшін smt нұсқасы.

2 -қадам: Бұл ерекше нүктелік матрица туралы аздап

Бұл ерекше нүктелік матрица туралы аз
Бұл ерекше нүктелік матрица туралы аз

бір модуль 8x8 нүктелік матрицалық жалпы катодты басқара алады.

Жұмыс кернеуі: 5 вольт

Өлшемдері: ұзындығы 3,2 см Х 3,2 см ені 1,3 см, төрт бұрандасы бар тесіктері, диаметрі 3 мм

Кіріс және шығыс интерфейсі бар модульдер, бірнеше модульдерді каскадтауды қолдау.

Деректердің IN және OUT терминалдары модульде көрсетілген.

3 -қадам: MAX7219 драйвері

MAX7219 драйвері
MAX7219 драйвері
MAX7219 драйвері
MAX7219 драйвері

MAX7219 - бұл 8х8 жарықдиодты MATRIX басқаруға арналған IC. IC-бұл микропроцессорларды (немесе микроконтроллерді) 8 цифрға дейінгі 7 сегментті сандық жарықдиодты дисплейлерге, штрих-графикалық дисплейлерге немесе 64 жеке жарықдиодты интерфейске қосатын жалпы катодты (жалпы теріс) дисплей драйверлері.

Ерекшеліктер мен сипаттамалар

Жұмыс кернеуінің диапазоны: +4,0 -ден +5,5 В -қа дейін

Ұсынылатын жұмыс кернеуі: +5В

Максималды кернеу: 6В

Әр сегментті түйреуіш арқылы өткізуге рұқсат етілген максималды ток: 100мА

Әрбір DIGIT жерге тұйықталуы арқылы рұқсат етілген максималды ток: 500мА

Қуатты аз тұтыну

Деректер сегментіне кешіктіру уақыты: 2.2мсек

Жұмыс температурасы: 0 ° C -тан +70 ° C -қа дейін

Сақтау температурасы: -65 ° C -тан +150 ° C -қа дейін

4 -қадам: Цикл

Цикл
Цикл
Цикл
Цикл

Схема өте қарапайым және еркек пен әйел арасындағы секіргіш сымдардың көмегімен жасалуы мүмкін. Тек түйреуішті орындаңыз және схеманы құрыңыз. Егер сіз матрицаның тұрақты қосымшасын жасасаңыз, оны кейінірек ПХД -ге жинай аласыз.

Pin конфигурациясы келесідей:

  • Arduino -дың 5V -ге дейінгі Vcc.
  • Gnd to Gnd Pin Arduino.
  • DIN - Arduino цифрлық 12 -ге дейін.
  • CS Arduino сандық пинге 11
  • CLU Ардуиноның 10 сандық пиніне өтіңіз.

5 -қадам: Кодекс

Бұл нұсқаулықта мен сізге екі түрлі код беремін. Матрицада бірнеше ағылшын алфавиті мен смайликтер пайда болады. Қалғандары 64 светодиодтың барлығын бір -бірлеп жарықтандырады. Жұмыс жасау үшін lledcontrol кітапханасын пайдалану керек.

Бұл ағылшын алфавиті мен смайликтерінің коды

#include int DIN = 12; int CS = 11; int CLK = 10; байт e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; байт d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; байт u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; байт c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; сегіз байт [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; байт s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; байт нүктесі [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; байт o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; байт 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 іске қосылған кезде қуатты үнемдеу режимінде (0, 15); // Жарықтықты максималды мәнге орнатыңыз lc.clearDisplay (0); // және дисплейді тазарту} void loop () {байт күлкі [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; нейтралды байт [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; байт қабағы [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (күлімсіреу); кешіктіру (1000); printByte (бейтарап); кешіктіру (1000); printByte (қабағын бұру); кешіктіру (1000); printEduc8s (); lc.clearDisplay (0); кешіктіру (1000); } жарамсыз printEduc8s () {printByte (e); кешіктіру (1000); printByte (d); кешіктіру (1000); printByte (u); кешіктіру (1000); printByte (c); кешіктіру (1000); printByte (сегіз); кешіктіру (1000); printByte (s); кешіктіру (1000); printByte (нүкте); кешіктіру (1000); printByte (c); кешіктіру (1000); printByte (o); кешіктіру (1000); printByte (m); кешіктіру (1000); } void printByte (байт таңбасы ) {int i = 0; for (i = 0; i <8; i ++) {lc.setRow (0, i, таңба ); }}

және барлық 64 жарықдиодты тестілеу коды

// Біз әрқашан кітапхананы қосуымыз керек#include «LedControl.h»

/*

Енді бізге жұмыс істеу үшін LedControl қажет. ***** Бұл түйреуіш сандар сіздің аппараттық құралдарыңызбен жұмыс істемеуі мүмкін ***** 12 -ші түйін DataIn -ге қосылады, CLK -пинге қосылады, LOAD -қа қосылады. Бізде тек MAX72XX бар. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * біз әрқашан дисплейдің жаңартуларын күтеміз */

белгісіз ұзақ кідіріс уақыты = 100;

жарамсыз орнату () {

/ * MAX72XX іске қосылған кезде қуатты үнемдеу режимінде, біз ояту қоңырауын шалуымыз керек */ lc.shutdown (0, жалған); / * Жарықтықты орташа мәнге қойыңыз */ lc.setIntensity (0, 8); / * және дисплейді тазарту */ lc.clearDisplay (0); }

/*

Бұл әдіс матрицада «Arduino» сөзінің таңбаларын бірінен соң бірін көрсетеді. (барлық таңбаларды көру үшін сізге кемінде 5x7 жарық диодтары қажет) */ void writeArduinoOnMatrix () {/ *мұнда */ байт a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110} таңбаларына арналған деректер берілген; байт r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; байт d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; байт u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; байт i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; байт n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; байт o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * енді оларды кішкене кідіріспен бірінен соң бірін көрсету */

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]); кешігу (кідіріс уақыты); 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]); кешігу (кідіріс уақыты); 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]); кешігу (кідіріс уақыты); 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]); кешігу (кідіріс уақыты); 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]); кешігу (кідіріс уақыты); 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]); кешігу (кідіріс уақыты); 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]); кешігу (кідіріс уақыты); 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); кешігу (кідіріс уақыты); }

/*

Бұл функция бірнеше LED -ті қатарынан жарықтандырады. Үлгі әр қатарда қайталанады. Үлгі қатар нөмірімен бірге жыпылықтайды. 4 -ші жол нөмірі (индекс == 3) 4 рет жыпылықтайды және т.б. lc.setRow (0, жол, B10100000); кешігу (кідіріс уақыты); lc.setRow (0, жол, (байт) 0); үшін (int i = 0; i

/*

Бұл функция бағандағы кейбір шамдарды жарықтандырады. Үлгі әр бағанда қайталанады. Үлгі баған нөмірімен бірге жыпылықтайды. баған нөмірі 4 (индекс == 3) 4 рет жыпылықтайды және т. lc.setColumn (0, col, B10100000); кешігу (кідіріс уақыты); lc.setColumn (0, col, (байт) 0); үшін (int i = 0; i

/*

Бұл функция матрицадағы әрбір жарықдиодты жарықтандырады. Светодиод жол нөмірімен бірге жыпылықтайды. 4 -жол нөмірі (индекс == 3) 4 рет жыпылықтайды және т. кешігу (кідіріс уақыты); lc.setLed (0, жол, col, true); кешігу (кідіріс уақыты); үшін (int i = 0; i

void loop () {

writeArduinoOnMatrix (); жолдар (); бағандар (); жалғыз (); }

6 -қадам: нәтиже

Image
Image
Шығу
Шығу
Шығу
Шығу
Шығу
Шығу

Толық бейнені мына жерден қараңыз: -MAX7219 8x8 LED MATRIX ЖИНАУ ЖӘНЕ ARDUINO көмегімен тестілеу.

Нәтижені көргенде, бұл ауыр жұмыс, әрине, жақсы нәтиже береді. Бұл тұрарлық !!

Менің youtube каналыма жазылыңыз: -Creative Stuff

Ұсынылған: