Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
MAX7219 on IC, jota käytetään ohjaamaan 7-segmenttisiä LED-valoja (enintään 8 numeroa), lohkonäyttöjä (palkkinäyttöjä) ja 64 yksittäistä LEDiä, jotka ovat comon-katodeja. Kommunikoidakseen mikro -ohjaimen kanssa MAX7219 käyttää SPI -viestintäjärjestelmää. Joten 64 LEDin ajamiseen tarvitaan vain 3 mikro -ohjaimen porttia.
Tässä artikkelissa näytän sinulle, miten voit käyttää 7-segmenttistä moduulia, joka käyttää ohjaimena IC MAX7219: tä.
Tarvittavat komponentit:
- MAX7219 7-segmenttinen moduuli
- Arduino Nano
- lankahyppy
- USB mini
Vaadittu kirjasto:
LedControl
Tässä opetusohjelmassa käytän Arduino Nano -levyä. Jos et ole koskaan käyttänyt sitä. Ehdotan, että luet edellisen artikkelini aiheesta "Arduino Nanon käyttö".
Vaihe 1: Kokoa kaikki komponentit
Liitä Arduino-kortti 7-segmenttiseen moduuliin. Katso kuva tai ohje, jonka kirjoitin alla:
Arduino 7-segmenttiin
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/LOAD
Vaihe 2: Lisää kirjasto
Kun piiri on valmis. Lisää "LedControl" -kirjasto Arduino IDE: hen.
Jos haluat lisätä kirjaston Arduinolle, voit lukea sen aiemmin tekemästäni artikkelista "Ulkoisen kirjaston lisääminen Arduinoon".
Vaihe 3: Lisätoiminnot
LedControl -kirjaston lisäämisen jälkeen. Voit käyttää lisätoimintoja 7-segmenttisen moduulin ohjaamiseen.
Perustelu
addr - näytön osoite
numero - numeron sijainti näytöllä (0..7) arvo - näytettävä arvo. (0x00..0x0F)
dp asettaa desimaalipilkun.
Toiminto
setChar (addr, numero, value.dp); // näyttää 7-bittisen ASCII-koodauksen char-tyyppiarvon
setDigit (addr, numero, arvo, bolean dp); // näyttää numerot ja merkit yhdessä funktiosarjassaRow (addr, digit, value, boolean dp); // näyttääksesi objektin halutulla numerolla
Lue lisää täältä.
Vaihe 4: Lataa luonnos
Olen luonnostellut tämän 7-segmenttisen moduulin kokeilua. Voit kopioida alla olevan koodin ja liittää sen luonnokseen.
// Meidän on aina sisällytettävä kirjasto
#include "LedControl.h"
/*
Nyt tarvitsemme LedControlin toimimaan. ***** Nämä PIN -numerot eivät todennäköisesti toimi laitteistosi kanssa *****
nasta 12 on kytketty DataIniin
nasta 11 on kytketty CLK: hon
nasta 10 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 = 500;
void setup () {
/ * MAX72XX on virransäästötilassa käynnistettäessä, meidän on tehtävä herätys */
lc. sammutus (0, false);
/ * Aseta kirkkaus keskiarvoon */
lc.setIntensity (0, 8);
/ * ja tyhjennä näyttö */
lc.clearDisplay (0);}
mitätön hei () {
lc.setChar (0, 7, 'H', epätosi);
lc.setChar (0, 6, 'E', epätosi);
lc.setChar (0, 5, 'L', epätosi);
lc.setChar (0, 4, 'L', epätosi);
lc.setChar (0, 3, '0', epätosi);
lc.setChar (0, 2, '.', false);
lc.setChar (0, 1, '.', false);
lc.setChar (0, 0, '.', epätosi);
viive (viiveaika+1000);
lc.clearDisplay (0);
viive (viive)
lc.setDigit (0, 7, 1, false);
viive (viive)
lc.setDigit (0, 6, 2, epätosi);
viive (viive)
lc.setDigit (0, 5, 3, epätosi);
viive (viive)
lc.setDigit (0, 4, 4, epätosi);
viive (viive)
lc.setDigit (0, 3, 5, epätosi);
viive (viive)
lc.setDigit (0, 2, 6, epätosi);
viive (viive)
lc.setDigit (0, 1, 7, false);
viive (viive)
lc.setDigit (0, 0, 8, epätosi);
viive (1500);
lc.clearDisplay (0);
viive (viive)
}
void loop () {hei ();
}
Tai lataa alla oleva tiedosto:
Vaihe 5: Tulos
Nauttikaa tuloksesta.
Jos sinulla on kysymyksiä, kirjoita ne kommenttikenttään.
Nähdään seuraavassa artikkelissa.