Spisu treści:

Licznik za pomocą MAX7221: 4 kroki
Licznik za pomocą MAX7221: 4 kroki

Wideo: Licznik za pomocą MAX7221: 4 kroki

Wideo: Licznik za pomocą MAX7221: 4 kroki
Wideo: Krzywe Lissajous wyświetlane na matrycy LED z układami MAX7219 sterowanymi przez Raspberry Pi 3B+ 2024, Listopad
Anonim
Licznik za pomocą MAX7221
Licznik za pomocą MAX7221

Tworzenie licznika, który zwiększa się po naciśnięciu przycisku za pomocą MAX7221.

Krok 1: Części

MAX7221 lub MAX7219

Przełącznik

4 Wyświetlacz 7-segmentowy (wspólna katoda)

2 rezystory: 10k i 9.53k (użyłem 9,1k i nadal działa)

Arduino

Krok 2: Budowanie obwodu

Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu
Budowanie obwodu

Zapisałem tylko piny, których użyłem, kompletny układ pinów można znaleźć w arkuszu danych lub go dołączyłem. Upewnij się, że sprawdziłeś swój wyświetlacz 7-segmentowy, ponieważ prawdopodobnie będzie się różnił od mojego, ale procedura jest taka sama.

1. Połącz cyfry 0 - 3 na MAX7221 z cyframi 1 - 4 na wyświetlaczu. Cyfra MAX 0 łączy się z cyfrą 1 itd. Wyświetlacze są po prostu niekonwencjonalne i zaczynają się od 1 zamiast 0.

2. Połącz segmenty A - G na MAX7221 z segmentami A - G na wyświetlaczu.

3. Zasilanie i uziemienie do MAX. VCC idzie do pinu 19. Rezystor 10k jest również podłączony do pinów 19 i 18. Masa idzie do pinów 4 i 9.

4. MAX7221 komunikuje się z Arduino przez SPI (Serial Peripheral Interface). W tym przypadku potrzebne są tylko 3 przewody, ponieważ nie używam MISO (Master In Slave Out). Na MAX7221 podłącz pin 1 (Din) do Arduino, w moim przypadku użyłem pinu 12. To jest twoje MOSI (Master Out Slave In) lub dane. Pin 12 na MAX to CS (Chip Select Input) i w ten sposób dane są ładowane do rejestru przesuwnego, podłączyłem to do pinu 9 na Arduino. Ostatnim połączeniem jest CLK, który jest pinem 13 na MAX, podłączyłem to do pinu 10 na Arduino.

Upewnij się, że dostarczasz zasilanie i uziemienie przez Arduino przy użyciu 5 woltów. Natknąłem się na problem polegający na tym, że moje Arduino nie zapewniało wystarczającej mocy mojej płycie.

Dotyczy to arkusza danych MAX7221. Również skąd pochodzą zdjęcia.

www.mouser.com/datasheet/2/256/max7219-max…

Krok 3: Przełącznik

Przełącznik
Przełącznik

Podłączyłem przełącznik ze schematu powyżej. Znalezione na

Użyłem pinu 8 na Arduino do sterowania przełącznikiem i rezystora 10k.

Krok 4: Kod

Użyłem biblioteki LedControl.h znalezionej na GitHub i ich podstawowego kodu, aby włączyć MAX7221. Następnie zmodyfikowałem kod, aby liczył od 0 do 9999 po naciśnięciu przycisku.

#include "LedControl.h"

wewn przycisk = 8;

LedControl lc=LedControl(12, 10, 9, 1);

pusta konfiguracja () {

pinMode(przycisk, WEJŚCIE);

lc.shutdown(0, fałsz); // MAX7221 jest w trybie oszczędzania energii, więc musimy go obudzić

lc.setIntensity(0, 15); // Ustawienie jasności, max 15

lc.clearWyświetlacz(0); // czyszczenie wyświetlacza

}

pusta pętla () {

stan int = digitalRead(przycisk);

int i = 0;

intj = 0;

int k = 0;

intl = 0;

póki(1){

stan = digitalRead(przycisk);

while(stan == 1){

stan = digitalRead(przycisk);

lc.setDigit(0, 3, i, fałsz);

i++;

opóźnienie (100); // możesz się z tym bawić

jeśli(i == 10){

i = 0;

j++;

jeśli(j == 10){

j = 0;

k++;

jeśli(k == 10){

k = 0;

l++;

jeśli(l == 10){

póki(1){

lc.setRow(0, 0, 0x3E); // gdy wyświetlacz osiągnie 9999, wyświetli U -- 1

lc.setRow(0, 1, 0x1); // W wartości szesnastkowej dziesiętnej

lc.setRow(0, 2, 0x1);

lc.setDigit(0, 3, 1, fałsz);

}

}

lc.setDigit(0, 0, l, fałsz);

}

lc.setDigit(0, 1, k, fałsz);

}

lc.setDigit(0, 2, j, fałsz);

}

}

}

}

Zalecana: