Мазмуну:

MAX7221ди колдонуучу эсептегич: 4 кадам
MAX7221ди колдонуучу эсептегич: 4 кадам

Video: MAX7221ди колдонуучу эсептегич: 4 кадам

Video: MAX7221ди колдонуучу эсептегич: 4 кадам
Video: На каком языке лучше звучит?🔥 2024, Ноябрь
Anonim
MAX7221ди колдонуучу эсептегич
MAX7221ди колдонуучу эсептегич

MAX7221дин жардамы менен баскыч басылганда көбөйүүчү эсептегичти түзүү.

1 -кадам: Бөлүктөр

MAX7221 же MAX7219

Которуу

4 7-сегменттеги дисплей (жалпы катод)

2 резистор: 10k жана 9.53k (мен 9.1k колдонгом, ал дагы деле иштейт)

Arduino

2 -кадам: Районду куруу

Районду куруу
Районду куруу
Районду куруу
Районду куруу
Районду куруу
Районду куруу

Мен колдонгон төөнөгүчтөрүмдү гана жаздым, сиз маалымат барагынан толук пин жайгашуусун таба аласыз же мен тиркеп койгом. 7-сегменттик дисплейиңизди издеңиз, анткени ал меникинен айырмаланат, бирок процедурасы бирдей.

1. MAX7221деги 0 - 3 цифраларын дисплейдеги 1 - 4 сандарына туташтырыңыз. MAX цифрасы 0 дисплейлеринин 1 цифрасына туташат. Дисплейлер кадимки эмес жана 0 ордуна 1ден башталат.

2. MAX7221деги A - G сегменттерин дисплейдеги A - G сегменттерине туташтырыңыз.

3. Күч менен жерди MAXке бергиле. VCC 19 -пинге барат. 10k каршылыгы 19 жана 18 -пинге да туташкан. Жер 4 жана 9 -казыктарга барат.

4. MAX7221 Arduino менен SPI (Serial Perifheral Interface) аркылуу байланышат. Бул учурда 3 гана зым керек, анткени мен MISO (Master In Slave Out) колдонбойм. MAX7221 боюнча pin 1ди (Din) Arduino менен туташтырыңыз, менин учурда 12 -пинди колдондум. Бул сиздин MOSI (Master Out Slave In) же маалыматтар. MAXтеги 12 -пин - бул CS (Chip Select Input) жана маалыматтар Shift реестрине кантип жүктөлөт, мен муну Arduinoдогу 9 -пинге туташтырдым. Акыркы байланыш CLK, ал MAXтин 13 -пин, мен муну Arduino'го 10 -пинге туташтырдым.

5 вольтту колдонуу менен Arduino аркылуу электр менен жерди камсыз кылыңыз. Мен Arduino тактайыма жетиштүү күч бербей жаткан көйгөйгө туш болдум.

Бул MAX7221 маалымат жадыбалы үчүн. Ошондой эле сүрөттөр кайдан келген.

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

3 -кадам: которуштуруу

Switch
Switch

Мен которгучту жогорудагы схемадан өткөрдүм. Https://www.arduino.cc/en/tutorial/button дарегинен табылган

Мен Arduinoдогу 8 -пинди которууну көзөмөлдөө үчүн жана 10k каршылыгын колдондум.

4 -кадам: Код

Мен GitHubдан табылган LedControl.h китепканасын жана MAX7221ди иштетүү үчүн алардын негизги кодун колдондум. Мен кодду баскыч басылып жатканда 0 - 9999 чейин эсептөө үчүн өзгөрттүм.

#"LedControl.h" кошуу

int баскычы = 8;

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

жараксыз орнотуу () {

pinMode (баскыч, INPUT);

lc.shutdown (0, false); // MAX7221 энергияны үнөмдөө режиминде, ошондуктан биз аны ойготушубуз керек

lc.setIntensity (0, 15); // Жарыкты орнотуу, максимум 15

lc.clearDisplay (0); // дисплейди тазалоо

}

void loop () {

int абалы = digitalRead (баскыч);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

учурда (1) {

абал = digitalRead (баскыч);

while (state == 1) {

абал = digitalRead (баскыч);

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

i ++;

кечиктирүү (100); // сиз муну менен чаташтыра аласыз

эгер (мен == 10) {

i = 0;

j ++;

эгер (j == 10) {

j = 0;

k ++;

эгер (k == 10) {

k = 0;

l ++;

эгер (l == 10) {

учурда (1) {

lc.setRow (0, 0, 0x3E); // дисплей 9999га жеткенде ал U - 1ди көрсөтөт

lc.setRow (0, 1, 0x1); // Hexi ондук маанисинде

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

lc.setDigit (0, 3, 1, жалган);

}

}

lc.setDigit (0, 0, л, жалган);

}

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

}

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

}

}

}

}

Сунушталууда: