Indholdsfortegnelse:

Tæller ved hjælp af MAX7221: 4 trin
Tæller ved hjælp af MAX7221: 4 trin

Video: Tæller ved hjælp af MAX7221: 4 trin

Video: Tæller ved hjælp af MAX7221: 4 trin
Video: Hvert slag tæller 2024, December
Anonim
Tæller ved hjælp af MAX7221
Tæller ved hjælp af MAX7221

Oprettelse af en tæller, der øges, når der trykkes på en knap ved hjælp af MAX7221.

Trin 1: Dele

MAX7221 eller MAX7219

Kontakt

4 7-segmenters display (fælles katode)

2 modstande: 10k og 9.53k (jeg brugte en 9.1k, og det virker stadig)

Arduino

Trin 2: Opbygning af kredsløbet

Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet
Bygger kredsløbet

Jeg skrev kun de ben, jeg brugte ned, du kan finde det komplette pinlayout på databladet, eller jeg vedhæftede det. Sørg for at slå dit 7-segment display op, fordi det sandsynligvis vil afvige fra mit, men proceduren er den samme.

1. Tilslut cifre 0 - 3 på MAX7221 til cifre 1 - 4 på displayet. MAX -cifret 0 opretter forbindelse til displayets ciffer 1 osv. Skærme er bare utraditionelle og starter ved 1 i stedet for 0.

2. Tilslut segmenterne A - G på MAX7221 til segmenterne A - G på displayet.

3. Tilfør strøm og jord til MAX. VCC går til pin 19. 10k modstanden er også forbundet til pin 19 og 18. Jord går til ben 4 og 9.

4. MAX7221 kommunikerer med Arduino via SPI (Serial Peripheral Interface). I dette tilfælde er der kun brug for 3 ledninger, fordi jeg ikke bruger MISO (Master In Slave Out). På MAX7221 forbind pin 1 (Din) til Arduino, i mit tilfælde brugte jeg pin 12. Dette er din MOSI (Master Out Slave In) eller dataene. Pin 12 på MAX er CS (Chip Select Input) og er, hvordan dataene indlæses i skiftregistret, jeg tilsluttede dette til pin 9 på Arduino. Den sidste forbindelse er CLK, som er pin 13 på MAX, jeg tilsluttede denne til pin 10 på Arduino.

Sørg for at levere strøm og jord gennem Arduino ved hjælp af 5 volt. Jeg løb ind i problemet, hvor min Arduino ikke gav mit bord nok strøm.

Dette er til MAX7221 databladet. Også hvor billederne kom fra.

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

Trin 3: Omskifteren

Knappen
Knappen

Jeg tilsluttede kontakten fra skematikken ovenfor. Fundet på

Jeg brugte pin 8 på Arduino til at styre kontakten og en 10k modstand.

Trin 4: Kode

Jeg brugte LedControl.h biblioteket fundet på GitHub og deres grundlæggende kode til at tænde MAX7221. Jeg ændrede derefter koden til at tælle fra 0 - 9999, når der trykkes på knappen.

#include "LedControl.h"

int -knap = 8;

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

ugyldig opsætning () {

pinMode (knap, INDGANG);

lc.lukning (0, falsk); // MAX7221 er i strømsparetilstand, så vi skal vække den

lc.setIntensity (0, 15); // Indstilling af lysstyrke, maks. 15

lc.clearDisplay (0); // rydningsdisplay

}

void loop () {

int state = digitalRead (knap);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

mens (1) {

tilstand = digitalRead (knap);

mens (tilstand == 1) {

tilstand = digitalRead (knap);

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

i ++;

forsinkelse (100); // du kan rode med det her

hvis (i == 10) {

i = 0;

j ++;

hvis (j == 10) {

j = 0;

k ++;

hvis (k == 10) {

k = 0;

l ++;

hvis (l == 10) {

mens (1) {

lc.setRow (0, 0, 0x3E); // når displayet nåede 9999, viser det U - 1

lc.setRow (0, 1, 0x1); // I Hexi -decimalværdi

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

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

}

}

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

}

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

}

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

}

}

}

}

Anbefalede: