Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
MAX7219 to układ scalony, który służy do sterowania 7-segmentowymi diodami LED (do 8 cyfr), wyświetlaczami blokowymi (wyświetlacze słupkowe) i 64 pojedynczymi diodami LED, które są wspólnymi katodami. Do komunikacji z mikrokontrolerem MAX7219 wykorzystuje system komunikacji SPI. Tak więc do wysterowania 64 diod LED potrzebne są tylko 3 porty mikrokontrolera.
W tym artykule pokażę jak wykorzystać moduł 7-segmentowy wykorzystujący IC MAX7219 jako sterownik.
Wymagane składniki:
- MAX7219 7-segmentowy moduł
- Arduino Nano
- zworka drutu
- mini USB
Wymagana biblioteka:
LedControl
W tym tutorialu używam płytki Arduino Nano. Jeśli nigdy go nie używałeś. Proponuję przeczytać mój poprzedni artykuł o "Jak korzystać z Arduino Nano".
Krok 1: Złóż wszystkie komponenty
Podłącz płytkę Arduino do modułu 7-segmentowego. Zobacz zdjęcie lub instrukcję, którą napisałem poniżej:
Arduino na 7-segmentowy
+5V => VCC
GND => GND
D12 => DIN
D11 => CLK
D10 => CS/OBCIĄŻENIE
Krok 2: Dodaj bibliotekę
Po zakończeniu obwodu. Dodaj bibliotekę „LedControl” do Arduino IDE.
Aby dodać bibliotekę do Arduino, możesz przeczytać w artykule "Jak dodać zewnętrzną bibliotekę do Arduino", który zrobiłem wcześniej.
Krok 3: Dodatkowe funkcje
Po dodaniu biblioteki LedControl. Do sterowania modułem 7-segmentowym można wykorzystać dodatkowe funkcje.
Argument
addr - adres wyświetlacza
cyfra - pozycja cyfry na wyświetlaczu (0..7)\wartość - wartość do wyświetlenia. (0x00..0x0F)
dp ustawia kropkę dziesiętną.
Funkcjonować
setChar(addr, cyfra, wartość.dp); //aby wyświetlić wartość typu znaku dla 7-bitowego kodowania ASCII
setDigit(addr, cyfra, wartość, bolean dp); //wyświetlanie cyfr i znaków w jednej funkcji setRow(addr, digit, value, boolean dp); //wyświetlić obiekt w żądanej cyfrze
Aby uzyskać więcej informacji, przeczytaj tutaj.
Krok 4: Prześlij szkic
Naszkicowałem na próbę tego 7-segmentowego modułu. Możesz skopiować poniższy kod, a następnie wkleić go do swojego szkicu.
//Zawsze musimy dołączyć bibliotekę
#include "LedControl.h"
/*
Teraz potrzebujemy LedControl do pracy. ***** Te numery pinów prawdopodobnie nie będą działać z twoim sprzętem *****
pin 12 jest podłączony do DataIn
pin 11 jest podłączony do CLK
pin 10 jest podłączony do LOAD
Mamy tylko jeden MAX72XX.
*/
LedControl lc = LedControl (12, 11, 10, 1);
/* zawsze trochę czekamy między aktualizacjami wyświetlacza */
bez znaku długi czas opóźnienia=500;
pusta konfiguracja () {
/* MAX72XX jest w trybie oszczędzania energii podczas uruchamiania, musimy wykonać budzenie */
lc.shutdown(0, fałsz);
/* Ustaw jasność na średnie wartości */
lc.setIntensity(0, 8);
/* i wyczyść wyświetlacz */
lc.clearDisplay(0);}
nieważne cześć() {
lc.setChar(0, 7, 'H', fałsz);
lc.setChar(0, 6, 'E', fałsz);
lc.setChar(0, 5, 'L', fałsz);
lc.setChar(0, 4, 'L', fałsz);
lc.setChar(0, 3, '0', fałsz);
lc.setChar(0, 2, '.', fałsz);
lc.setChar(0, 1, '.', fałsz);
lc.setChar(0, 0, '.', fałsz);
opóźnienie (czas opóźnienia + 1000);
lc.clearWyświetlacz(0);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 7, 1, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 6, 2, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 5, 3, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 4, 4, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 3, 5, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 2, 6, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 1, 7, fałsz);
opóźnienie (czas opóźnienia);
lc.setDigit(0, 0, 8, fałsz);
opóźnienie (1500);
lc.clearWyświetlacz(0);
opóźnienie (czas opóźnienia);
}
nieważna pętla () { witaj ();
}
Lub pobierz plik poniżej:
Krok 5: Wynik
Ciesz się wynikiem.
Jeśli są jakieś pytania, po prostu napisz je w kolumnie komentarzy.
Do zobaczenia w następnym artykule.