Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
MAX7219 on IC, mida kasutatakse 7-segmendiliste valgusdioodide (kuni 8 numbrit), blokeerivate kuvarite (ribakuvarite) ja 64 üksikute kodukoodidega LED-ide juhtimiseks. Mikrokontrolleriga suhtlemiseks kasutab MAX7219 SPI sidesüsteemi. Nii et 64 LED -i juhtimiseks on vaja ainult 3 mikrokontrolleri porti.
Selles artiklis näitan teile, kuidas kasutada 7-segmendilist moodulit, mis kasutab draiverina IC MAX7219.
Nõutavad komponendid:
- MAX7219 7-segmendiline moodul
- Arduino Nano
- traadi hüppaja
- USB mini
Nõutav raamatukogu:
LedControl
Selles õpetuses kasutan Arduino Nano plaati. Kui te pole seda kunagi kasutanud. Soovitan lugeda minu eelmist artiklit teemal "Kuidas kasutada Arduino Nano".
Samm: koguge kõik komponendid kokku
Ühendage Arduino plaat 7-segmendilise mooduliga. Vaadake allolevat pilti või juhist:
Arduino kuni 7-segmendiline
+5 V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/LOAD
Samm: kogu lisamine
Pärast vooluringi lõppu. Lisage Arduino IDE -le kogu "LedControl".
Arduinole raamatukogu lisamiseks saate seda lugeda artiklist "Kuidas Arduinole välist raamatukogu lisada", mille tegin varem ".
3. samm: lisafunktsioonid
Pärast LedControli kogu lisamist. 7-segmendilise mooduli juhtimiseks saate kasutada lisafunktsioone.
Argument
addr - ekraani aadress
number - numbri asukoht ekraanil (0..7) väärtus - kuvatav väärtus. (0x00..0x0F)
dp määrab kümnendkoha.
Funktsioon
setChar (addr, number, value.dp); // 7-bitise ASCII kodeeringu char tüüpi väärtuse kuvamiseks
setDigit (addr, number, value, bolean dp); // numbrite ja märkide kuvamiseks ühes funktsioonikomplektisRow (addr, number, value, boolean dp); // objekti kuvamiseks soovitud numbrina
Lisateavet leiate siit.
4. samm: laadige üles visand
Olen visandanud selle 7-segmendilise mooduli prooviversiooni. Saate allpool oleva koodi kopeerida ja seejärel oma visandisse kleepida.
// Me peame alati raamatukogu kaasama
#include "LedControl.h"
/*
Nüüd vajame töötamiseks LedControli. ***** Need PIN -numbrid teie riistvaraga tõenäoliselt ei tööta *****
tihvt 12 on ühendatud DataIn -iga
tihvt 11 on ühendatud CLK -ga
tihvt 10 on ühendatud LOAD -iga
Meil on ainult üks MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * ootame alati ekraani värskenduste vahel natuke * */
allkirjastamata pikk viivitusaeg = 500;
tühine seadistus () {
/ * MAX72XX on käivitamisel energiasäästurežiimis, peame tegema äratuskõne */
lc.sulgemine (0, vale);
/ * Seadke heledus keskmisele väärtusele */
lc.setIntensity (0, 8);
/ * ja tühjendage ekraan */
lc.clearDisplay (0);}
tühine tere () {
lc.setChar (0, 7, 'H', vale);
lc.setChar (0, 6, 'E', vale);
lc.setChar (0, 5, 'L', vale);
lc.setChar (0, 4, 'L', vale);
lc.setChar (0, 3, '0', vale);
lc.setChar (0, 2, '.', vale);
lc.setChar (0, 1, '.', vale);
lc.setChar (0, 0, '.', vale);
viivitus (viivitusaeg+1000);
lc.clearDisplay (0);
viivitus (viivitusaeg);
lc.setDigit (0, 7, 1, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 6, 2, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 5, 3, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 4, 4, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 3, 5, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 2, 6, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 1, 7, vale);
viivitus (viivitusaeg);
lc.setDigit (0, 0, 8, vale);
viivitus (1500);
lc.clearDisplay (0);
viivitus (viivitusaeg);
}
void loop () {tere ();
}
Või laadige alla järgmine fail:
5. samm: tulemus
Nautige tulemust.
Kui teil on küsimusi, kirjutage need lihtsalt kommentaaride veergu.
Kohtumiseni järgmises artiklis.