Мазмуну:

MAX7219 LED Dot Matrix Ассамблеясы жана Тестирлөө: 6 Кадам (Сүрөттөр менен)
MAX7219 LED Dot Matrix Ассамблеясы жана Тестирлөө: 6 Кадам (Сүрөттөр менен)

Video: MAX7219 LED Dot Matrix Ассамблеясы жана Тестирлөө: 6 Кадам (Сүрөттөр менен)

Video: MAX7219 LED Dot Matrix Ассамблеясы жана Тестирлөө: 6 Кадам (Сүрөттөр менен)
Video: Control MAX7219 Dot Matrix LED Display With Telegram Using ESP8266 2024, Июль
Anonim
Image
Image
Топтомду текшериңиз
Топтомду текшериңиз

A Dot-Matrix Display-бул матрица түрүндө тегизделген жарык чыгаруучу диоддорду камтыган дисплей түзмөгү. Бул чекит матрицасы дисплей символ, графика, символдор, алфавиттер, цифралар статикалык, ошондой эле бирге көрсөтүлүшү керек болгон тиркемелерде колдонулат. Scotling motion. Dot Matrix Display 5x7, 8x8, 16x8, 128x16, 128x32 жана 128x64 сыяктуу ар кандай өлчөмдөрдө өндүрүлгөн, бул жерде сандар LEDлерди катарларда жана мамычаларда чагылдырат, Ошондой эле бул дисплейлер Кызыл, Жашыл, Сары, Көк, Апельсин, Ак.

Бул Нускамада мен MAX7219 драйвери бар 8x8 Dot Matrix интерфейсинен өтөм, Arduino Uno.

Жабдуулар

MAX7219

1 -кадам: Топтомду текшериңиз

Көрүп турганыңыздай, менде драйвер тактасынын smt версиясы бар, ар бир компонентти текшерүү абдан маанилүү, анткени smd компоненттери өтө кичинекей жана сиз аларды оңой эле жоготуп коё аласыз. анын өлчөмү үчүн smt версиясы.

2 -кадам: Бул өзгөчө чекит матрицасы жөнүндө бир аз

Бул өзгөчө чекит матрицасы жөнүндө бир аз
Бул өзгөчө чекит матрицасы жөнүндө бир аз

жалгыз модуль 8x8 чекиттүү матрицанын жалпы катодун айдай алат.

Иштөө чыңалуусу: 5 в

Өлчөмдөрү: узундугу 3.2 см X 3.2 см туурасы X 1.3 см, төрт бурамасы бар тешиктер, диаметри 3 мм

Киргизүү жана чыгаруу интерфейстери бар модулдар, бир нече модулдарды каскаддоо үчүн колдоо.

Маалымат IN жана OUT терминалдары модулда көрсөтүлгөн.

3 -кадам: MAX7219 драйвери

MAX7219 айдоочу
MAX7219 айдоочу
MAX7219 айдоочу
MAX7219 айдоочу

MAX7219 - бул 8x8 LED MATRIXти башкаруу үчүн иштелип чыккан IC. IC сериялык киргизүү жалпы катоддук (жалпы негативдүү) дисплей драйверлери болуп саналат, алар микропроцессорлорду (же микроконтроллерди) 8 разрядга чейин 7 сегменттүү сандык LED дисплейлерине, штрих-графикалык дисплейлерге же 64 жеке диоддорго интерфейс кылат.

Өзгөчөлүктөр жана өзгөчөлүктөр

Иштөө чыңалуу диапазону: +4.0 +5.5V

Сунушталган иштөө чыңалуусу: +5V

Максималдуу камсыздоо чыңалуусу: 6V

Максималдуу ток ар бир сегменттин пини аркылуу өтүүгө уруксат берилген: 100мА

Ар бир DIGIT жерге пин аркылуу кирүүгө уруксат берилген максималдуу ток: 500мА

Аз энергия керектөө

Маалыматтарды сегменттерге кечиктирүү убактысы: 2.2мсек

Иштөө температурасы: 0 ° Cден +70 ° Cка чейин

Сактоо температурасы: -65 ° Cдан +150 ° C га чейин

4 -кадам: Circuit

Circuit
Circuit
Circuit
Circuit

Район өтө жөнөкөй жана эркектен ургаачыга секирүүчү зымдардын жардамы менен курулушу мүмкүн. Жөн гана пинту ээрчип, схеманы куруңуз. Эгер сиз Matrix үчүн туруктуу арыз түзүп жатсаңыз, аны кийин ПКБга чогулта аласыз.

Pin Конфигурациясы төмөнкүчө:

  • Vdu 5V Pin Arduino.
  • Gnd to Gnd Pin Arduino.
  • Ардуинонун Digital Pin 12ге DIN.
  • CS Ардуинонун Digital Pin 11ге
  • Ардуинонун Digital Pin 10го CLK.

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

Бул Нускамада мен сизге эки башка кодду берем. Матрицада англис алфавиттери жана смайликтер пайда болот. Башка бирөө баардык 64 LED бирден жарык кылат. Сиз иштеши үчүн lledcontrol китепканасын колдонушуңуз керек.

Бул англис алфавиттеринин жана жылмаюуларынын коду

#incinde 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, character ); }}

жана бардык 64 LEDди сыноо коду

// Биз ар дайым китепкананы камтышыбыз керек#include "LedControl.h"

/*

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

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

кол коюлбаган узак кечигүү убактысы = 100;

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

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

/*

Бул ыкма "Arduino" сөзүнүн белгилерин матрицада биринин артынан бирин көрсөтөт. (бүт символдорду көрүү үчүн кеминде 5х7 лед керек) */ 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}; байт о [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); кечигүү (кечигүү убактысы); }

/*

Бул функция катары менен кээ бир Леддерди жарык кылат. Үлгү ар бир сапта кайталанат. Үлгү катар номери менен бирге ирмелет. катар саны 4 (индекс == 3) 4 жолу жыпылықтайт ж.б. */ void rows () {for (int row = 0; row <8; row ++) {delay (delaytime); 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

/*

Бул функция матрицанын ар бир LEDын жарык кылат. Лидер катар номери менен бирге ирмелет. катар саны 4 (индекс == 3) 4 жолу жыпылықтайт ж.б. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { кечигүү (кечигүү убактысы); lc.setLed (0, катар, col, true); кечигүү (кечигүү убактысы); үчүн (int i = 0; i

void loop () {

writeArduinoOnMatrix (); катарлар (); мамычалар (); жалгыз (); }

6 -кадам: Чыгуу

Image
Image
The Output
The Output
The Output
The Output
The Output
The Output

Толук видеону бул жерден көрүңүз: -MAX7219 8x8 LED MATRIX ASSEMBLY AND TESTING with ARDUINO

Ооба, мээнеттин баары, албетте, натыйжасын көргөндө абдан жакшы натыйжа берет. Бул татыктуу !!

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

Сунушталууда: