INHOUDSOPGAWE:

Teller met behulp van die MAX7221: 4 stappe
Teller met behulp van die MAX7221: 4 stappe

Video: Teller met behulp van die MAX7221: 4 stappe

Video: Teller met behulp van die MAX7221: 4 stappe
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, November
Anonim
Teller met behulp van die MAX7221
Teller met behulp van die MAX7221

Skep 'n teller wat toeneem wanneer 'n knoppie ingedruk word met die MAX7221.

Stap 1: Onderdele

MAX7221 of MAX7219

Skakel oor

4 7-segment vertoning (gewone katode)

2 weerstande: 10k en 9.53k (ek het 'n 9.1k gebruik en dit werk nog steeds)

Arduino

Stap 2: Bou die kring

Bou die kring
Bou die kring
Bou die kring
Bou die kring
Bou die kring
Bou die kring

Ek het slegs die penne neergeskryf wat ek gebruik het; u kan die volledige penuitleg op die datablad vind, of ek het dit aangeheg. Raadpleeg u 7-segment-skerm, want dit sal waarskynlik van myne verskil, maar die prosedure is dieselfde.

1. Verbind syfers 0 - 3 op die MAX7221 met syfers 1 - 4 op die skerm. Die MAX -syfer 0 maak verbinding met die skerms 1, ens. Die skerms is net onkonvensioneel en begin by 1 in plaas van 0.

2. Verbind die segmente A - G op die MAX7221 met segmente A - G op die skerm.

3. Verskaf krag en grond aan die MAX. VCC gaan na pen 19. Die 10k weerstand is ook gekoppel aan pen 19 en 18. Grond gaan na penne 4 en 9.

4. Die MAX7221 kommunikeer met die Arduino via SPI (Serial Peripheral Interface). In hierdie geval is slegs 3 drade nodig omdat ek nie MISO (Master In Slave Out) gebruik nie. Koppel pen 1 (Din) op die MAX7221 aan die Arduino, in my geval het ek pen 12. Dit is u MOSI (Master Out Slave In) of die data. Speld 12 op die MAX is CS (Chip Select Input), en hoe die data in die skofregister gelaai word, ek verbind dit met pen 9 op die Arduino. Die laaste verbinding is CLK, wat pen 13 op die MAX is, ek het dit gekoppel aan pen 10 op die Arduino.

Maak seker dat u krag en grond deur die Arduino met 5 volt voorsien. Ek het die probleem raakgeloop waar my Arduino my bord nie genoeg krag gegee het nie.

Dit is vir die MAX7221 -datablad. Ook waar die foto's vandaan kom.

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

Stap 3: Die skakelaar

Die skakelaar
Die skakelaar

Ek het die skakelaar van die skematiese weergawe hierbo bedraad. Gevind op

Ek gebruik pen 8 op die Arduino om die skakelaar te beheer, en 'n 10k -weerstand.

Stap 4: Kode

Ek het die LedControl.h -biblioteek op GitHub gebruik, en hul basiese kode om die MAX7221 aan te skakel. Ek verander toe die kode om te tel van 0 - 9999 as die knoppie ingedruk word.

#sluit "LedControl.h" in

int knoppie = 8;

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

ongeldige opstelling () {

pinMode (knoppie, INVOER);

lc.stop (0, vals); // MAX7221 is in die energiebesparingsmodus, so ons moet dit wakker maak

lc.setIntensity (0, 15); // Helderheid instel, maksimum 15

lc.clearDisplay (0); // skoonmaakskerm

}

leemte -lus () {

int toestand = digitalRead (knoppie);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

terwyl (1) {

state = digitalRead (knoppie);

terwyl (staat == 1) {

state = digitalRead (knoppie);

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

ek ++;

vertraging (100); // jy kan hiermee mors

as (i == 10) {

ek = 0;

j ++;

as (j == 10) {

j = 0;

k ++;

as (k == 10) {

k = 0;

l ++;

as (l == 10) {

terwyl (1) {

lc.setRow (0, 0, 0x3E); // wanneer die skerm 9999 bereik het, sal dit U - 1 vertoon

lc.setRow (0, 1, 0x1); // In Hexi desimale waarde

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

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

}

}

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

}

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

}

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

}

}

}

}

Aanbeveel: