Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Suriin ang Package
- Hakbang 2: Isang Maliit Tungkol sa Partikular na Dot Matrix na ito
- Hakbang 3: Ang MAX7219 Driver
- Hakbang 4: Ang Circuit
- Hakbang 5: Ang Code
- Hakbang 6: Ang Output
Video: MAX7219 LED Dot Matrix Assembly at Pagsubok: 6 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Ang isang Dot-Matrix Display ay isang display aparato na naglalaman ng mga light emitting diode na nakahanay sa anyo ng matrix. Ang mga Dot matrix display na ito ay ginagamit sa mga application kung saan ang Simbolo, Graphic, Character, Alphabets, Numerals ay kailangang ipakita nang magkasama sa static pati na rin Pag-scroll ng paggalaw. Ang Display Matrix ng Dot ay gawa sa iba't ibang mga sukat tulad ng 5x7, 8x8, 16x8, 128x16, 128x32 at 128x64 kung saan ang mga numero ay kumakatawan sa mga LED sa mga hilera at haligi, Gayundin ang mga ipinakitang ito ay may iba't ibang mga kulay tulad ng Pula, berde, dilaw, asul, Orange, Maputi.
Sa Instructable na ito, dadaan ako sa pag-interfacing ng isang 8x8 Dot Matrix na mayroong isang driver na MAX7219 sa isang Arduino Uno. Magsimula na tayo.
Mga gamit
MAX7219
Hakbang 1: Suriin ang Package
Tulad ng nakikita mong mayroon akong isang smt bersyon ng driver board, napakahalagang i-verify ang bawat bahagi na kinakailangan dahil ang mga sangkap ng smd ay napakaliit ng laki at madali mong mawala ang mga ito. Mayroon ding bersyon ng dip na magagamit online ngunit ginamit ko ang bersyon ng smt para sa laki nito.
Hakbang 2: Isang Maliit Tungkol sa Partikular na Dot Matrix na ito
ang solong module ay maaaring magmaneho ng isang 8x8 dot matrix karaniwang cathode.
Operating boltahe: 5 v
Mga Dimensyon: haba 3.2 cm X 3.2 cm ang lapad X 1.3 cm ang taas, butas na may apat na turnilyo, ang diameter ng 3 mm
Ang mga module na may input at output interface, suporta para sa cascading ng maramihang mga module.
Ang mga terminal ng Data IN at OUT ay tinukoy sa modyul.
Hakbang 3: Ang MAX7219 Driver
Ang MAX7219 ay isang IC na idinisenyo upang makontrol ang isang 8x8 LED MATRIX. Ang IC ay serial input na karaniwang-cathode (Karaniwang Negatibo) na nagpapakita ng mga driver na nag-interface ng mga microprocessor (o microcontroller) sa 7-segment na numerong LED na nagpapakita ng hanggang sa 8 digit, mga bar-graph display, o 64 na indibidwal na LED.
Mga Tampok at pagtutukoy
Saklaw ng boltahe ng operating: +4.0 hanggang + 5.5V
Inirekumenda na operating boltahe: + 5V
Maximum na boltahe ng suplay: 6V
Pinapayagan ang maximum na kasalukuyang gumuhit sa bawat segment na pin: 100mA
Pinapayagan ang maximum na kasalukuyang sa pamamagitan ng bawat pin ng ground DIGIT: 500mA
Mababang pagkonsumo ng kuryente
Oras ng Pag-antala ng Data-to-Segment: 2.2mSec
Temperatura sa pagpapatakbo: 0 ° C hanggang + 70 ° C
Temperatura ng Imbakan: -65 ° C hanggang + 150 ° C
Hakbang 4: Ang Circuit
Ang circuit ay medyo simple at maaaring maitayo gamit ang lalaki hanggang babaeng jumper wires. Sundin lamang ang pinout at buuin ang circuit. Maaari mo itong mapagsama sa isang PCB kung gumagawa ka ng permanenteng aplikasyon para sa Matrix.
Ang Pag-configure ng Pin ay ang mga sumusunod:
- Vcc sa 5V Pin ng Arduino.
- Gnd kay Gnd Pin ng Arduino.
- DIN sa Digital Pin 12 ng Arduino.
- Ang CS sa Digital Pin 11 ng Arduino
- CLK sa Digital Pin 10 ng Arduino.
Hakbang 5: Ang Code
Dito sa Instructable na ito bibigyan kita ng dalawang magkakaibang mga code. Ang isa ay bubuo ng ilang mga alpabetong Ingles at smily sa Matrix. Ang isa pa ay gagawin ang lahat ng 64 LEDs na nag-iilaw nang isa-isa. Dapat mong gamitin ang lledcontrol library upang ito ay gumana.
Ito ang code para sa mga alpabetong Ingles at ngiti
# isama ang int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte eight [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; byte dot [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // Ang MAX72XX ay nasa power-save mode sa startup lc.setIntensity (0, 15); // Itakda ang ningning sa maximum na halaga lc.clearDisplay (0); // at i-clear ang display} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutral [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte frown [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (ngiti); pagkaantala (1000); printByte (walang kinikilingan); pagkaantala (1000); printByte (nakasimangot); pagkaantala (1000); printEduc8s (); lc.clearDisplay (0); pagkaantala (1000); } walang bisa printEduc8s () {printByte (e); pagkaantala (1000); printByte (d); pagkaantala (1000); printByte (u); pagkaantala (1000); printByte (c); pagkaantala (1000); printByte (walong); pagkaantala (1000); printByte (mga); pagkaantala (1000); printByte (tuldok); pagkaantala (1000); printByte (c); pagkaantala (1000); printByte (o); pagkaantala (1000); printByte (m); pagkaantala (1000); } void printByte (byte character ) {int i = 0; para sa (i = 0; i <8; i ++) {lc.setRow (0, i, character ); }}
at ang code para sa pagsubok sa lahat ng 64 LEDs
// Palagi naming isasama ang library # isama ang "LedControl.h"
/*
Ngayon kailangan namin ng isang LedControl upang gumana. ***** Ang mga pin na numero ay malamang na hindi gagana sa iyong hardware ***** pin 12 ay konektado sa DataIn pin 10 ay konektado sa CLK pin 11 ay konektado sa LOAD Mayroon lamang kaming isang MAX72XX. * / LedControl lc = LedControl (12, 11, 10, 1);
/ * Palagi kaming naghihintay nang kaunti sa pagitan ng mga pag-update ng display * /
unsigned matagal na pagkaantala = 100;
walang bisa ang pag-setup () {
/ * Ang MAX72XX ay nasa mode ng pag-save ng kuryente sa pagsisimula, kailangan naming gumawa ng isang tawag sa paggising * / lc.shutdown (0, hindi totoo); / * Itakda ang ningning sa isang katamtamang halaga * / lc.setIntensity (0, 8); / * at i-clear ang display * / lc.clearDisplay (0); }
/*
Ang pamamaraang ito ay ipapakita ang mga character para sa salitang "Arduino" nang sunud-sunod sa matrix. (kailangan mo ng hindi bababa sa 5x7 leds upang makita ang buong mga chars) * / walang bisa ang writeArduinoOnMatrix () {/ * narito ang data para sa mga character * / byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};
/ * ngayon ipakita ang mga ito isa-isa na may isang maliit na pagkaantala * /
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]); antala (pagkaantala ng oras); 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]); antala (pagkaantala ng oras); 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]); antala (pagkaantala ng oras); 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]); antala (pagkaantala ng oras); 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]); antala (pagkaantala ng oras); 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]); antala (pagkaantala ng oras); 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]); antala (pagkaantala ng oras); 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); antala (pagkaantala ng oras); }
/*
Ang pagpapaandar na ito ay nag-iilaw ng ilang mga Leds sa isang hilera. Ang pattern ay paulit-ulit sa bawat hilera. Ang pattern ay magpapikit kasama ang row-number. row number 4 (index == 3) ay magpikit ng 4 beses atbp. * / void row () {for (int row = 0; row <8; row ++) {antala (pagkaantala ng oras); lc.setRow (0, row, B10100000); antala (pagkaantala ng oras); lc.setRow (0, row, (byte) 0); para sa (int i = 0; i
/*
Ang pagpapaandar na ito ay nag-iilaw ng ilang mga Leds sa isang haligi. Ang pattern ay paulit-ulit sa bawat haligi. Ang pattern ay magpapikit kasama ang bilang ng haligi. haligi numero 4 (index == 3) ay magpikit ng 4 beses atbp. * / walang bisa ang mga haligi () {para sa (int col = 0; col <8; col ++) {pagkaantala (pagkaantala ng oras); lc.setColumn (0, col, B10100000); antala (pagkaantala ng oras); lc.setColumn (0, col, (byte) 0); para sa (int i = 0; i
/*
Ang pagpapaandar na ito ay magpapasindi sa bawat Led sa matrix. Ang led ay magpikit kasama ang row-number. row number 4 (index == 3) ay magpikit ng 4 beses atbp. * / walang bisa ang solong () {para sa (int row = 0; row <8; row ++) {para sa (int col = 0; col <8; col ++) { antala (pagkaantala ng oras); lc.setLed (0, row, col, true); antala (pagkaantala ng oras); para sa (int i = 0; i
void loop () {
isulatArduinoOnMatrix (); mga hilera (); mga haligi (); solong (); }
Hakbang 6: Ang Output
Panoorin ang buong video dito: -MAX7219 8x8 LED MATRIX ASSEMBLY AND TESTING using ARDUINO
Sa gayon lahat ng pagsusumikap na ito, tiyak na mahusay ang pagbabayad kapag nakita mo ang resulta. Sulit naman !!
Mag-subscribe sa aking youtube channel: -Creative Stuff
Inirerekumendang:
Dot Matrix 32x8 Max7219 Interfacing With Ardiuno: 5 Hakbang (na may Mga Larawan)
Ang Dot Matrix 32x8 Max7219 Interfacing With Ardiuno: Kumusta Lahat, batay sa Dot Matrix o Max7219 ay hindi bago sa 2020, hanggang kamakailan lamang, ang proseso ng pag-setup ay naidokumento nang maayos, ang isang mag-download ng library ng hardware mula sa MajicDesigns. at binago ang ilang mga linya sa mga file ng header at ang FC16 ay nagtrabaho tulad ng isang kagandahan. Ito ay hanggang sa
Buuin ang Iyong Sariling BiQuad 4G Antenna Na May Bilis na Pagsubok: 7 Hakbang (na may Mga Larawan)
Buuin ang Iyong Sariling BiQuad 4G Antenna Sa Bilis na Pagsubok: Sa itinuturo na ito ay pupunta ako upang ipakita sa iyo kung paano ako gumawa ng isang BiQuad 4G antena. Ang pagtanggap ng signal ay mahirap sa aking tahanan dahil sa mga bundok sa paligid ng aking bahay. Ang signal tower ay 4.5km ang layo mula sa bahay. Sa distrito ng Colombo ang aking service provider ay nagbibigay ng bilis na 20mbps. ngunit sa m
Coilgun SGP33 - Buong Assembly at Mga Tagubilin sa Pagsubok: 12 Hakbang
Coilgun SGP33 - Buong Assembly at Mga Tagubilin sa Pagsubok: Inilalarawan ng tutorial na ito kung paano tipunin ang mga electronics ng coil gun na ipinapakita sa video na ito: Narito ang link. Ang mga PCB para sa demo kung saan mabait
Monitor ng SMS -- Display ng Dot Matrix -- MAX7219 -- SIM800L: 8 Hakbang (may Mga Larawan)
Monitor ng SMS || Display ng Dot Matrix || MAX7219 || SIM800L: Sa video na ito, malalaman mo kung paano gumamit ng isang module ng GSM, display ng dot matrix at kung paano ipakita ito sa pag-scroll ng teksto. Pagkatapos nito ay pagsamahin namin ang mga ito upang ipakita ang mga mensahe na natanggap sa isang GSM SIM sa isang dot matrix display. Ito ay medyo madali at yo
Mga Pagsubok sa Magician na Chassis: 7 Mga Hakbang (na may Mga Larawan)
Mga Pagsubok sa Magician na Chassis: Ito ay higit pa sa isang pagtuturo ay isang pagsusuri ng natutunan mula sa chassis na ito, kahit na madaling magtipun-tipon at mayroon nang mga control board, may mga karanasan na nais kong ibahagi kung nais mong gawin ang iyong ROV mula sa kumamot, ngayon ako