Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
MAX7219 yra IC, naudojamas valdyti 7 segmentų šviesos diodus (iki 8 skaitmenų), blokinius ekranus (juostinius ekranus) ir 64 atskirus šviesos diodus, kurie yra bendri katodai. Norėdami bendrauti su mikrovaldikliu, MAX7219 naudoja SPI ryšio sistemą. Taigi, norint valdyti 64 šviesos diodus, reikia tik 3 mikrovaldiklio prievadų.
Šiame straipsnyje aš jums parodysiu, kaip naudoti 7 segmentų modulį, kurio tvarkyklė yra IC MAX7219.
Reikalingi komponentai:
- MAX7219 7 segmentų modulis
- Arduino Nano
- vielos megztinis
- USB mini
Reikalinga biblioteka:
„LedControl“
Šioje pamokoje naudoju „Arduino Nano“plokštę. Jei niekada jo nenaudojote. Siūlau perskaityti mano ankstesnį straipsnį „Kaip naudotis„ Arduino Nano ““.
1 žingsnis: Surinkite visus komponentus
Prijunkite „Arduino“plokštę prie 7 segmentų modulio. Žiūrėkite paveikslėlį ar instrukciją, kurią parašiau žemiau:
„Arduino“iki 7 segmentų
+5 V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/KROVAS
2 veiksmas: pridėkite biblioteką
Baigus grandinę. Pridėkite „LedControl“biblioteką prie „Arduino IDE“.
Norėdami pridėti biblioteką prie „Arduino“, galite ją perskaityti straipsnyje „Kaip pridėti išorinę biblioteką prie„ Arduino ““, kurį padariau anksčiau “.
3 žingsnis: papildomos funkcijos
Pridėjus „LedControl“biblioteką. 7 segmentų moduliui valdyti galite naudoti papildomas funkcijas.
Argumentas
addr - ekrano adresas
skaitmuo - skaitmens vieta ekrane (0..7) vertė - rodoma reikšmė. (0x00..0x0F)
dp nustato dešimtainį tašką.
Funkcija
setChar (addr, skaitmuo, value.dp); //, kad būtų rodoma 7 bitų ASCII kodavimo char tipo reikšmė
setDigit (addr, skaitmuo, vertė, bolean dp); // rodyti skaitmenis ir simbolius vienoje funkcijų rinkinyjeRow (addr, skaitmuo, vertė, loginis dp); // norėdami parodyti objektą norimu skaitmeniu
Norėdami gauti daugiau informacijos, skaitykite čia.
4 veiksmas: įkelkite eskizą
Nubraižiau šio 7 segmentų modulio bandymą. Galite nukopijuoti žemiau esantį kodą, tada įklijuoti jį į eskizą.
// Mes visada turime įtraukti biblioteką
#include "LedControl.h"
/*
Dabar mums reikia „LedControl“, kad galėtume dirbti. ***** Šie PIN kodai tikriausiai neveiks su jūsų aparatine įranga *****
12 kontaktas yra prijungtas prie „DataIn“
11 kaištis prijungtas prie CLK
10 kaištis prijungtas prie LOAD
Turime tik vieną MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * visada šiek tiek palaukiame tarp ekrano atnaujinimų */
nepasirašytas ilgas atidėjimo laikas = 500;
void setup () {
/ * Įjungus „MAX72XX“veikia energijos taupymo režimas, turime atlikti pažadinimo skambutį */
lc.sutdown (0, false);
/ * Nustatykite vidutinio ryškumo šviesą */
lc.setIntensity (0, 8);
/ * ir išvalyti ekraną */
lc.clearDisplay (0);}
void hello () {
lc.setChar (0, 7, 'H', klaidinga);
lc.setChar (0, 6, „E“, klaidinga);
lc.setChar (0, 5, „L“, klaidinga);
lc.setChar (0, 4, „L“, klaidinga);
lc.setChar (0, 3, '0', klaidinga);
lc.setChar (0, 2, '.', klaidinga);
lc.setChar (0, 1, '.', klaidinga);
lc.setChar (0, 0, '.', klaidinga);
vėlavimas (atidėjimo laikas+1000);
lc.clearDisplay (0);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 7, 1, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 6, 2, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 5, 3, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 4, 4, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 3, 5, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 2, 6, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 1, 7, klaidinga);
vėlavimas (vėlavimo laikas);
lc.setDigit (0, 0, 8, klaidinga);
vėlavimas (1500);
lc.clearDisplay (0);
vėlavimas (vėlavimo laikas);
}
void loop () {labas ();
}
Arba atsisiųskite žemiau esantį failą:
5 žingsnis: rezultatas
Džiaukitės rezultatu.
Jei turite klausimų, tiesiog parašykite juos komentarų skiltyje.
Iki pasimatymo kitame straipsnyje.