Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
MAX7219 je integrovaný obvod, který se používá k pohonu 7segmentových LED diod (až 8 číslic), blokových displejů (sloupcové displeje) a 64 jednotlivých diod LED, které jsou běžnými katodami. Ke komunikaci s mikrokontrolérem využívá MAX7219 komunikační systém SPI. K pohonu 64 LED tedy stačí 3 porty mikrokontroléru.
V tomto článku vám ukážu, jak používat modul 7-Segement, který jako ovladač používá IC MAX7219.
Požadované součásti:
- 7segmentový modul MAX7219
- Arduino Nano
- drátový můstek
- USB mini
Požadovaná knihovna:
LedControl
V tomto tutoriálu používám desku Arduino Nano. Pokud jste to nikdy nepoužili. Doporučuji přečíst si můj předchozí článek o „Jak používat Arduino Nano“.
Krok 1: Sestavte všechny součásti
Připojte desku Arduino k 7segmentovému modulu. Viz obrázek nebo návod, který jsem napsal níže:
Arduino na 7 segmentů
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/ZATÍŽENÍ
Krok 2: Přidejte knihovnu
Po dokončení obvodu. Přidejte knihovnu „LedControl“do Arduino IDE.
Chcete -li přidat knihovnu do Arduina, můžete si ji přečíst v článku „Jak přidat externí knihovnu do Arduina“, který jsem vytvořil dříve „.
Krok 3: Další funkce
Po přidání knihovny LedControl. K ovládání 7segmentového modulu můžete použít další funkce.
Argument
addr - adresa displeje
digit - pozice číslice na displeji (0..7) hodnota - hodnota, která se má zobrazit. (0x00..0x0F)
dp nastavuje desetinnou čárku.
Funkce
setChar (addr, číslice, hodnota.dp); // pro zobrazení hodnoty typu char pro 7bitové kódování ASCII
setDigit (addr, číslice, hodnota, bolean dp); // pro zobrazení číslic a znaků v jedné funkci setRow (addr, digit, value, boolean dp); // pro zobrazení objektu v požadované číslici
Další podrobnosti naleznete zde.
Krok 4: Nahrajte skicu
Načrtl jsem pro zkušební verzi tohoto 7segmentového modulu. Níže uvedený kód můžete zkopírovat a vložit do skici.
// Vždy musíme zahrnout knihovnu
#include "LedControl.h"
/*
Nyní potřebujeme pracovat s LedControl. ***** Tato čísla pinů pravděpodobně nebudou fungovat s vaším hardwarem *****
pin 12 je připojen k DataIn
pin 11 je připojen k CLK
pin 10 je připojen k LOAD
Máme pouze jeden MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/ * mezi aktualizacemi displeje vždy chvíli počkáme */
dlouhá doba bez znaménka = 500;
neplatné nastavení () {
/ * MAX72XX je při spuštění v úsporném režimu, musíme provést probuzení */
lc.shutdown (0, false);
/ * Nastavte jas na střední hodnoty */
lc.setIntensity (0, 8);
/ * a vymazat displej */
lc.clearDisplay (0);}
void ahoj () {
lc.setChar (0, 7, 'H', false);
lc.setChar (0, 6, 'E', false);
lc.setChar (0, 5, 'L', false);
lc.setChar (0, 4, 'L', false);
lc.setChar (0, 3, '0', false);
lc.setChar (0, 2, '.', false);
lc.setChar (0, 1, '.', false);
lc.setChar (0, 0, '.', false);
zpoždění (doba zpoždění+1000);
lc.clearDisplay (0);
zpoždění (doba zpoždění);
lc.setDigit (0, 7, 1, false);
zpoždění (zpoždění);
lc.setDigit (0, 6, 2, false);
zpoždění (zpoždění);
lc.setDigit (0, 5, 3, false);
zpoždění (zpoždění);
lc.setDigit (0, 4, 4, false);
zpoždění (zpoždění);
lc.setDigit (0, 3, 5, false);
zpoždění (doba zpoždění);
lc.setDigit (0, 2, 6, false);
zpoždění (doba zpoždění);
lc.setDigit (0, 1, 7, false);
zpoždění (doba zpoždění);
lc.setDigit (0, 0, 8, false);
zpoždění (1500);
lc.clearDisplay (0);
zpoždění (doba zpoždění);
}
void loop () {ahoj ();
}
Nebo si stáhněte níže uvedený soubor:
Krok 5: Výsledek
Užijte si výsledek.
Pokud máte nějaké otázky, napište je do sloupce komentářů.
Uvidíme se v dalším článku.