Innehållsförteckning:

Räknare med MAX7221: 4 steg
Räknare med MAX7221: 4 steg

Video: Räknare med MAX7221: 4 steg

Video: Räknare med MAX7221: 4 steg
Video: Ma2a Grafritande räknare 2024, November
Anonim
Räknare med MAX7221
Räknare med MAX7221

Skapa en räknare som ökar när du trycker på en knapp med MAX7221.

Steg 1: Delar

MAX7221 eller MAX7219

Växla

4 7-segmentskärm (vanlig katod)

2 motstånd: 10k och 9.53k (jag använde en 9.1k och det fungerar fortfarande)

Arduino

Steg 2: Bygg kretsen

Bygga kretsen
Bygga kretsen
Bygga kretsen
Bygga kretsen
Bygga kretsen
Bygga kretsen

Jag skrev bara ner stiften som jag använde, du kan hitta hela pin -layouten på databladet eller jag bifogade den. Se till att leta upp din 7-segmentskärm eftersom den förmodligen kommer att skilja sig från min men proceduren är densamma.

1. Anslut siffrorna 0 - 3 på MAX7221 till siffrorna 1 - 4 på displayen. MAX -siffran 0 ansluter till displayens siffra 1 etc. Displayer är bara okonventionella och börjar vid 1 istället för 0.

2. Anslut segment A - G på MAX7221 till segment A - G på displayen.

3. Mata ström och jord till MAX. VCC går till stift 19. 10k -motståndet är också anslutet till stift 19 och 18. Marken går till stift 4 och 9.

4. MAX7221 kommunicerar med Arduino via SPI (Serial Peripheral Interface). I det här fallet behövs bara 3 ledningar eftersom jag inte använder MISO (Master In Slave Out). Anslut stift 1 (Din) till MAX7221 till Arduino, i mitt fall använde jag stift 12. Detta är din MOSI (Master Out Slave In) eller data. Pin 12 på MAX är CS (Chip Select Input) och är hur data laddas in i skiftregistret, jag kopplade detta till pin 9 på Arduino. Den sista anslutningen är CLK som är stift 13 på MAX, jag anslöt detta till stift 10 på Arduino.

Se till att mata och jorda genom Arduino med 5 volt. Jag stötte på problemet där min Arduino inte gav mitt bräde tillräckligt med ström.

Detta är för databladet MAX7221. Även var bilderna kom ifrån.

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

Steg 3: Växeln

Bytet
Bytet

Jag kopplade omkopplaren från schemat ovan. Hittade på

Jag använde stift 8 på Arduino för att styra omkopplaren och ett 10k motstånd.

Steg 4: Kod

Jag använde LedControl.h -biblioteket som finns på GitHub och deras grundkod för att slå på MAX7221. Jag ändrade sedan koden för att räkna från 0 - 9999 när knappen trycks in.

#inkludera "LedControl.h"

int -knapp = 8;

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

void setup () {

pinMode (knapp, INGÅNG);

lc.avstängning (0, falskt); // MAX7221 är i energisparläge, så vi måste väcka det

lc.setIntensity (0, 15); // Inställning av ljusstyrka, max 15

lc.clearDisplay (0); // rensningsdisplay

}

void loop () {

int tillstånd = digitalRead (knapp);

int i = 0;

int j = 0;

int k = 0;

int l = 0;

medan (1) {

state = digitalRead (knapp);

medan (tillstånd == 1) {

state = digitalRead (knapp);

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

i ++;

fördröjning (100); // du kan bråka med det här

om (i == 10) {

i = 0;

j ++;

om (j == 10) {

j = 0;

k ++;

om (k == 10) {

k = 0;

l ++;

om (l == 10) {

medan (1) {

lc.setRow (0, 0, 0x3E); // när displayen nådde 9999 visar den U - 1

lc.setRow (0, 1, 0x1); // I Hexi -decimalvärde

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

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

}

}

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

}

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

}

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

}

}

}

}

Rekommenderad: