Turinys:

Skaitiklis naudojant MAX7221: 4 žingsniai
Skaitiklis naudojant MAX7221: 4 žingsniai

Video: Skaitiklis naudojant MAX7221: 4 žingsniai

Video: Skaitiklis naudojant MAX7221: 4 žingsniai
Video: Как промыть ДМРВ. Чем заменить расходомер Bosch. 2024, Liepa
Anonim
Skaitiklis naudojant MAX7221
Skaitiklis naudojant MAX7221

Skaitiklio, kuris padidėja paspaudus mygtuką, sukūrimas naudojant MAX7221.

1 žingsnis: dalys

MAX7221 arba MAX7219

Perjungti

4 7 segmentų ekranas (bendras katodas)

2 rezistoriai: 10k ir 9.53k (aš naudojau 9.1k ir vis dar veikia)

Arduino

2 žingsnis: grandinės kūrimas

Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas
Grandinės kūrimas

Aš užrašiau tik mano naudojamus smeigtukus, visą kaiščių išdėstymą galite rasti duomenų lape arba aš jį pridėjau. Būtinai peržiūrėkite 7 segmentų ekraną, nes jis tikriausiai skirsis nuo mano, tačiau procedūra yra ta pati.

1. Prijunkite MAX7221 skaitmenis 0 - 3 prie skaitmenų 1 - 4 ekrane. MAX skaitmuo 0 jungiasi prie ekrano skaitmens 1 ir pan. Rodiniai yra tiesiog netradiciniai ir prasideda nuo 1, o ne 0.

2. Prijunkite MAX7221 segmentus A - G prie segmentų A - G ekrane.

3. Maitinkite ir įžeminkite MAX. VCC eina į 19 kaištį. 10k rezistorius taip pat prijungtas prie 19 ir 18 kaiščių. Žemė eina į 4 ir 9 kaiščius.

4. MAX7221 palaiko ryšį su „Arduino“per SPI (Serial Peripheral Interface). Šiuo atveju reikalingi tik 3 laidai, nes aš nenaudoju MISO (Master In Slave Out). Prie MAX7221 prijunkite 1 kaištį (Din) prie „Arduino“, mano atveju naudojau kaištį 12. Tai jūsų MOSI („Master Out Slave In“) arba duomenys. MAX 12 kaištis yra CS (lusto pasirinkimo įvestis) ir kaip duomenys įkeliami į „Shift“registrą, aš prijungiau jį prie „Arduino“9 kaiščio. Paskutinis ryšys yra CLK, kuris yra MAX 13 kaištis, aš jį prijungiau prie „Arduino“10 kaiščio.

Būtinai maitinkite ir įžeminkite per „Arduino“naudodami 5 voltų įtampą. Aš susidūriau su problema, kai mano „Arduino“nesuteikė mano valdybai pakankamai galios.

Tai skirta MAX7221 duomenų lapui. Taip pat iš kur atsirado nuotraukos.

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

3 žingsnis: jungiklis

Jungiklis
Jungiklis

Aš prijungiau jungiklį iš aukščiau pateiktos schemos. Rasta adresu

Aš naudoju 8 kaištį „Arduino“, kad valdyčiau jungiklį, ir 10 k rezistorių.

4 žingsnis: kodas

MAX7221 įjungimui naudojau „GitHub“rastą biblioteką „LedControl.h“ir jų pagrindinį kodą. Tada pakeičiau kodą, kad jis būtų skaičiuojamas nuo 0 iki 9999, kai spaudžiamas mygtukas.

#include "LedControl.h"

int mygtukas = 8;

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

void setup () {

pinMode (mygtukas, INPUT);

lc.sutdown (0, false); // MAX7221 veikia energijos taupymo režimu, todėl turime jį pažadinti

lc.setIntensity (0, 15); // Ryškumo nustatymas, maks. 15

lc.clearDisplay (0); // išvalymo ekranas

}

void loop () {

int būsena = digitalRead (mygtukas);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

nors (1) {

būsena = digitalRead (mygtukas);

o (būsena == 1) {

būsena = digitalRead (mygtukas);

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

i ++;

vėlavimas (100); // galite su tuo susipainioti

jei (i == 10) {

i = 0;

j ++;

jei (j == 10) {

j = 0;

k ++;

jei (k == 10) {

k = 0;

l ++;

jei (l == 10) {

nors (1) {

lc.setRow (0, 0, 0x3E); // kai ekranas pasieks 9999, bus rodomas U - 1

lc.setRow (0, 1, 0x1); // Hexi dešimtainiu skaičiumi

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

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

}

}

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

}

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

}

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

}

}

}

}

Rekomenduojamas: