Բովանդակություն:

Հաշվիչ ՝ օգտագործելով 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 և այն դեռ աշխատում է)

Արդուինո

Քայլ 2: Շղթայի կառուցում

Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում
Շրջանի կառուցում

Ես գրել եմ միայն այն կապերը, որոնք ես օգտագործել եմ: Դուք կարող եք գտնել քորոցների ամբողջական դասավորությունը տվյալների թերթում կամ կցել եմ այն: Համոզվեք, որ փնտրեք ձեր 7-հատվածանոց էկրանը, որովհետև այն հավանաբար կտարբերվի իմից, բայց ընթացակարգը նույնն է:

1. Միացրեք MAX7221- ի 0 - 3 թվանշանները էկրանին թվերի 1 - 4 թվերին: MAX թվանշանը 0 -ը միանում է ցուցադրման 1 -ին թվին և այլն: plaուցադրությունները պարզապես ոչ սովորական են և 0 -ի փոխարեն սկսվում են 1 -ից:

2. Միացրեք MAX7221- ի A - G հատվածները էկրանին A - G հատվածներին:

3. Էլեկտրաէներգիա և հող մատակարարեք MAX- ին: VCC- ն անցնում է 19 -րդ կապում: 10k դիմադրությունը միացված է նաև 19 -րդ և 18 -րդ կապումներին: Գետինը անցնում է 4 -րդ և 9 -րդ կապումներին:

4. MAX7221- ը Arduino- ի հետ շփվում է SPI- ի միջոցով (Սերիական ծայրամասային միջերես): Այս դեպքում անհրաժեշտ է ընդամենը 3 լար, քանի որ ես չեմ օգտագործում MISO (Master In Slave Out): MAX7221- ի վրա միացրեք 1 (Din) կապը Arduino- ին, իմ դեպքում ես օգտագործեցի քորոց 12. Սա ձեր MOSI (Master Out Slave In) կամ տվյալներն են: MAX- ի 12 -րդ կապը CS է (Chip Select Input) և այն է, թե ինչպես են տվյալները բեռնվում Shift Register- ում, ես դա միացրել եմ Arduino- ի 9 -րդ կապին: Վերջին կապը CLK- ն է, որը MAX- ի 13 -րդ կապն է, ես դա միացրել եմ Arduino- ի 10 -րդ կապին:

Համոզվեք, որ հոսանքն ու հոսանքը մատակարարում եք Arduino- ի միջոցով ՝ օգտագործելով 5 վոլտ: Ես բախվեցի այն խնդրի հետ, երբ իմ Arduino- ն բավականաչափ ուժ չէր տալիս իմ տախտակին:

Սա MAX7221 տվյալների թերթիկի համար է: Նաև որտեղից են հայտնվել նկարները:

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

Քայլ 3: Անջատիչ

Անջատիչը
Անջատիչը

Ես միացրեցի անջատիչը վերը նշված սխեմատիկայից: Գտնվել է https://www.arduino.cc/hy/tutorial/button կայքում

Ես օգտագործեցի Arduino- ի 8 -րդ կապը `անջատիչը վերահսկելու համար, և 10k դիմադրություն:

Քայլ 4: Կոդ

Ես օգտագործեցի GedHub- ում գտնված LedControl.h գրադարանը և դրանց հիմնական ծածկագիրը `MAX7221- ը միացնելու համար: Այնուհետև ես փոխեցի ծածկագիրը ՝ 0 -ից 9999 -ը հաշվելու համար, երբ կոճակը սեղմվում է:

#ներառել «LedControl.h»

int կոճակ = 8;

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

void setup () {

pinMode (կոճակ, Մուտք);

lc. անջատում (0, կեղծ); // MAX7221- ը էներգախնայողության ռեժիմում է, այնպես որ մենք պետք է արթնացնենք այն

lc.setIntensity (0, 15); // Պայծառության կարգավորում, առավելագույնը 15

lc.clearDisplay (0); // մաքրող ցուցադրում

}

դատարկ շրջան () {

int վիճակ = digitalRead (կոճակ);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

մինչդեռ (1) {

վիճակ = digitalRead (կոճակ);

իսկ (վիճակ == 1) {

վիճակ = digitalRead (կոճակ);

lc.setDigit (0, 3, i, կեղծ);

i ++;

ուշացում (100); // Դուք կարող եք խառնվել դրանով

եթե (i == 10) {

i = 0;

j ++;

եթե (j == 10) {

j = 0;

k ++;

եթե (k == 10) {

k = 0;

լ ++;

եթե (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, կեղծ);

}

}

}

}

Խորհուրդ ենք տալիս: