Mundarija:

MAX7221 yordamida hisoblagich: 4 qadam
MAX7221 yordamida hisoblagich: 4 qadam

Video: MAX7221 yordamida hisoblagich: 4 qadam

Video: MAX7221 yordamida hisoblagich: 4 qadam
Video: Кайси бефаросат чикарди буни? 2000 ва 20000 су́м 2024, Noyabr
Anonim
MAX7221 yordamida hisoblagich
MAX7221 yordamida hisoblagich

MAX7221 yordamida tugma bosilganda ko'payadigan hisoblagich yaratish.

1 -qadam: qismlar

MAX7221 yoki MAX7219

O'tish

4 ta 7 segmentli displey (umumiy katod)

2 rezistor: 10k va 9.53k (men 9.1k ishlatganman va u hali ham ishlaydi)

Arduino

2 -qadam: O'chirish tizimini yaratish

O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri

Men faqat o'zim ishlatgan pimlarni yozdim, siz ma'lumotlarning to'liq jadvalini topishingiz mumkin yoki men uni biriktirganman. 7-segmentli displeyni qidirganingizga ishonch hosil qiling, chunki u menikidan farq qilishi mumkin, lekin protsedura bir xil.

1. MAX7221 dagi 0 - 3 raqamlarini displeydagi 1 - 4 raqamlariga ulang. MAX raqami 0 displey 1 raqamiga ulanadi. Displeylar noan'anaviy bo'lib, 0 o'rniga 1 dan boshlanadi.

2. MAX7221 dagi A - G segmentlarini displeydagi A - G segmentlariga ulang.

3. MAX ga quvvat va topraklama bering. VCC 19 -pinga o'tadi. 10k qarshilik 19 va 18 -pinlarga ham ulanadi. Ground 4 va 9 -pinlarga o'tadi.

4. MAX7221 Arduino bilan SPI (Serial Periferik Interfeys) orqali muloqot qiladi. Bu holda faqat 3 ta sim kerak, chunki men MISO (Master In Slave Out) dan foydalanmayapman. MAX7221 -da 1 -pinni (Din) Arduino -ga ulang, menda 12 -pin ishlatilgan. Bu sizning MOSI (Master Out Slave In) yoki ma'lumotlar. MAX -dagi 12 -pin - CS (Chip Select Input) va ma'lumotlar Shift reestriga qanday yuklanadi, men buni Arduino -dagi 9 -pin bilan bog'ladim. Oxirgi ulanish - bu MAX -dagi 13 -pinli CLK, men buni Arduino -dagi 10 -pin bilan bog'ladim.

5 voltli Arduino orqali quvvat va topraklama ta'minlang. Men muammoga duch keldim, chunki mening Arduino taxtamga etarli kuch bermadi.

Bu MAX7221 ma'lumotlar jadvaliga tegishli. Shuningdek, rasmlar qaerdan paydo bo'lgan.

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

3 -qadam: Kalit

Kalit
Kalit

Men kalitni yuqoridagi sxemadan o'tkazdim. Https://www.arduino.cc/en/tutorial/button saytida topilgan

Men kalitni boshqarish uchun Arduino -dagi 8 -pinni va 10k qarshiligini ishlatardim.

4 -qadam: kod

Men GitHub -da topilgan LedControl.h kutubxonasidan va MAX7221 -ni yoqish uchun ularning asosiy kodidan foydalandim. Keyin tugma bosilganda kodni 0 - 9999 gacha hisoblash uchun o'zgartirdim.

#"LedControl.h" ni qo'shing

int tugmasi = 8;

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

bo'sh o'rnatish () {

pinMode (tugma, INPUT);

lc.shutdown (0, noto'g'ri); // MAX7221 energiya tejash rejimida, shuning uchun biz uni uyg'otishimiz kerak

lc.setIntensity (0, 15); // Yorqinlikni sozlash, maksimal 15

lc.clearDisplay (0); // displeyni tozalash

}

void loop () {

int holati = digitalRead (tugma);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

vaqt (1) {

holat = digitalRead (tugma);

vaqt (holat == 1) {

holat = digitalRead (tugma);

lc.setDigit (0, 3, i, noto'g'ri);

i ++;

kechikish (100); // bu bilan chalkashib ketishingiz mumkin

agar (i == 10) {

i = 0;

j ++;

agar (j == 10) {

j = 0;

k ++;

agar (k == 10) {

k = 0;

l ++;

agar (l == 10) {

vaqt (1) {

lc.setRow (0, 0, 0x3E); // displey 9999 ga yetganda U - 1 ni ko'rsatadi

lc.setRow (0, 1, 0x1); // Hexi o'nlik qiymatida

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

lc.setDigit (0, 3, 1, noto'g'ri);

}

}

lc.setDigit (0, 0, l, noto'g'ri);

}

lc.setDigit (0, 1, k, noto'g'ri);

}

lc.setDigit (0, 2, j, noto'g'ri);

}

}

}

}

Tavsiya: