Мазмұны:
- Жабдықтар
- 1 -қадам: пакетті тексеріңіз
- 2 -қадам: Бұл ерекше нүктелік матрица туралы аздап
- 3 -қадам: MAX7219 драйвері
- 4 -қадам: Цикл
- 5 -қадам: Кодекс
- 6 -қадам: нәтиже
Бейне: MAX7219 жарықдиодты матрицалық жинақтау және тестілеу: 6 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Матрицалық дисплей-бұл матрица түрінде реттелген жарық диодтары бар дисплей құрылғысы. Бұл нүктелік матрицалық дисплейлер символды, графикалық, таңбаларды, алфавиттерді, цифрларды статикалық, сонымен қатар бірге көрсету қажет болатын қосымшаларда қолданылады. Айналдыру қозғалысы. Матрицалық дисплей 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 - бұл 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 -қадам: нәтиже
Толық бейнені мына жерден қараңыз: -MAX7219 8x8 LED MATRIX ЖИНАУ ЖӘНЕ ARDUINO көмегімен тестілеу.
Нәтижені көргенде, бұл ауыр жұмыс, әрине, жақсы нәтиже береді. Бұл тұрарлық !!
Менің youtube каналыма жазылыңыз: -Creative Stuff
Ұсынылған:
4017 IC және RGB жарықдиодты жарықдиодты жарықдиодты қалай жасауға болады: 13 қадам
Жарық диодты машинаны 4017 IC және RGB светодиод арқылы қалай жасауға болады: Сәлем досым, бүгін мен 4017 IC және RGB LED светодиодты қолданып светодиодты іздеу схемасын жасаймын
Микроскоптарға арналған жарықдиодты жарықдиодты жарықдиодты жарықдиодты тақта!: 6 қадам (суреттермен)
Микроскоптар үшін DIY жарықдиодты жарықдиодты PCB! Мен электрониканы қолдануға арналған екінші микроскопты сатып алдым және сіз
DFRobot FireBeetle ESP32 және жарықдиодты матрицалық мұқабаны қолданатын 4 жобаның бірі: 11 қадам (суреттермен)
DFRobot FireBeetle ESP32 & LED матрицалық мұқабасын қолданатын 4 жоба: Мен осы жобалардың әрқайсысына нұсқаулық беруді ойладым, бірақ соңында мен ең үлкен айырмашылық әр жобаның бағдарламалық жасақтамасы деп ойладым. бір үлкен нұсқаулық! Аппараттық құралдар үшін бірдей
Brainwave компьютерлік интерфейсінің прототипі TGAM стартерлік жинағын дәнекерлеу және тестілеу: 7 қадам (суреттермен)
Brainwave компьютерлік интерфейсінің прототипі TGAM стартерлік жиынтығы дәнекерлеу және тестілеу: Неврологияны зерттеудің соңғы ғасыры біздің ми туралы, әсіресе мида нейрондар шығаратын электрлік сигналдар туралы білімдерімізді едәуір арттырды. Бұл электрлік сигналдардың заңдылықтары мен жиіліктерін өлшеуге болады
Arduino және Shift регистрі бар нүктелік матрицалық жарықдиодты қолдану: 5 қадам
Arduino мен Shift регистрінің көмегімен нүктелік матрицалық жарықдиодты қолдану: Siemens DLO7135 нүктелік матрицалық жарық диоды - бұл оптоэлектрониканың таңғажайып бөлігі. Ол жады/декодер/драйвері бар 5х7 нүктелік матрицалық интеллектуалды дисплей (r) ретінде есептеледі. Бұл жадпен қатар, оның жоғарғы және төменгі бөліктері бар 96 таңбалы ASCII дисплейі бар