Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
MAX7219 er en IC som brukes til å drive lysdioder med 7 segmenter (opptil 8 sifre), blokkdisplayer (stolpedisplayer) og 64 individuelle lysdioder som er felles katoder. For å kommunisere med en mikrokontroller bruker MAX7219 SPI -kommunikasjonssystemet. Så for å kjøre 64 lysdioder trenger du bare 3 porter på mikrokontrolleren.
I denne artikkelen vil jeg vise deg hvordan du bruker en 7-segment modul som bruker IC MAX7219 som driver.
Nødvendige komponenter:
- MAX7219 7-segmentsmodul
- Arduino Nano
- wire jumper
- USB mini
Nødvendig bibliotek:
LedControl
I denne opplæringen bruker jeg Arduino Nano -bord. Hvis du aldri har brukt det. Jeg foreslår at du leser min forrige artikkel om "Hvordan bruke Arduino Nano".
Trinn 1: Sett sammen alle komponentene
Koble Arduino-kortet til 7-segmentsmodulen. Se bildet eller instruksjonen som jeg skrev nedenfor:
Arduino til 7-segment
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/LOAD
Trinn 2: Legg til bibliotek
Etter at kretsen er fullført. Legg til "LedControl" -biblioteket i Arduino IDE.
For å legge til et bibliotek i Arduino, kan du lese det i artikkelen "Hvordan legge til et eksternt bibliotek til Arduino" som jeg har laget tidligere ".
Trinn 3: Ytterligere funksjoner
Etter å ha lagt til LedControl -biblioteket. Du kan bruke tilleggsfunksjoner til å styre 7-segmentsmodulen.
Argument
addr - displayets adresse
siffer - posisjonen til sifferet på displayet (0..7) verdi - verdien som skal vises. (0x00..0x0F)
dp angir desimaltegnet.
Funksjon
setChar (addr, digit, value.dp); // for å vise verdien for rørtypen for 7-biters ASCII-koding
setDigit (addr, digit, value, bolean dp); // for å vise sifre og tegn i en funksjon setRow (addr, digit, value, boolsk dp); // for å vise objektet i ønsket siffer
For mer informasjon, vennligst les her.
Trinn 4: Last opp skisse
Jeg har skissert for prøveversjonen av denne 7-segmentsmodulen. Du kan kopiere koden nedenfor, og lime den inn i skissen din.
// Vi må alltid inkludere biblioteket
#inkludere "LedControl.h"
/*
Nå trenger vi en LedControl å jobbe med. ***** Disse pin -tallene vil sannsynligvis ikke fungere med maskinvaren din *****
pin 12 er koblet til DataIn
pin 11 er koblet til CLK
pin 10 er koblet til LOAD
Vi har bare en MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * vi venter alltid litt mellom oppdateringer av skjermen */
usignert lang forsinkelse = 500;
ugyldig oppsett () {
/ * MAX72XX er i strømsparingsmodus ved oppstart, vi må ringe */
lc.stopp (0, usann);
/ * Still lysstyrken til middels verdier */
lc.setIntensity (0, 8);
/ * og tøm skjermen */
lc.clearDisplay (0);}
ugyldig hei () {
lc.setChar (0, 7, 'H', usant);
lc.setChar (0, 6, 'E', usant);
lc.setChar (0, 5, 'L', false);
lc.setChar (0, 4, 'L', usant);
lc.setChar (0, 3, '0', usant);
lc.setChar (0, 2, '.', false);
lc.setChar (0, 1, '.', usant);
lc.setChar (0, 0, '.', usant);
forsinkelse (forsinkelse+1000);
lc.clearDisplay (0);
forsinkelse (forsinkelse);
lc.setDigit (0, 7, 1, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 6, 2, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 5, 3, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 4, 4, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 3, 5, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 2, 6, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 1, 7, false);
forsinkelse (forsinkelse);
lc.setDigit (0, 0, 8, false);
forsinkelse (1500);
lc.clearDisplay (0);
forsinkelse (forsinkelse);
}
void loop () {hallo ();
}
Eller last ned filen nedenfor:
Trinn 5: Resultat
Nyt resultatet.
Hvis det er spørsmål, skriv dem bare i kommentarfeltet.
Vi sees i neste artikkel.