Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:42
Piste-matriisinäyttö on näyttölaite, joka sisältää matriisin muotoon kohdistettuja valoa lähettäviä diodeja. Tätä piste-matriisinäyttöä käytetään sovelluksissa, joissa symbolit, graafiset, merkit, aakkoset, numerot on näytettävä yhdessä staattisena ja Pistematriisinäyttöä valmistetaan eri mitoissa, kuten 5x7, 8x8, 16x8, 128x16, 128x32 ja 128x64, joissa numerot edustavat LED -valoja riveissä ja sarakkeissa. Oranssi, valkoinen.
Tässä Instructable -ohjelmassa käyn läpi 8x8 -pistematriisin, jossa on MAX7219 -ohjain, liittämisen Arduino Unoon. Aloitetaan.
Tarvikkeet
MAX7219
Vaihe 1: Tarkista paketti
Kuten näet, minulla on ajurikortin smt -versio, on erittäin tärkeää tarkistaa kaikki tarvittavat komponentit, koska smd -komponentit ovat kooltaan hyvin pieniä ja voit helposti menettää ne. Verkossa on myös saatavilla dip -versio, mutta smt -versio kokonsa puolesta.
Vaihe 2: Hieman tästä erityisestä pistematriisista
yksi moduuli voi ajaa 8x8 pistematriisin yhteistä katodia.
Käyttöjännite: 5 v
Mitat: pituus 3,2 cm x 3,2 cm leveä x 1,3 cm korkea, reikiä neljällä ruuvilla, halkaisija 3 mm
Tulo- ja lähtöliitännöillä varustetut moduulit, tuki useiden moduulien porrastamiseen.
Data IN- ja OUT -liittimet on määritetty moduulissa.
Vaihe 3: MAX7219 -ohjain
MAX7219 on IC, joka on suunniteltu ohjaamaan 8x8 LED MATRIXia. IC on sarjatulon yhteisen katodin (Common Negative) näytönohjaimet, jotka yhdistävät mikroprosessorit (tai mikrokontrollerit) 7-segmenttisiin numeerisiin LED-näyttöihin, joissa on enintään 8 numeroa, pylväskaavio tai 64 yksittäistä LEDiä.
Ominaisuudet ja tekniset tiedot
Käyttöjännitealue: +4,0 - +5,5V
Suositeltu käyttöjännite: +5V
Suurin syöttöjännite: 6V
Suurin sallittu virta jokaisen segmenttitapin läpi: 100 mA
Suurin sallittu virta kullakin DIGIT -maadoitusnastalla: 500 mA
Alhainen virrankulutus
Tietojen ja segmenttien viiveaika: 2,2 ms
Käyttölämpötila: 0 ° C - +70 ° C
Varastointilämpötila: -65 ° C - +150 ° C
Vaihe 4: Piiri
Piiri on melko yksinkertainen ja voidaan rakentaa uros -naarashyppyjohtimilla. Seuraa vain pinoutia ja rakenna piiri. Voit myöhemmin koota sen piirilevylle, jos teet pysyvän sovelluksen Matrixille.
Pin -kokoonpano on seuraava:
- Vcc - 5V Arduino -nasta.
- Gnd - Gnd Pin Arduinosta.
- DIN Arduinon digitaaliseen nastaan 12.
- CS Arduinon digitaaliseen nastaan 11
- CLK Arduinon digitaaliseen nastaan 10.
Vaihe 5: Koodi
Tässä opetusohjelmassa annan sinulle kaksi eri koodia. Yksi luo joitain englantilaisia aakkosia ja hymiöitä Matrixiin. Toinen valaisee kaikki 64 LEDiä palamaan yksitellen. Sinun on käytettävä lledcontrol -kirjastoa, jotta se toimisi.
Tämä on koodi englannin aakkosille ja hymyille
#include int DIN = 12; int CS = 11; int CLK = 10; tavu e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; tavu d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; tavu u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; tavu c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; tavu kahdeksan [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; tavu s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; tavupiste [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; tavu o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; tavu m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX on virransäästötilassa käynnistettäessä lc.setIntensity (0, 15); // Aseta kirkkaus maksimiarvoon lc.clearDisplay (0); // ja tyhjennä näyttö} void loop () {tavu hymy [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; tavut neutraali [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; tavu rypistyy [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (hymy); viive (1000); printByte (neutraali); viive (1000); printByte (paheksua); viive (1000); printEduc8s (); lc.clearDisplay (0); viive (1000); } void printEduc8s () {printByte (e); viive (1000); printByte (d); viive (1000); printByte (u); viive (1000); printByte (c); viive (1000); printByte (kahdeksan); viive (1000); printByte (s); viive (1000); printByte (piste); viive (1000); printByte (c); viive (1000); printByte (o); viive (1000); printByte (m); viive (1000); } void printByte (tavumerkki ) {int i = 0; for (i = 0; i <8; i ++) {lc.setRow (0, i, merkki ); }}
ja koodi kaikkien 64 LED -valon testaamiseen
// Meidän on aina sisällytettävä kirjasto#include "LedControl.h"
/*
Nyt tarvitsemme LedControlin toimimaan. ***** Nämä nastanumerot eivät todennäköisesti toimi laitteistosi kanssa ***** nasta 12 on kytketty DataIniin nasta 10 on kytketty CLK -nastaan 11 on kytketty LOADiin Meillä on vain yksi MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);
/ * odotamme aina vähän näytön päivitysten välillä */
allekirjoittamaton pitkä viiveaika = 100;
void setup () {
/ * MAX72XX on virransäästötilassa käynnistettäessä, meidän on tehtävä herätys */ lc.shutdown (0, false); / * Aseta kirkkaus keskiarvoon */ lc.setIntensity (0, 8); / * ja tyhjennä näyttö */ lc.clearDisplay (0); }
/*
Tämä menetelmä näyttää sanan "Arduino" merkit peräkkäin matriisissa. (tarvitset vähintään 5x7 lediä nähdäksesi kaikki merkit) */ void writeArduinoOnMatrix () {/ *tässä on merkkien */ tavun tiedot [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; tavu r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; tavu d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; tavu u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; tavu i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; tavu n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; tavu o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};
/ * näytä ne nyt yksitellen pienellä viiveellä */
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]); viive (viive) 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]); viive (viive) 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]); viive (viive) 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]); viive (viive) 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]); viive (viive) 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]); viive (viive) 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]); viive (viive) 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); viive (viive) }
/*
Tämä toiminto sytyttää joitain LED -valoja peräkkäin. Kuvio toistetaan jokaisella rivillä. Kuvio vilkkuu rivinumeron kanssa. rivin numero 4 (indeksi == 3) vilkkuu 4 kertaa jne. */ void rws () {for (int rivi = 0; rivi <8; rivi ++) {delay (delaytime); lc.setRow (0, rivi, B10100000); viive (viive) lc.setRow (0, rivi, (tavu) 0); varten (int i = 0; i
/*
Tämä toiminto syttyy sarakkeessa oleviin joihinkin LED -valoihin. Kuvio toistetaan jokaisella sarakkeella. Kuvio vilkkuu sarakkeen numeron kanssa. sarake numero 4 (indeksi == 3) vilkkuu 4 kertaa jne. */ void column () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, sarake, B10100000); viive (viive) lc.setColumn (0, sarake, (tavu) 0); varten (int i = 0; i
/*
Tämä toiminto syttyy jokaiseen matriisin LED -valoon. LED vilkkuu rivinumeron kanssa. rivin numero 4 (indeksi == 3) vilkkuu 4 kertaa jne. */ void single () {for (int rivi = 0; rivi <8; rivi ++) {for (int col = 0; col <8; col ++) { viive (viive) lc.setLed (0, rivi, sarake, tosi); viive (viive) varten (int i = 0; i
void loop () {
writeArduinoOnMatrix (); rivit (); sarakkeet (); yksittäinen(); }
Vaihe 6: Lähtö
Katso koko video täältä: -MAX7219 8x8 LED-MATRIX-KOKOONPANO JA TESTAUS ARDUINO: ta käyttäen
Kaikki tämä kova työ maksaa varmasti melko hyvin, kun näet tuloksen. Se on sen arvoista !!
Tilaa youtube-kanavani: -Creative Stuff
Suositeltava:
Lämpötila -anturien testaus - mikä minulle?: 15 vaihetta (kuvilla)
Lämpötila -anturien testaus - kumpi minulle ?: Yksi ensimmäisistä fysiikan tietojenkäsittelyn aloittelijoiden haluamista kokeista on lämpötila. Neljä suosituimmista antureista on TMP36, jossa on analoginen lähtö ja joka tarvitsee analogisen digitaalimuuntimen, DS18B20
Arduino 2,4 tuuman TFT -näytön testaus: 4 vaihetta
Arduino 2,4 tuuman TFT -näytön testaus: Hei kaikki, Tämä ohje on tarkoitettu toiminnallisen näytön tekemiseen liitettynä arduinoosi. Yleensä se tapahtuu, kun kun yhdistämme arduinon ja kirjoitamme jonkin projektin, se näyttää vain tyhjän valkoisen tuloksen. Joten pysyt vain perusasioissa ja wi
6-akselinen anturimoduuli FSP200 Kalibrointi ja testaus: 6 vaihetta
6-akselinen anturimoduuli FSP200 Kalibrointi ja testaus: FSP200 on 6-akselinen inertiamittausyksikköprosessori, joka tuottaa suunnan ja suunnan. Se yhdistää kiihtyvyysmittarin ja gyroskooppianturit vakaaseen ja tarkkaan suuntaan ja suuntaan. FSP200 soveltuu käytettäväksi robotti- ja
Brainwave -tietokoneen käyttöliittymän prototyyppi TGAM -aloituspakkaus Juotos ja testaus: 7 vaihetta (kuvilla)
Brainwave -tietokoneen käyttöliittymän prototyyppi TGAM -aloituspakkaus Juotos ja testaus: Viimeisen vuosisadan neurotieteellinen tutkimus on lisännyt huomattavasti tietämystämme aivoista ja erityisesti aivoissa polttavien neuronien lähettämistä sähköisistä signaaleista. Näiden sähköisten signaalien kuviot ja taajuudet voidaan mitata
Epee -kehonjohdon testaus ja korjaus: 9 vaihetta (kuvilla)
Epee-kehonjohdon testaus ja korjaus: Nykyaikaisen, olympialaistyylisen miekkailun urheilussa pisteytys tapahtuu sähköisesti. Jotta sähköinen signaali siirtyisi aseestasi pisteytyskoneeseen, signaalin on kuljettava: aseen langan (paitsi sapelin) läpi hihassa ja alas