Innholdsfortegnelse:

Teller ved bruk av MAX7221: 4 trinn
Teller ved bruk av MAX7221: 4 trinn

Video: Teller ved bruk av MAX7221: 4 trinn

Video: Teller ved bruk av MAX7221: 4 trinn
Video: Откровения. Массажист (16 серия) 2024, Juli
Anonim
Teller Bruke MAX7221
Teller Bruke MAX7221

Opprette en teller som øker når du trykker på en knapp med MAX7221.

Trinn 1: Deler

MAX7221 eller MAX7219

Bytte om

4 7-segmenters display (vanlig katode)

2 motstander: 10k og 9,53k (jeg brukte en 9,1k og den fungerer fortsatt)

Arduino

Trinn 2: Bygg kretsen

Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen

Jeg skrev bare ned pinnene som jeg brukte, du kan finne hele pin -oppsettet på databladet eller jeg festet det. Sørg for å slå opp 7-segmentskjermen fordi den sannsynligvis vil avvike fra min, men fremgangsmåten er den samme.

1. Koble tall 0 - 3 på MAX7221 til sifre 1 - 4 på displayet. MAX siffer 0 kobles til displayet siffer 1 etc. Displayene er bare ukonvensjonelle og starter med 1 i stedet for 0.

2. Koble segmentene A - G på MAX7221 til segmentene A - G på displayet.

3. Tilfør strøm og jord til MAX. VCC går til pin 19. 10k -motstanden er også koblet til pin 19 og 18. Jord går til pins 4 og 9.

4. MAX7221 kommuniserer med Arduino via SPI (Serial Peripheral Interface). I dette tilfellet trengs bare 3 ledninger fordi jeg ikke bruker MISO (Master In Slave Out). På MAX7221 kobler du pin 1 (Din) til Arduino, i mitt tilfelle brukte jeg pin 12. Dette er din MOSI (Master Out Slave In) eller dataene. Pin 12 på MAX er CS (Chip Select Input) og er hvordan dataene lastes inn i skiftregisteret, jeg koblet dette til pin 9 på Arduino. Den siste tilkoblingen er CLK som er pin 13 på MAX, jeg koblet denne til pin 10 på Arduino.

Sørg for å levere strøm og jord gjennom Arduino ved å bruke 5 volt. Jeg løp inn i problemet der min Arduino ikke ga bordet mitt nok strøm.

Dette er for databladet MAX7221. Også hvor bildene kom fra.

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

Trinn 3: Bryteren

Byttet
Byttet

Jeg koblet til bryteren fra skjemaet ovenfor. Funnet på

Jeg brukte pin 8 på Arduino for å kontrollere bryteren, og en 10k motstand.

Trinn 4: Kode

Jeg brukte LedControl.h -biblioteket som ble funnet på GitHub, og deres grunnleggende kode for å slå på MAX7221. Jeg endret deretter koden for å telle fra 0 - 9999 når knappen trykkes.

#inkludere "LedControl.h"

int -knapp = 8;

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

ugyldig oppsett () {

pinMode (knapp, INNGANG);

lc.stopp (0, usann); // MAX7221 er i strømsparingsmodus, så vi må vekke den

lc.setIntensity (0, 15); // Innstilling av lysstyrke, maks 15

lc.clearDisplay (0); // ryddevisning

}

void loop () {

int state = digitalRead (knapp);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

mens (1) {

state = digitalRead (knapp);

mens (tilstand == 1) {

state = digitalRead (knapp);

lc.setDigit (0, 3, i, false);

i ++;

forsinkelse (100); // du kan rote med dette

hvis (i == 10) {

i = 0;

j ++;

hvis (j == 10) {

j = 0;

k ++;

hvis (k == 10) {

k = 0;

l ++;

hvis (l == 10) {

mens (1) {

lc.setRow (0, 0, 0x3E); // når displayet nådde 9999, vil det vise U - 1

lc.setRow (0, 1, 0x1); // I Hexi desimalverdi

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

lc.setDigit (0, 3, 1, false);

}

}

lc.setDigit (0, 0, l, false);

}

lc.setDigit (0, 1, k, false);

}

lc.setDigit (0, 2, j, false);

}

}

}

}

Anbefalt: